如何用C语言快速实现三子棋(步骤详细)(三)

简介: 在学习完C语言的函数和数组以后,就可以简易的实现一些小游戏 本文章为手把手讲解实现C语言三子棋(好好看,相信不会太难的说) 当你自己完成后一定成就感幸福感满满的!!

game.c


#include"game.h"
void Initboard(char board[ROW][COL], int row, int col)//初始化棋盘内容
{
  for (int i = 0; i < row; i++)
  {
    for (int n = 0; n < col; n++)
    {
      board[i][n] = ' ';
    }
  }
}
void Displayboard(char board[ROW][COL], int row, int col)//打印棋盘
{
  for (int i = 0; i < row; i++)//行数
  {
    for (int j = 0; j < col; j++)//列数
    {
      if (j < col - 1)//第一排内容,控制最后一次不打印‘|’
        printf(" %c |", board[i][j]);
      else
        printf(" %c ", board[i][j]);
    }
    printf("\n");//换行
    if (i < row - 1)//第二排,控制最后一次不打印
    {
      for (int k = 0; k < col; k++)
      {
        if (k < col - 1)
          printf("---|");
        else
          printf("---");
      }
      printf("\n");//同样换行
    }
  }
}
void Player(char board[ROW][COL], int row, int col)
{
  printf("player:输入坐标>\n");
  int i, j;
  while (1)
  {
    scanf("%d%d", &i, &j);
    if (i > 0 && i <= col && j > 0 && j <= row)
    {
      if (board[i - 1][j - 1] == ' ')
      {
        board[i - 1][j - 1] = '*';
        break;
      }
      else
        printf("已经被走过了,请重新输入坐标>\n");
    }
    else
      printf("超出范围啦,请重新输入坐标>\n");
  }
}
void Compter(char board[ROW][COL], int row, int col)
{
  printf("Compter:输入坐标>\n");
  while (1)
  {
    int i = rand() % col;
    int j = rand() % row;
    if (i >= 0 && i <col && j >= 0 && j < row)
    {
      if (board[i][j] == ' ')
      {
        board[i][j] = '#';
        break;
      }
    }
  }
}
char Iswin(char board[ROW][COL], int row, int col)//判断输赢
{
  for (int i = 0; i < row; i++)//横排
  {
    if (board[i][0] == board[i][1]&& board[i][0] == board[i][2] && board[i][0] == '*')
    {
      return '*';
    }
    if (board[i][0] == board[i][1] && board[i][0] == board[i][2] && board[i][0] == '#')
    {
      return '#';
    } 
  }
  for (int j = 0; j < col; j++)//判断竖排
  {
    if (board[0][j] == board[1][j] && board[0][j] == board[2][j] && board[0][j] == '*')
    {
      return '*';
    }
    if (board[0][j] == board[1][j] && board[0][j] == board[2][j] && board[0][j] == '#')
    {
      return '#';
    }
  }
  //判断对角线
    if ((board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] == '*')|| (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[0][2] == '*'))
    {
      return '*';
    }
    if ((board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] == '#')|| (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[0][2] == '#'))
    {
      return '#';
    }
    for (int i = 0; i < row; i++)
    {
      for (int n = 0; n < col; n++)
      {
        if (board[i][n] == ' ')
          return 'g';//继续游戏
      }
    }
    return 's';//平局
}
相关文章
|
1月前
|
IDE Unix 开发工具
1.6使用C语言的7个步骤后续
在编程过程中,首先通过不同环境下的方法运行程序,如输入可执行文件名或点击图标。接着测试程序运行情况,查找并修正可能出现的错误,即调试。创建程序后还需根据需求进行维护与修改,如修正错误或添加新功能。整个流程非线性,需反复迭代。
67 8
|
1月前
|
编译器 C语言
1.6 使用C语言的7个步骤
在开发C程序时,首先要明确程序目标,即程序需要处理的信息、计算和输出;接着设计程序实现的方法,包括用户界面、程序结构等;随后用C语言编写程序代码;最后通过编译器将源代码转换为特定机器语言的可执行文件,同时链接C库中的标准函数,形成最终可运行的程序。此过程需根据具体编程环境调整相关设置和操作。
54 7
|
5月前
|
C语言
【海贼王编程冒险 - C语言海上篇】C语言如何实现简单的三子棋游戏?
【海贼王编程冒险 - C语言海上篇】C语言如何实现简单的三子棋游戏?
30 1
|
6月前
|
C语言
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(二)
我们可以通过创建并定义符号常量NUMBER,来作为判断是否胜利的标准。如三子棋中,令NUMBER为3,则这八个方向中有任意一个方向达成3子连珠,则连珠的这个棋子所代表的玩家获胜。
68 1
|
6月前
|
算法 C语言 C++
万字详解:C语言三子棋进阶 + N子棋递归动态判断输赢(一)
三子棋游戏设计的核心是对二维数组的把握和运用。
80 1
|
6月前
|
编译器 C语言
【C语言入门小游戏】三子棋
【C语言入门小游戏】三子棋
52 0
【C语言入门小游戏】三子棋
|
5月前
|
存储 C语言
三子棋(C语言版)
三子棋(C语言版)
|
5月前
|
程序员 C语言 索引
【️C语言-游戏设置】---三子棋(N满)
【️C语言-游戏设置】---三子棋(N满)
|
6月前
|
人工智能 算法 数据可视化
C语言”三子棋“升级版(模式选择+”模拟智能“下棋)
C语言”三子棋“升级版(模式选择+”模拟智能“下棋)
|
6月前
|
存储 C语言
C语言实现三子棋
C语言实现三子棋
34 0