- 已关闭。**此问题需要debugging details。当前不接受答案。
编辑问题以包含desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将有助于其他人回答问题。
6小时前关门了。
Improve this question
我正在做一个简单的连接4游戏在c的家庭作业,我几乎完成了我的游戏的所有其他功能的作品,但控制功能失败,只有当最后把字符接近边缘,这就是为什么我认为它失败,因为它试图检查数组外。数组维数是[7][7]和最后一行只是数字,以提高可见性。
我像这样控制阵列:
for (i = 1; i <= 3; i++) {
if (c4[last / 10 - i][last % 10 + i] == c) {
casa++;
}
if (c4[last / 10 + i][last % 10 - i] == c) {
casa++;
}
if (c4[last / 10 - i][last % 10 - i] == c) {
caso++;
}
if (c4[last / 10 + i][last % 10 + i] == c) {
caso++;
}
if (c4[last / 10][last % 10 + i] == c) {
yan++;
}
if (c4[last / 10][last % 10 - i] == c) {
yan++;
}
if (c4[last / 10 + i][last % 10] == c) {
dik++;
}
if (c4[last / 10 - i][last % 10] == c) {
dik++;
}
}
例如:
- O 0 O 0 0 0 0
- XOX 0 0 0 0
- O X O 0 0 0 0
- X O X 0 0 0 0
- O X O 0 0 0 0
- X O X 0 0 0
- 1 2 3 4 5 6 7
最后一个变量是一个int型变量,用来存储最后一个put字符,它的工作原理是将line_number * 10 + column_number-1相加。
最后一个put字符是粗体的O,它说玩家O赢了。有没有什么方法可以在不使代码过于复杂的情况下修复这个问题?
1条答案
按热度按时间sulc1iza1#
如果你只是想要一种调试的方法,也就是说,知道数组访问何时越界,那么就用函数来代替;