我是信息通信技术专业的一年级学生,我的任务要求我开发一个简单的糖果美眉游戏。
所以我现在的问题是在程序初始化时打印"|"
周围数字的标记(即"_"
和board[5][5]
)。
这是我的代码:
#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, flag;
//random number seed generator
srand(time(NULL));
for ( rows = 0 ; rows < 9 ; rows++ )
{
for ( columns = 0 ; columns < 9 ; columns++ )
{
flag = 0;
do
{
//generate random numbers from 2 - 8
randomNumber = rand() %7 + 2;
board[rows][columns] = randomNumber;
//Checks for 2 adjacent numbers.
if ( board[rows][columns] == board[rows - 1][columns] || board[rows][columns] == board[rows][columns - 1] )
{
flag = 0;
continue;
}
else
{
flag = 1;
printf( " %d ", board[rows][columns] );
}
} while ( flag == 0 );
}//end inner for-loop
printf("\n\n");
}//end outer for-loop
marker();
}//end FUNCTION drawBoard
//FUNCTION: Mark the surrounding of the number with "|" and "_" at board[5][5]
void marker()
{
printf( " _ \n" );
printf( "|%c|\n", a );
printf( " _ \n" );
}
int main()
{
drawBoard();
}
所以...是的,我被困在这一部分:
printf( "%c" , drawBoard(board[5][5]) );
printf( "\n\n%c" , drawBoard( board[5][5]) );
嗯,我想我的功能很弱。我想创建一个可以在i.e void marker()
函数中调用的单独函数(drawBoard
),然后使用函数marker()
在坐标{{1}处标记数字的周围区域}。
我是否以错误的方式思考并做到了?请指教。
萨姆
编辑1:感谢帮助haccks!是的我认为我现在理解功能的基本用法。剩下的问题是,即使我从board[5][5]
拨打了marker( board[5][5] )
,标记的打印也不会发生放在板上的数字[5] [5]
打印板后打印标记。知道为什么会这样吗?右边应该打印在坐标[5] [5]:/
答案 0 :(得分:0)
您的marker
功能错误。您在此函数中使用board[5][5]
(在drawBoard
中声明)而不传递给它
你可以这样做
标记(板[5] [5]); //从drawBoard()调用
void marker(int a)
{
printf( " _ \n");
printf( "|%c|\n" , a );
printf( " _ \n");
}