目前是我重学C语言的第十天,这个代码是我看了视频之后,又看着视频敲出来的,我不能说我懂了这个代码,但是这个代码让我学会了很多学校没有学到的知识,目前这个代码还不算完整,只能玩家走,我没有写电脑走的程序,而且还有很多bug,测试了一下发现在玩的过程中打印不出来符号,但是如果输入过符号的地方第二次输入也输入不进去,只是不显示符号,有懂行的大佬也可以帮我看一下,指一下我的错误。
头文件
//符号的定义
#define ROW 3
#define COL 3
//函数的声明
//初始化棋盘
void Initboard(char board[ROW][COL], int row, int col);
//打印棋盘
void DisplayBoard(char board[ROW][COL],int row, int col);
void PlayMove(char board[ROW][COL], int row, int col);
函数完成
#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include"game.h"
void menu()
{
printf("********************\n");
printf("***1.play 0.exit****\n");
printf("********************\n");
}
void game()
{
//存二维数组
char board[ROW][COL];
//初始化棋盘-初始化空格
Initboard(board, ROW, COL);
//打印棋盘-打印数组的内容
DisplayBoard(board,ROW,COL);
while (1)
{
//玩家下棋
PlayMove(board,ROW,COL);
}
}
int main()
{
int input = 0;
do
{
menu();
printf("请选择:>");
scanf("%d\n", &input);
switch(input)
{
case 1:
game();
break;
case 0:
printf("退出游戏\n");
break;
default:
printf("选择错误\n");
break;
}
} while (input);
return 0;
}
测试类
#define _CRT_SECURE_NO_WARNINGS
#include"game.h"
#include<stdio.h>
void Initboard(char board[ROW][COL], int row, int col)
{
int i = 0;
int j = 0;
for (i = 0; i < row; i++)
{
for (j = 0; j < col; j++)
board[i][j] = ' ';
}
}
void DisplayBoard(char board[ROW][COL], int row, int col)
{
int i = 0;
for (i = 0; i < row; i++)
{
int j = 0;
for (j = 0; j < col; j++)
{
printf(" %c ", board[i][j]);
if (j < col - 1)
printf("|");
}
printf("\n");
if (i < row - 1)
{
int j = 0;
for (j = 0; j < col; j++)
{
printf("---");
if (j < col - 1)
printf("|");
}
printf("\n");
}
//printf(" %c | %c | %c \n", board[i][0], board[i][1], board[i][2]);
//if(i<row-1)
//printf("---|---|--- \n");
}
}
void PlayMove(char board[ROW][COL], int row, int col)
{
int x = 0;
int y = 0;
printf("玩家走\n");
while(1)
{
printf("请输入下棋坐标\n");
scanf("%d %d", &x, &y);
//判断坐标合法性
if (x >= 1 && x <= row && y >= 1 && y <= col)
{
//下棋
//判断坐标是否被占用
if (board[x - 1][y - 1] == ' ')
{
board[x - 1][y - 1] = '*';
break;
}
else
{
printf("坐标被占用\n");
}
}
else
{
printf("请重新输入\n");
}
}
}