c# - 生成没有指定范围的随机数。例如。1、6、10、12 的随机数
问题描述
课堂作业让我们重新创建“Hunt The Wumpus”。射箭后,我可以选择将 Wumpus 留在原处,或者将 Wumpus 移动到我当前所在的房间,或与我当前所在房间相邻的三个房间中的任何一个。
adjacentRooms = new int[,]
{
{1, 4, 7}, {0, 2, 9}, {1, 3, 11}, {2, 4, 13}, {0, 3, 5},
{4, 6, 14}, {5, 7, 16}, {0, 6, 8}, {7, 9, 17}, {1, 8, 10},
{9, 11, 18}, {2, 10, 12}, {11, 13, 19}, {3, 12, 14}, {5, 13, 15},
{14, 16, 19}, {6, 15, 17}, {8, 16, 18}, {10, 17, 19}, {12, 15, 18}
这是我拥有的数组。例如,假设我在 0 号房间(索引 0),而 wumpus 在 15 号房间(索引 15)。我射了一箭,没射中。Wumpus 现在必须移动,他的选择是房间 15、房间 0、房间 1、房间 4、房间 7。我一直在尝试随机。接下来尝试在这 5 个之间产生一个随机数,但没有任何运气。我假设随机。下一个可能不是要走的路。如果有人能给我一些提示或帮助我,我将非常感激!
解决方案
Wumpus 的选择将是由 5 个元素组成的数组,其中包括:{same}、{mine} 以及基于 Wumpus 所在位置的 3x 相邻房间。对于上述选择,您的随机界限将是 1-5(或 0-4),其中您在这些选择的数组的位置选择房间 #。因此,如果 Wumpus 在 3 号房间,您在 1 号房间,而 2、4 和 13 则您可以选择 {3、1、2、4、13} 如果 Rnd # 返回为“3” (0-4 分)然后 Wumpus 将移动到 4 号房间。
那么问题是如果你在相邻的房间里怎么办?例如,如果 Wumpus 在#3,而你在#4。这是否意味着 {3, 4, 2, 4, 13} 或者您只是从 4 个房间中选择。{3, 4, 2, 13} 您需要根据这两种解决方案之一来构建您的逻辑。
使用简单的随机生成,确保您只初始化一次随机序列,而不是每个游戏循环,因为它是基于计时器的,并且在循环内运行时您将生成类似的选择。您可以阅读 C# 的更好的伪随机解决方案,以获得更多类似随机的选择。
推荐阅读
- android - 无法在 Android Studio 中添加其他平台/构建工具
- javascript - SVG:如何绘制多个半圆(弧)路径
- templates - 如何在 SharePoint Online 中应用自定义网站模板?
- r - R中重叠二值图像的调色板
- android - 键盘窗口使用一个活动调整不同片段的大小/无
- android - 我正在尝试制作井字游戏应用程序
- python-3.x - 不和谐机器人贴纸
- linux - CLPPLUS 登录失败
- jquery - 在同一应用程序中显示用于 jQuery 的 Kendo UI PDFViewer 以及用于 Angular 的 Kendo UI 组件
- reactjs - 设置相机角度 react-three-fiber