- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试创建一个 2D 字符数组来保存一个字符网格,该网格将用作 2D 控制台游戏的一种“ map ”。
我得到一个:
IndexOutOfRange exception
..不明白为什么。我已经在 Debug模式下逐步检查代码,但仍然看不到问题。
它逐步执行代码,直到到达 X = 25
和 Y = 1
,我的网格的右上边界。
我有 _gameWidth
和 _gameHeight
创建如下,在 main 之外但仍在类内:
static int _gameWidth = 25;
static int _gameHeight = 15;
以下是尝试生成和填充网格时失败的代码。它在这一点上失败了:
else if (x == _gameWidth && y == 1)
_grid[x, y] = '╕';
static void GenerateGrid()
{
for (int y = 1; y <= _gameHeight; y++)
{
for (int x = 1; x <= _gameWidth; x++)
{
if (x == 1 && y == 1)
_grid[x, y] = '╒';
else if (x == _gameWidth && y == _gameHeight)
_grid[x, y] = '╛';
else if (x == _gameWidth && y == 1)
_grid[x, y] = '╕';
else if (x == 1 && y == _gameHeight)
_grid[x, y] = '╘';
else if ((x != 1 && y == _gameHeight) || (x != _gameWidth && y == 1))
_grid[x, y] = '═';
else if ((x == 1 && y > 1 && y < _gameHeight) || (x == _gameWidth && y > 1 && y < _gameHeight))
_grid[x, y] = '│';
else
_grid[x, y] = 'x';
}
Console.WriteLine("");
}
}
最佳答案
改变
for (int i = 1; i <= gameHeight; i++)
到
for (int i = 0; i < gameHeight; i++)
对宽度做同样的事情。
编辑:这是因为数组索引从数字 0 开始,以数组长度减 1 结束。
关于C# IndexOutOfRange 数组异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32796852/
我正在尝试创建一个 2D 字符数组来保存一个字符网格,该网格将用作 2D 控制台游戏的一种“ map ”。 我得到一个: IndexOutOfRange exception ..不明白为什么。我已经在
抱歉,标题并没有真正描述问题,但这是一个非常奇怪的问题。 为了确保我没有犯任何愚蠢的错误,我使用断点来跟踪正在发生的一切...... 基本上,我将这段代码放在一个继承自 ObservableColle
我觉得这很奇怪,我有这段代码: string getBatchesQuery = "SELECT DISTINCT CONVERT(VARCHAR(8), time, 4) AS Batch FROM
我已经阅读了所有帖子并且知道 IndexOutOfRange 通常发生是因为一个列被引用了两次。但是根据我的映射,我不知道这是如何发生的。在配置中 SHOW_SQL 为 true 时,我看到一个 In
我不太喜欢多线程编程,当我试图在我的代码中实现它时,遇到了一个我无法弄清楚原因的异常。在这方面的任何帮助将不胜感激:) 所以,基本上我有这么一小段代码: string[][] Array1 = new
因此,我的头撞到了墙上。我在 cell[rcell] = repack[counter] 处收到错误,即使我在 repack 数组中有 190 个项目。 private string
您可以清楚地看到 args[] 的最高索引是 2,但是迭代器不知何故达到了 3。解释一下? 编辑:评论的 Thread.Sleep 神奇地解决了这个问题。 最佳答案 这是由于 i 在 for 循环之外
我正在使用 StreamReader 访问 CSV 文本文件并将所有行读取到 DataTable。 public static DataTable ConvertToDataTable(string
我正在尝试使用数组在 C# 中创建一个非常基本的登录系统来比较用户名和密码。 我正在使用 for() 循环将用户提供的用户名和密码与我的数组中的用户名和密码进行比较。这是我的循环代码: string
在我的应用程序中,一位教师可以开设多门类(class),当我排除一位教师的个人资料时,我必须先删除他的类(class)。我试图将这位老师的每个 class_id 放在一个 int 数组中,稍后删除该数
我正在尝试添加一个函数,告诉我索引是否超出数组范围。 CollectionType 的startIndex 和endIndex 似乎是通用的,所以我试图限制仅在索引类型为Int 时扩展。此代码无法编译
我有一个包含数据的网格。从 View 移动到另一个 View 时,我正在清除现有列并添加新列。执行下面的行时会抛出 IndexOutOfRange 异常。 dataGridView1.Columns.
while (reader.Read()) { if (TextBox1.Text.CompareTo(reader["usernam"].ToString()) == 0&&TextBox2
while (reader.Read()) { if (TextBox1.Text.CompareTo(reader["usernam"].ToString()) == 0&&TextBox2
我是一名优秀的程序员,十分优秀!