gpt4 book ai didi

c - 如何使数组中的数字彼此不相邻?

转载 作者:太空宇宙 更新时间:2023-11-04 04:47:28 25 4
gpt4 key购买 nike

作为第一年作业的一部分,我正在开发一款简单的糖果美眉游戏。

所以我被困在这部分,在初始化过程中,3 个相同的数字不能彼此相邻。

这是我的代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//FUNCTION: Draw the Board
int drawBoard()
{
//Declare array size
int board[9][9];

//initialize variables
int rows, columns, randomNumber;

//random number seed generator
srand(time(NULL));

for ( rows = 0 ; rows < 9 ; rows++ )
{
for ( columns = 0 ; columns < 9 ; columns++ )
{
//generate random numbers from 2 - 9
randomNumber = rand() %7 + 2;

board[rows][columns] = randomNumber;

printf( "%d\t", board[rows][columns] );

}//end inner for-loop

printf("\n\n");
}//end outer for-loop

}//end FUNCTION drawBoard

int checkAdjacent()
{

}

int main()
{
drawBoard();
}

我想也许在函数checkAdjacent()中调用函数drawBoard(),然后使用这样的代码:

if ( board[rows][columns] == randomNumber && 
board[rows][columns] == randomNumber &&
board[rows][columns] == randomNumber )

也许我必须在 drawBoard 函数中执行此操作,但当我在这里挠头时,我越来越迷惑自己了:/

有什么提示吗?

最佳答案

我不确定是否玩游戏,但试试这个:我在插入时检查邻接。由于它是一 block 小板,复杂性不会受到太大影响。此外,由于它是随机的,因此具有相同相邻元素的概率也较小..

    int flag;

for ( rows = 0 ; rows < 9 ; rows++ )
{
for ( columns = 0 ; columns < 9 ; columns++ )
{
//generate random numbers from 2 - 9

flag = 0;
do{
randomNumber = rand() % 7 + 2;
board[rows][columns] = randomNumber;
if ((board[rows][columns] == board[rows-1][columns]) || (board[rows][columns] == board[rows][columns-1]))
flag = 0;
else
flag = 1;
//printf( "%d\t", board[rows][columns] );
}while(flag == 0);

}//end inner for-loop

printf("\n\n");
}//end outer for-loop

关于c - 如何使数组中的数字彼此不相邻?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19539306/

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