C语言实现三子棋游戏

本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下

#include<stdio.h>
#include<stdlib.h>
#include<time.h> 

void chess_board(char arr[3][3])     //打印棋盘
{
  int i = 0;
  int j = 0;
  for (i = 0; i < 3; i++)
  {
    printf( " %c | %c | %c \n", arr [i][0], arr[i][1], arr[i][2]);
    if (i<2)
    printf( "---|---|---\n");
  }
} 

int success_or_failure(char arr[3][3])    //判断胜负
{
   int i = 0;
   int j = 0;
   for (i = 0; i < 3; i++)
   {
    if ((arr [i][0] == arr[i][1]) && ( arr[i][j] == arr [i][2]))
     {
       if (arr [i][0] == '#')
         return 1;        //用户赢了
       else if (arr[i][0] == '0')
         return -1;      //电脑赢了
      }
   }
   for (j = 0; j < 3; j++)
    {
    if ((arr [0][j] == arr[1][j]) && ( arr[1][j] == arr [2][j]))
     {
      if (arr [0][j] == '#')
       return 1;         //用户赢了
      else if (arr[0][j] == '0')
        return -1;        //电脑赢了
     }
    }
    if ((arr [0][0] == arr[1][1]) && ( arr[0][0] == arr [2][2]))
     {
       if (arr [1][1] == '#')
         return 1;        //用户赢了
        else if (arr[1][1] == '0')
         return -1;       //电脑赢了
     }
    if ((arr [0][2] == arr[1][1]) && ( arr[0][2] == arr [2][0]))
     {
        if (arr [1][1] == '#')
          return 1;       //用户赢了
        else if (arr[1][1] == '0')
          return -1;      //电脑赢了
     }
    for (i = 0; i < 3; i++)
     {
        for (j = 0; j < 3; j++)
         {
           if (arr [i][j] == ' ')
             return 0;   //都没赢
         }
     }
     return -2;         //平局
} 

int user_game(char arr[3][3])          //用户输入
{
   int x = 0;
    int y = 0;
    while (1)
    {
     printf( "please user input:(x, y) ");
     scanf( "%d%d", &x, &y);
     printf( "\n");
     if ((x<1 && x>3) || (y<1 && y>3)) //判断用户输入的是否合法
     {
      printf( "地址无效,请重新输入\n" );
      break;
      }
     if (arr [x - 1][y - 1] == ' ')  //判断这个位置有没有被占
     {
       arr[x - 1][y - 1] = '#' ;
       break;
      }
     printf( "地址无效,请重新输入\n" );
   }
   chess_board( arr);
   int ret=success_or_failure(arr );
   return ret;
} 

int computer_game(char arr[3][3])         //电脑输入
{
     printf( "computer input:\n\n");
     int x = 0;
     int y = 0;
     while (1)
      {         //产生一个没有被棋子占用的位置
       srand(( unsigned)time(NULL ));
       x = rand() % 3;
       srand(( unsigned)time(NULL ));
       y = rand() % 3;
       if (arr [x][y] == ' ')
       break;
      }
   arr[x][y]= '0' ;
   chess_board(arr);
   int ret=success_or_failure(arr);
   return ret;
} 

void init(char arr[][3])         //初始化棋盘
{ 

    for (int i = 0; i < 3; i++)
    {
     for (int j = 0; j<3; j++)
      {
        arr[i][j] = ' ';
       }
    }
} 

int main()
{
   printf( "**********************\n");      //打印菜单
   printf( "*******    *******\n");
   printf( "*******1.go  0.exit**\n");
   printf( "*******    *******\n");
   printf( "**********************\n");
   printf( "**********************\n\n\n");
   char arr[3][3];
   while (1)
   {
    init(arr);            //初始化棋盘
    int count = 0;
    printf( "\nplease choice:1 or 0 : " );
    scanf( "%d", &count);        //选择功能
    if (count == 0)
     {
      exit( EXIT_FAILURE);
      }
   else if (count == 1)
    {
     printf( "\n****游戏开始****\n\n" );
     while (1)
     {  int n1 = user_game(arr);
       {
        if (n1 == 1)
        {
         printf( "****恭喜玩家赢了****\n" );
         break;
        }
       }
       int n2 = computer_game(arr);
        {
          if (n2 == -1)
          {
           printf( "****电脑赢了****\n" );
           break;
          }
        }
       if ((n1 == -2) || (n2 == -2))
       {
        printf( "*****平局******\n" );
        break;
       }
      }
         printf( "\n再来一局\n\n" );
    }
 return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

您可能感兴趣的文章:

  • C语言实现三子棋小游戏
  • C语言实现五子棋小游戏
  • 纯C语言实现五子棋
  • 基于C语言实现五子棋游戏完整实例代码
(0)

相关推荐

  • 纯C语言实现五子棋

    正在考虑增加一个MFC界面.不是人机对战的. 五子棋.c //date 2014年7月7日09:53:24 //willows //五子棋 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <assert.h> //棋盘初始化函数 //Chessboard棋盘数组,ln=棋盘大小,成功返回Chessboard,不成功NULL void init_Chessboa

  • C语言实现三子棋小游戏

    在这里我们要写出一个三子棋的小游戏,能够实现所需要的三字连珠的功能,并且可以使得游戏让玩家进行选择是否继续的功能. 代码: #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<stdlib.h> #include<time.h> #define ROW 3 #define COL 3 void init_board(char arr[ROW][COL]) { int i=0; int j=0; for

  • 基于C语言实现五子棋游戏完整实例代码

    本文实例讲述了基于C语言实现五子棋游戏的方法,代码备有比较完整的注释,可以帮助读者更好的加以理解. 五子棋游戏代码如下: /* * 使用键盘的上下左右键移动棋盘,空格键表示下棋,ESC键退出程序 */ #include <stdio.h> #include <stdlib.h> #include <bios.h> #include <graphics.h> #include<malloc.h> /* * 对应键盘键的十六进制数字 */ #defi

  • C语言实现五子棋小游戏

    首先我们先来看一个稍微简单些的实现方式: #include <stdio.h> #include <stdlib.h> #define N 15 int chessboard[N + 1][N + 1] = { 0 }; int whoseTurn = 0; void initGame(void); void printChessboard(void); void playChess(void); int judge(int, int); int main(void) { init

  • C语言实现三子棋游戏

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include<time.h> void chess_board(char arr[3][3]) //打印棋盘 { int i = 0; int j = 0; for (i = 0; i < 3; i++) { printf( " %c | %c | %c \n", arr [i][0], a

  • C语言实现三子棋游戏(初级版)

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 game.h #include<stdio.h> #include<stdlib.h> #include<time.h> #define ROW 3 #define COL 3 //声明函数 void InitBoard(char board[ROW][COL], int row, int col); //打印棋盘 void PrintBoard(char board[ROW][COL], i

  • 利用C语言实现三子棋游戏

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 说明:该游戏的实现需要用到三个文件 1.test.c:放置主函数(main())和菜单函数(menu())和游戏函数(game()). 2.game.c:放置game()里面的相应操作的函数,例如玩家移动(PlayerMove(board)),电脑移动(ComputerMove(board)),以及每一次移动之后打印当前棋盘内容的函数(DisplayBoard(board))等等.由于这些函数内容较多,所以单独放在一个

  • C语言实现三子棋游戏附注释

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 概述 三子棋棋盘为九宫格形式,玩家和电脑分别轮流落子,若有一方有三个棋连在一起的情况则胜. 实现过程 1.玩家交互菜单创建 2.棋盘创建与初始化 3.玩家与电脑落子 4.判定胜负关系 多文件实现 头文件 game.h #ifndef __GAME_H__ #define __GAME_H__ #include <stdio.h> #include <time.h> #include <stdlib.

  • 使用C语言实现三子棋游戏

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 先简单介绍一下我的三子棋小游戏是怎么玩的,就是自己跟电脑pk,只不过电脑没这么智能.自己输入想要下的坐标,电脑随机生成一个坐标,直到赢家产生.在这个过程中我觉得比较难的就是赢家的判定部分.在c语言中随机数的产生也就是调用srand()函数利用时间戳来获取随机值.算了游戏太简单,我想你们也都是冲着代码来的,直接上代码. 代码和实现 为了代码逻辑性更高,没那么繁杂,主要将代码分为三个部分,头文件game.h,和两个c文件,

  • 用C语言实现三子棋游戏

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 初始工作,通过#define 定义一个标识符来表示一个常量(棋盘的横纵坐标) (因为在代码的编写中,会有多处需要用到坐标.那么,在阅读代码时就可能会导致读者疲于理解当前的值到底是代表什么,即会对代码的解读造成困扰.所以,在该代码中通过使用宏定义解决了这个问题,同时也方便后续更改棋盘的大小.) #define MAX_ROW 3 #define MAX_COL 3 游戏创建流程 1. 创建棋盘 创建棋盘(二维数组),并将

  • C语言版三子棋游戏实现代码

    本文实例为大家分享了C语言版三子棋游戏的具体代码,供大家参考,具体内容如下 实现一个三子棋小游戏 下面是实现步骤: 总共有需要三个文件 第一,test.c 我们要在这个文件里面实现游戏的主体流程 第二,game.c 在这个文件里我们可以实现各个游戏函数的分装 第三,game.h 在这个文件里我们实现的是各个函数的声明 test.c 1.首先要有一个菜单 让玩家可以做出选择 2.接着对玩家做出的不同选择进行实现 选1就是开始游戏,所以我们进入到game函数里就好了 选0就是退出游戏, 其他选择的话

  • 详解用C语言实现三子棋游戏流程

    目录 三子棋游戏简介 一.分析及实现 1.棋盘 2.落子 3.判断输赢 二.程序演示 三.完整代码 1.main.c 2.game.c 3.game.h 总结 三子棋游戏简介 这是一个简单的三子棋小游戏,估计大家小时候都玩儿过,只要能连成三个,无论是行,列还是对角线,就可以胜利了.是不是很简单呢,那我们来尝试一下用C语言来写一个简单的三子棋游戏. 一.分析及实现 1.棋盘 想要玩游戏,那首先应该有一个棋盘吧.因为我们玩儿的是三子棋,所以来说一个3X3的棋盘应该可以满足要求.这里使用了一个三行三列

  • C语言实现三子棋游戏(棋盘可变)

    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 思路: main函数结构部署 game函数功能的实现 ①创建存储空间 ②初始化存储空间为空格 ③打印棋盘 ④实现玩家下棋 ⑤实现电脑下棋 ⑥实现玩家和电脑下棋后的输赢判断 所使用的文件: test.c-----用于测试游戏 game.c----用于实现游戏中的一些函数 game.h-----头文件 test.c #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #

  • 基于C语言实现三子棋游戏的示例代码

    1.创建文件  test.c (游戏的测试逻辑)game.c(游戏的实现逻辑)gane.h(游戏实现函数的声明) game.c 和game.h属于游戏实现 test.c属于游戏测试 test.c 源文件(源文件添加)——game.c 源文件(源文件添加)——game.h(头文件添加) 三个文件 2.首先在test.c文件写一个主函数,主函数里面有一个测试函数,测试函数里面写菜单.进入游戏.退出游戏 代码展示: void menu() { printf("*********************

随机推荐