我对C相对较新.在Kochan的"C语言编程"中,我目前正在使用if-else语句.我正在尝试编写一个基本的tic-tac-toe游戏,但我遇到了一些困难.一旦玩家放置了x或o,我不确定如何保存棋盘.这是我到目前为止的代码:
#include <stdio.h>
int main (void)
{
int board = "_|_|_\n
_|_|_\n
| | \n";
int player1, player2;
printf ("Print %i", board)
printf("Player 1, it's your move:")
scanf("%i", player1)
if(player1 == "upLeft")
printf("x|_|_\n
_|_|_\n
_|_|_\n
etc.
Run Code Online (Sandbox Code Playgroud)
我还是太初学者才能实现这个功能吗?
首先,这没有意义:
int board = "_|_|_\n
_|_|_\n
| | \n";
Run Code Online (Sandbox Code Playgroud)
An int不是字符串,也不能将字符串赋给int.在C中,字符串是字符数组:
char board[] = "_|_|_\n_|_|_\n | | \n";
Run Code Online (Sandbox Code Playgroud)
这更有意义.但它真的不是存储tic tac toe board状态的好方法.你应该做的是为板上的每个位置存储一些值.不要担心电路板的实际格式,您可以在显示时按照您的喜好对其进行格式化.所以以这种方式存储你的板:
char board[9] = "---------";
Run Code Online (Sandbox Code Playgroud)
其中" - "表示空格为空.当玩家移动时,您可以使用"X"或"O"(或1和2,或任何其他适合您的值)替换阵列中相应位置的角色.当您从用户那里获得一些输入时,您将只更改电路板阵列中的相应值.例如,如果从左上角开始对位置0-8进行编号,则中间行中最右边的位置将是位置5.(请记住,C数组是从零开始的,因此第一个索引是0.)因此,如果用户想要在该位置放置X,您会说:
board[5] = 'X';
Run Code Online (Sandbox Code Playgroud)
接下来,您可能想要编写一个打印电路板的功能.这是在这里您可以插入任何你喜欢的人物绘制电路板.
最后,您将要使用某种循环来重复读取用户的输入,修改电路板的状态,打印电路板,并显示提示.
| 归档时间: |
|
| 查看次数: |
924 次 |
| 最近记录: |