【发布时间】:2017-09-24 13:34:02
【问题描述】:
我正在尝试制作 Snake Vs 方块游戏,但对于这部分代码,我只想将值放入我的网格中,来自我的“计数”变量。我不希望每次调用它时都将该变量设置为 0。所以我需要找到一种方法,让我的计数器在每次调用时都不会重置。
我正在尝试将增量循环函数放在主循环中,它也是增量循环。
问题是,函数的值总是返回 0,因为每次调用函数时它都会重置为零。 (因为循环)
每次调用时如何阻止它重置为 0?把它放在一个全局变量中是可行的,但我不能为我的分配这样做。
这是我正在谈论的代码的两部分:
public static int choix_case (int nbColonnes) {
int max = maximum(nbColonnes);
int random_value = RandomValue();
int count = 0;
do {
if ( random_value == 1) {
count++;
}
if (random_value == 2) {
count++;
}
if (random_value == 3) {
count++;
}
} while(count <= max);
return count;
}
然后:
public static void obtenirNouvelleGrille(int[][] grille, int nbLignes, int nbColonnes)
{
for(int i = 0; i < nbLignes; i++) {
// mettre le compteur de balles et de centres à 0
for(int j = 0; j < nbColonnes; j++){
int choix = choix_case(nbColonnes);
grille[i][j] = choix; // vide
}
}
}
【问题讨论】:
-
我不确定您想要达到的目标是否完全清楚。这感觉像是一个 XY 问题(至少有一点点),所以确切地说出您希望代码做什么可能会有所帮助。
-
我正在尝试制作一个 Snake Vs 方块游戏,但是对于这部分代码,我只想将值放入我的网格中,来自我的“计数”变量。我不希望每次调用它时都将该变量设置为 0。所以我需要找到一种方法,让我的计数器在每次调用时都不会重置。当我将计数器放入全局变量(int count = 0;)时它可以工作,但我不能为我的分配这样做
-
好的,所以请注意,返回的计数值只是一个比您从
maximum(int)获得的计数大一的计数。所以不清楚计算出的计数值会给你带来什么,因为你可以使用maximum()在调用代码中轻松获取它。 -
不幸的是,这个问题实际上是关于调试您编写的一些代码,而不是关于编程的特定问题。您可能需要备份并重新评估。我建议在 IDE 中运行它并使用简单的调试步骤来找出哪里出错了。见:ericlippert.com/2014/03/05/how-to-debug-small-programs
-
最大值返回我游戏的列数(变量 nbColonnes)除以 3。因为我的游戏中每个 ligns 的值不能超过我的值。