gpt4 book ai didi

c++ - 有没有一种方法可以使选择特定变量的效率更高?

转载 作者:行者123 更新时间:2023-12-03 06:57:50 24 4
gpt4 key购买 nike

因此,我正在编写一个程序,其中将9种不同的迷宫存储在2d数组中,并全部填充了硬编码值。当玩家选择迷宫时,我想将所选迷宫中的硬编码值复制到 Activity 迷宫的2d数组中。当我写出它时,我以最直接的方式做到了,如下所示。然后我想让它看起来更好,使它迷宫……...肿。开关盒不会减少行数,因此我想采取某种方法将int mazeSelection变量立即放入所选迷宫的变量名中。但是似乎您不能在运行时更改变量名,也不能使用字符串变量来表示另一个变量的名称。例如string mazenumber = "maze" + tostring(mazeSelection);然后执行mazenumber[11][11]不起作用,但这是我想做的基本想法。
因此,结果是,有没有办法使此代码更有效?

    if(mazeSelection == 1)
maze[11][11] = maze1[11][11];
if(mazeSelection == 2)
maze[11][11] = maze2[11][11];
if(mazeSelection == 3)
maze[11][11] = maze3[11][11];
if(mazeSelection == 4)
maze[11][11] = maze4[11][11];
if(mazeSelection == 5)
maze[11][11] = maze5[11][11];
if(mazeSelection == 6)
maze[11][11] = maze6[11][11];
if(mazeSelection == 7)
maze[11][11] = maze7[11][11];
if(mazeSelection == 8)
maze[11][11] = maze8[11][11];
if(mazeSelection == 9)
maze[11][11] = maze9[11][11];

最佳答案

所以您的问题缺少详细信息,但是假设您有这个问题

int maze[11][11], maze1[11][11]; // etc
那么首先要说的是
maze[11][11] = maze1[11][11];
不会复制您的迷宫。这是一个非常常见的初学者误解,您可以通过这种方式引用整个数组,但是 maze1[11][11]仅引用坐标(11,11)处的迷宫元素而不是整个迷宫。更糟糕的是,由于数组的大小是11 x 11,因此该元素实际上并不存在,因此代码只是一个错误。没有(令人惊讶的)没有简单的方法可以在C++中复制数组。
最简单的建议(由于@molbdnilo)是将迷宫放入结构中。
struct Maze
{
int tiles[11][11];
};

Maze maze, maze1; // etc
现在可以以通常的方式复制结构,因此
maze = maze1;
是合法代码,并且确实复制了迷宫。
然后,您可以继续做一些迷宫,并编写以下简单代码
Maze selected_maze, all_mazes[10];

selected_maze = all_mazes[mazeSelection];

关于c++ - 有没有一种方法可以使选择特定变量的效率更高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64022609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com