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语言实现五子棋游戏完整实例代码
时间: 2018-01-26

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语言实现五子棋

正在考虑增加一个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语言实现五子棋小游戏

首先我们先来看一个稍微简单些的实现方式: #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语言实现五子棋游戏的方法,代码备有比较完整的注释,可以帮助读者更好的加以理解. 五子棋游戏代码如下: /* * 使用键盘的上下左右键移动棋盘,空格键表示下棋,ESC键退出程序 */ #include <stdio.h> #include <stdlib.h> #include <bios.h> #include <graphics.h> #include<malloc.h> /* * 对应键盘键的十六进制数字 */ #defi

基于C语言实现的贪吃蛇游戏完整实例代码

本文以实例的形式讲述了基于C语言实现的贪吃蛇游戏代码,这是一个比较常见的游戏,代码备有比较详细的注释,对于读者理解有一定的帮助. 贪吃蛇完整实现代码如下: #include <graphics.h> #include <conio.h> #include <stdlib.h> #include <dos.h> #define NULL 0 #define UP 18432 #define DOWN 20480 #define LEFT 19200 #defi

javascript实现的猜数小游戏完整实例代码

本文实例讲述了javascript实现的猜数小游戏.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <

C语言编写五子棋游戏

本文实例为大家分享了C语言编写五子棋游戏的具体代码,供大家参考,具体内容如下 一.构建棋盘 首先可以用一个二维数组来构建棋盘,下标表示位置,内容表示黑子白子或者空位.当数组内容为1时,该位置为白字,当数组为0时,该位置为白子,空位输出+ int w[11][11], flag = 0; int a, b; for (int k = 0; k < 11; k++) printf("第%d列\t", k); printf("\n"); for (int i = 0

java基于swing实现的五子棋游戏代码

本文实例讲述了java基于swing实现的五子棋游戏代码.分享给大家供大家参考. 主要功能代码如下: 复制代码 代码如下: import java.awt.*; import javax.swing.*; import java.awt.event.*; public class Main extends JFrame implements ActionListener{         private static final long serialVersionUID = 1L;      

JS实现的走迷宫小游戏完整实例

本文实例讲述了JS实现的走迷宫小游戏.分享给大家供大家参考,具体如下: 先来看看运行效果截图: 完整实例代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml

jQuery+vue.js实现的九宫格拼图游戏完整实例【附源码下载】

本文实例讲述了jQuery+vue.js实现的九宫格拼图游戏.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> * { margin: 0; padding: 0; } /*#piclist { width: 600p

C#实现基于IE内核的简单浏览器完整实例

本文实例讲述了C#实现基于IE内核的简单浏览器.分享给大家供大家参考.具体如下: Form1.cs如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Kit

基于JS实现checkbox全选功能实例代码

需求:要求实现点击全选选中所有菜单,再次点击全选取消选中.此功能经常会用户,下面小编给大家分享下实现代码,一起看看吧! 效果图如下: 点击全选之前: 点击全选之后: 再次点击全选之后: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> &l

C++语言数据结构 串的基本操作实例代码

C语言数据结构 串的基本操作实例代码 输出结果: 实现代码: #include<iostream> using namespace std; typedef int Status; #define Max 20 #define OK 1 #define ERROR 0 #define OVERLOE -2 typedef struct//堆分配表示串 { char *ch; int length; }HString; //====================================