C语言 三子棋小游戏

news/2025/1/8 22:12:46/

因为代码有些多,所以使用了头文件来方便理解。

void initial(char arr[ROW][COL],int row,int col) //初始化棋盘函数
{ for(row=0;row<ROW;row++) {for(col=0;col<COL;col++){arr[row][col] = ' ';printf("%c",arr[row][col]);if(col<COL -1)printf("  |  ");}printf("\n");if(row<ROW -1)printf("————————\n");}
}
void player(char arr[ROW][COL],int row,int col) //用户下棋函数
{printf("请输入棋子坐标>:");scanf("%d %d",&row,&col);while(1){if((row>=1 && row<=ROW+1) && (col>=1 && col <=COL+1)){if(arr[row-1][col-1] ==' '){ arr[row-1][col-1] = '*';break;}else if(arr[row-1][col-1] =='#'){printf("该位置已被对方占用,请重新选择!\n");printf("请输入棋子坐标>:");scanf("%d %d",&row,&col);}else if(arr[row-1][col-1] =='*')printf("这个地方那你已经下过了,换个地方吧!\n");else printf("你是怎么做到显示这个行代码的??");}elseprintf("坐标输入错误,请重新选择!\n");printf("请输入棋子坐标>:");scanf("%d %d",&row,&col);}
}
void printing(char arr[ROW][COL],int row,int col) //打印棋盘的函数。
{for(row=0;row<ROW;row++) {for(col=0;col<COL;col++){printf("%c",arr[row][col]);if(col<COL -1)printf("  |  ");}printf("\n");if(row<ROW -1)printf("————————\n");}
}

void computer (char arr[ROW][COL],int row,int col) //电脑下棋函数。
{  while(1){ row = rand()%3;col = rand()%3;if(arr[row][col] == ' '){arr[row][col] = '#';break;}}    
}
int windefeat(char arr[ROW][COL],int row,int col) //判断输赢函数。
{int count = 0;for(row=0;row<ROW;row++){if(arr[row][0] == arr[row][1] && arr[row][1]== arr[row][2]){if(arr[row][0] =='*')return 1;else if(arr[row][0] == '#')return 0;}}for(col=0;col<COL;col++){if(arr[0][col] == arr[1][col] && arr[1][col] ==arr[2][col]){if(arr[0][col] == '*')return 1;else if(arr[0][col] == '#')return 0;}}if(arr[0][0] == arr[1][1] && arr[1][1]== arr[2][2] ){if(arr[0][0] == '*')return 1;else if(arr[0][0] == '#')return 0;}if(arr[0][2] == arr[1][1] && arr[1][1]== arr[3][0] ){if(arr[0][2] == '*')return 1;else if(arr[0][2] == '#')return 0;}for(row=0;row<ROW;row++){for(col=0;col<COL;col++){if(arr[row][col] ==' ')count++;}}if(count == 0){ return 2;}return 9;}

//这是源文件,里面存放着三子棋所需要的函数。
//这是源文件,里面存放着三子棋所需要的函数。
//这是源文件,里面存放着三子棋所需要的函数。

//函数是在在 int main() 开始

#include"game.h"
#include<stdlib.h>
#include<time.h>
void menu()  //menu是菜单函数。

{    
     printf("*******************************\n");
     printf("******1:game      0:exit*******\n");
     printf("*******************************\n");

}
int option(int x)   //开局选择是否进入游戏的函数。
{
if(x==1)
    return 1;
if(x==0)
    return 0;
else
    return 2;
}

void game() //游戏程序的实现函数。
{
 char arr[ROW][COL];
 initial(arr,ROW,COL); //棋盘的初始化。
  do
 {
 player(arr,ROW,COL);//玩家下棋函数。
 printf("胡图图下棋:\n");
 printing(arr,ROW,COL);
    if(windefeat(arr,ROW,COL)==0)//判断输赢函数。
       {
        printf("牛爷爷赢了!\n");
        break;
       }
    if(windefeat(arr,ROW,COL)==1)
       {
          printf("胡图图赢了!\n");
          break;
       }
    if(windefeat(arr,ROW,COL)==2)
       {
          printf("平局了\n");
          break;
       }
  printf(" \n");//为了把牛爷爷和胡图图的棋盘分开,使得更明显。
  printf(" \n");
 printf(" \n");
 printf("牛爷爷下棋:\n");
 computer(arr,ROW,COL); //电脑下棋函数。
 printing(arr,ROW,COL);
     if(windefeat(arr,ROW,COL)==0)  //判断输赢函数。
       {
        printf("牛爷爷赢了!\n");
        break;
       }
    if(windefeat(arr,ROW,COL)==1)
       {
          printf("胡图图赢了!\n");
          break;
       }
    if(windefeat(arr,ROW,COL)==2)
       {
          printf("平局了\n");
          break;
       }

 }
 while(1);

}

int main()
  {
   char arr[ROW][COL];
   int a;
   srand((unsigned int)time(NULL)); 
   do
   {
   menu();
   printf("请选择>>:");
   scanf("%d",&a);
   switch(option(a))
   {
   case 0: 
       printf("!结束游戏!\n");
       break;
   case 1:
      printf("!开始游戏!\n");
       game();
       break;
   default:
         printf("输入错误,请重新输入!\n");
         break;

   }}
   while(option(a));

       return 0;
  }


http://www.ppmy.cn/news/381266.html

相关文章

C语言初级小游戏——三子棋

目录 前言 一、游戏的设计思路 1.游戏模式 2.设计模块 二、分层说明 1.game.h文件 1.1 在此文件中&#xff0c;我们对其它需要在此游戏中实现的功能所对应的函数库进行了包含 1.2 进行符号定义 1.3 函数声明 2.game.c文件 2.1 对二维字符数组进行初始化 2.2 展示棋盘…

【C语言】三字棋小游戏详解

前言&#xff1a;今天我们来用C语言写一个三子棋小游戏&#xff0c;三子棋&#xff0c;是黑白棋的一种。三子棋是一种民间传统游戏&#xff0c;又叫九宫棋、圈圈叉叉、一条龙、井字棋等。这里我们写的是玩家与电脑对战的一个代码&#xff0c;如果想跟朋友一起玩也可以自己稍作修…

【C语言】三子棋小游戏设计

设计思路大致如下&#xff1a; 将游戏函数与主函数分块&#xff0c;主函数需要调用另一个源文件里的游戏函数&#xff0c;则在自定的头文件里要做好声明&#xff0c;头文件如下 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include <stdlib.h> #inclu…

【C语言小游戏】猜数字游戏

hello&#xff0c;csdn的小伙伴呢&#xff0c;在前面&#xff0c;我们已经初步了解了c语言&#xff0c;并且系统的学习了分支与循环的内容。今天我们就将分支与循环的内容综合应用一下&#xff0c;来做一个很简单猜数字小游戏。 目录 程序的需求以及最终代码展示 一、实现打印…

【C语言入门小游戏】三子棋

快点点赞 目录 文本目录 前言 一、游戏整体思路 二、代码实现以及思路 1.棋盘的初始化 2.棋盘的打印 3.玩家下棋 4.电脑自动下棋&#xff08;智障化下棋&#xff09; 5.判断输赢 三、代码的运行 前言 相信很多学习c语言的小伙伴都想设计一款属于自己的小游戏吧&#xff0c;那…

《C语言初阶》 猜数字小游戏

大家好&#xff0c;这篇文章主要教大家写个小游戏&#xff0c;学习编程的时候我们肯定都有一个梦想就是想写出属于自己的游戏。这次&#xff0c;我们就从0到1开始写一个非常简单的猜数字小游戏&#xff0c;当你写完时和你的朋友一起玩吧! 首先&#xff0c;我们制定一些游戏规则…

趣讲用c语言实现三子棋小游戏

目录 直接先看看最后运行效果吧 三子棋如何设计的&#xff0c;及其步骤 1&#xff0c;源文件已经头文件的创建 2.创建主函数 3.test函数的创建 4.game函数的创建和运行 5.五个函数的实现 a.init_board的实现 b.print_board的实现 c.player_move的实现 d.computer_mo…

三字棋小游戏1

文章目录 思路game.hgame.ctest.c 思路 今天&#xff0c;我们来教大家写一个简单版本的三字棋小游戏。具体代码我已经放到最后了&#xff0c;我们只这里说说思路。 1.三字棋游戏&#xff0c;我们首先得有一个棋盘。 2.然后&#xff0c;玩家得能够下棋和电脑也得下棋 3.最后是判…