gpt4 book ai didi

c++ - 作业 : Avoiding magic numbers

转载 作者:太空狗 更新时间:2023-10-29 21:49:48 25 4
gpt4 key购买 nike

<分区>

对于我的 c++ 家庭作业,我必须编写一个 Tic-Tac-Toe Win32 控制台应用程序。

我使用坐标系在屏幕上创建了一个网格,并使用 _getch()SetConsoleCursorPosition(...) 在用户按下箭头键并在用户按下其中一个键时绘制 X 或 O。

我的问题的关键部分

网格坐标的格式为 (x,y),1,1 表示左上角,5,5 表示右下角。每次按下箭头键都会将光标移动 +/- 2。例如,如果光标位于 1,1 并且用户按下向上箭头,则光标移动到 1,5,如果再次按下向上箭头,则光标移动到 1,3 等。

运动是用这个算术表达式处理的:

switch ( keyPress ) {
case UP :
position.Y = (12 + position.Y - 2) % 6;
SetConsoleCursorPosition(screen, position);
break;
case DOWN :
position.Y = (12 + position.Y + 2) % 6;
SetConsoleCursorPosition(screen, position);
break;
case LEFT :
position.X = (12 + position.X - 2) % 6;
SetConsoleCursorPosition(screen, position);
break;
case RIGHT :
position.X = (12 + position.X + 2) % 6;
SetConsoleCursorPosition(screen, position);
break;
}

问题

我不允许在赋值时使用魔数(Magic Number),因此,12、2 和 6 需要替换为有意义的变量名。这些值的适当名称是什么?

更新

根据评论,游戏板在屏幕上的显示方式如下:x 和 y 轴上的数字是绘制 X 或 O 的光标位置。

 0123456
0╔═╤═╤═╗
1║X│ │ ║
2╟─┼─┼─╢
3║ │O│ ║
4╟─┼─┼─╢
5║ │ │X║
6╚═╧═╧═╝

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