【问题标题】:Making a function for updating the moves of a 2-D array tic-tac-toe table制作用于更新二维数组井字游戏表移动的函数
【发布时间】:2019-04-03 01:15:08
【问题描述】:

我有两个函数可以让用户移动和计算机生成移动,因此在创建更新计算机和用户移动的函数时,移动的“x”和“o”以及“_”对于一个空白空间,我会为我的多维数组使用指针吗?如果是这样,你将如何编码?非常感谢一个带有解释的示例!

【问题讨论】:

标签: c function pointers multidimensional-array


【解决方案1】:

用函数更新二维char数组,将指针作为参数传递给数组:

int main(){
    char array[5][5];
    updateArray(array, 0, 0, 'a');
}

void updateArray(char * arr, int row, int col, char c){
    arr[row][col] = c;
}

请注意,在 C 中声明数组时,数组标识符(在本例中为 array)是指向数组第一个元素的指针。方括号 ([row][col]) 通过使用 指针算法 计算其地址来访问数组的元素。希望这会有所帮助。

【讨论】:

    【解决方案2】:

    如果你想传递一个指向你的函数的指针,你可以像这样声明和使用它:

    computer_move(char (*p)[3][3])
    {
        p[1][1] = 'x';
    }
    
    char ttt[3][3];
    computer_move(&ttt);
    

    【讨论】:

      【解决方案3】:

      您打算如何使用指针?指向什么?我认为你根本不需要指针,除非你有一些具体的想法,但你的问题中没有说明。我会使用一个简单的二维字符数组。

      像这样定义你的数组:

      char a[3][3] = {  
         {"_", "_", "_"},
         {"_", "_", "_"},
         {"_", "_", "_"}};
      

      您的图板可能如下所示:4x4 multidimensional array

      例如,要将“x”填充到左上角,请编写:

      a[0][0] = 'x';
      

      希望有帮助!

      【讨论】:

      • 真是个混蛋!
      • 什么是 blödsinn?
      • 为什么?我正在努力帮助这个人。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 1970-01-01
      • 1970-01-01
      • 2022-01-15
      相关资源
      最近更新 更多