gpt4 book ai didi

c - 数组 C 编程中的随机探索

转载 作者:行者123 更新时间:2023-11-30 20:18:09 24 4
gpt4 key购买 nike

我创建了一个充满字母的数组,但我一直致力于实现单元格在 8 个方向(N、NE、E、SE、S、SW、W、NW)之一随机移动的功能。我对基本 4 个方向使用了 switch 语句,但无法找出其他 4 个方向。

void randomStep()
{
if ((island[ro][co + 1] != ('B'||'L') || co == NUMROWS - 1 )&& (island[ro + 1][co] != ('B'||'L') || ro == NUMCOLS -1) && (island[ro - 1][co] != ('B'||'L') || ro == 0)
&& (island[ro][co - 1] != ('B'||'L') || co == 0))
break;
int direction = rand() % 8;
switch (direction) {
case 0: if (co < NUMROWS - 1 && island[ro][co + 1] == 'B'||'L'){ //move right
co++;
break;
}
case 1: if (ro < NUMCOLS -1 && island[co + 1][ro] == 'B'||'L') { //move down
ro++;
break;
}
case 2: if (ro > 0 && island[ro - 1][co] == 'B'||'L'){ //move up
ro--;
break;
}
case 3: if (co > 0 && island[ro][co - 1] == 'B'||'L') { //move left
co--;
break;
}

最佳答案

您可以简单地将其他两种情况的条件和结果结合起来。这是 NW 的示例(左上)

case 4: if (ro > 0 && co > 0 && island[ro - 1][co - 1] == 'B'||'L') { //move up & left
ro--;
co--;
}
break;

请注意,我已将 break; 的位置移动到 if 代码块外部

我认为您可能也遇到了错误

... island[ro - 1][co - 1] == 'B'||'L' ...

我想应该是

... island[ro - 1][co - 1] == 'B' || island[ro - 1][co - 1] == 'L' ...

其他情况也类似。

关于c - 数组 C 编程中的随机探索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54931844/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com