使用struct创建游戏板

时间:2017-03-30 20:31:08

标签: c struct

所以我正在为战舰制作游戏板,但我正在尝试使用结构来制作它。目前我在尝试创建游戏板时遇到错误。我试图这样做,以便当用户输入船只的坐标时,或者当他们进行移动时,我可以轻松地更改符号并获得阵列上的正确坐标。这就是我现在正在使用的。我使用的是3种文件格式,因此我将所有部分放在下面。

我可以在不使用结构的情况下创建电路板,但我很确定我需要以这种方式创建它,以便我以后能够操作电路板。

如果这有助于这是我当前的错误:运行时检查失败#3 - 正在使用变量'person'而未初始化。

这是在头文件

System.out.println(idx); //idx = 0;
                backward(idx+1); //its changed idx = 0 but passed 1 to this function
     System.out.print(str.charAt(idx));//After all recursion call here idx =0  

功能

typedef struct game_board
{
    int board[10][10];
    int row;
    int col;
    char symbol;
    }Game_Board;

Game_Board initalize_game_board(Game_Board player);

在主要功能

Game_Board initalize_game_board(Game_Board player)
{
    int row_index = 0, col_index = 0;

    printf("  0 1 2 3 4 5 6 7 8 9\n");
    for (row_index = 0; row_index < player.row; row_index++)
    {
        printf("%d ", row_index);
        for (col_index = 0; col_index < player.col; col_index++)
        {
            player.board[row_index][col_index] = player.symbol;
            printf("%c ", player.board[row_index][col_index]);
        }
        printf("\n");
    }
}

2 个答案:

答案 0 :(得分:1)

您需要两个函数的return语句。为main()结束paren。

强烈推荐

computer.symbol = '~';

而不是

strcpy(computer.symbol, '~');

答案 1 :(得分:1)

基于Ryan的答案,strcpy()假设源字符串有一个空终止符,以便知道要复制多少个字符。在您的情况下,源字符串中没有空终止符。 strcpy()不会停止复制,直到从内存中读取空字符。由于您使用的是单个字符,因此可以使用简单的赋值语句!

另外,在函数initalize_game_board()中,考虑将指针传递给Game_Board结构,而不是结构本身。执行此操作时,您可以通过在函数本身中使用箭头( - &gt;)运算符来更改实际结构的内容(在这种情况下为struct&#39; person&#39;)。然后,您不必从此函数返回结构。使用您当前的设计,您将创建结构的临时副本,然后填充它,然后(可能在修改之后!)返回该结构,该结构将再次复制到结构“人”中。