将简单的字符标记放置在数组板中,用于简单的糖果粉碎游戏

时间:2013-10-23 16:38:00

标签: c arrays loops

我是信息通信技术专业的一年级学生,我的任务要求我开发一个简单的糖果美眉游戏。

所以我现在的问题是在程序初始化时打印"|"周围数字的标记(即"_"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]:/

1 个答案:

答案 0 :(得分:0)

您的marker功能错误。您在此函数中使用board[5][5](在drawBoard中声明)而不传递给它 你可以这样做      标记(板[5] [5]); //从drawBoard()调用

  void marker(int a)
  {
      printf( " _ \n");
      printf( "|%c|\n" , a );
      printf( " _ \n");
  }