作为第一年作业的一部分,我正在开发一款简单的糖果美眉游戏。
所以我被困在这部分,在初始化过程中,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/