【无标题】C++ 井字棋代码

目前是我重学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");

  }

 }

}

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Naxx Crazy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值