冒险岛数据:基于选择的冒险游戏的数据结构

关于冒险岛数据的问题,在gaming structure中经常遇到, 我正在 VB.NET 2010 中设计一个基于选择的冒险游戏,在那里你会看到一个故事标签,你可以在 2 个按钮之间进行选择,你想要做出的选择。

我正在 VB.NET 2010 中设计一个基于选择的冒险游戏,在那里你会看到一个故事标签,你可以在 2 个按钮之间进行选择,你想要做出的选择。

我的目标是将按钮和故事的标签存储在某种形式的数据结构中,现在暂时是一个哈希表,以及某种形式的选择结构。现在我正在使用一个自定义类,它引用接下来的 2 个选择的索引及其各自的标签索引,这些索引将类实例存储在哈希表中。我已经研究了数组,字典,列表和集合,但是我不确定哪个数组最适合我之后的数据结构。

5

这是我如何定义结构(假设 VB.Net-fu 没有让我失望):

Public Class Decision
    Public Property Title As String
    Public Property Description As String
    Public Property FirstChoice As Decision
    Public Property SecondChoice As Decision
End Class

Title是您在按钮上或上方显示的内容,用于选择该选项。

Description是您提交该选择后显示的内容,并将做出下一个决定。

如果FirstChoiceSecondChoice为 null,则可以选择隐藏按钮。这将使您只能选择一个选项,并将其倾斜到框架的一侧,以获得戏剧性的效果。例如:

                  You've found yourself in a narrow corridor
                                                              [Go Right]

如果你想启用两个以上的选择,或者至少让自己在将来自由地这样做,你可以像这样定义你的数据结构:

Public Class Decision
    Public Property Title As String
    Public Property Description As String
    Public Property Decisions As New List(Of Decision)
End Class

您可以使用ListBoxGridView样式控件将其显示给用户,或者根据列表中的项目数量在列表框和按钮之间切换。

顺便说一句,数据结构是有意递归的。这变成了一个树结构,在树的每个节点上,您都有一个决策,并且可能是子决策。

通常情况下,你不会循环这样的结构,但没有理由你不能在这种情况下,如果你打一个“游戏结束”风格的情况,你的选择可以简单地回到开始,这将被链接到根实例(因此是一个“循环图”)。

Edit

是一个代码示例,向您展示如何将这些连接在一起:

Dim darkAlley = New Decision With
{
    .Title = "Dark Alley",
    .Description = "You are in a deep dark alley." _
        + "  The night surrounds you and you feel a bit claustrophobic." _
        + "  Obvious exits are east and Salisbury street."
}
Dim eastOfDarkAlley = New Decision With
{
    .Title = "East of Dark Alley",
    .Description = "You are mauled by a bear!" _
        + "  He was a dire bear, so he had rabies.  Start over?"
}
Dim salisburyStreet = New Decision With
{
    .Title = "Salisbury street",
    .Description = "Mmm... Ground beef... Blarrghlhlap (*tongue hangs out*)"
}
darkAlley.FirstChoice = eastOfDarkAlley
darkAlley.SecondChoice = salisburyStreet
eastOfDarkAlley.FirstChoice = darkAlley
salisburyStreet.FirstChoice = darkAlley
1

你的游戏很明显是一个决策树。如果只有两个选择,二叉树的一些修改形式将是完美的。否则,一个更复杂的 n-ary 树会做到这一点。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(978)
数据结构试题:索引数据结构和顺序数据结构之间的区别
上一篇
Csv数据库:Pandas-CSV到SQL数据库
下一篇

相关推荐

  • mongodb服务器:如何使用MongoDB服务器来提高数据库性能

    示例示例MongoDB 是一种面向文档的数据库,它具有高性能、高可扩展性和自动故障转移等特性,可以用于存储和管理大量数据。MongoDB 服务器是 MongoDB 数据库的核心组件,它是一个独立的进程,用于管理和存储数据。它可以处理客户端发送的请求,并将数据存储到磁盘中。…

    2023-05-03 02:25:28
    0 20 76
  • python含义:如何使用Python来提高工作效率

    Python是一种面向对象的、解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年。…

    2023-06-16 10:52:17
    0 13 14
  • python复杂验证码识别:如何使用Python实现复杂验证码识别

    Python复杂验证码识别是指通过Python编程语言实现对复杂验证码的识别。先将验证码图片进行分割,可以使用opencv的函数,将图片中的字符分割出来,然后将每个字符保存到一个单独的文件中。…

    2023-05-08 01:49:53
    0 69 92
  • python是机器语言吗:Python是否是机器语言?

    Python不是机器语言,它是一种高级编程语言,它的代码由人类编写,而不是机器直接执行。例如:print("Hello World!")…

    2024-04-04 11:47:54
    0 98 64
  • python 猴子吃桃一个古老的传说

    Python 猴子吃桃是一个经典的算法问题,它描述的是一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个;以后每天早上都吃了前一天剩下的一半零一个。到第 天早上想再吃时,就只剩下一个桃子了。该问题可以用递归的方式来解决,代码如下:…

    2023-05-04 15:37:50
    0 17 15
  • python如何每行输出5个数据:输出每行5个数据的Python程序

    示例示例Python可以使用for循环来每行输出5个数据,代码示例如下:# 定义一个列表,其中包含25个数字…

    2023-05-07 07:33:12
    0 30 90
  • python实现回文数:如何使用 Python 判断一个数字是否为回文数

    Python实现回文数的方法:使用字符串反转:将输入的数字转换为字符串,然后反转字符串,最后比较反转前后的字符串是否相等。…

    2023-05-21 11:22:59
    0 81 95
  • python 中文识别:如何使用Python提高编程效率

    Python 中文识别是指使用 Python 语言来进行中文文本的识别和处理。它可以帮助开发者更好地理解中文文本,并且可以用于自然语言处理(NLP)、机器学习(ML)等领域。…

    2023-05-09 09:20:39
    0 53 61

发表评论

登录 后才能评论

评论列表(57条)