温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么用C语言写一个三子棋游戏

发布时间:2021-08-11 18:46:37 来源:亿速云 阅读:101 作者:chen 栏目:编程语言

这篇文章主要讲解了“怎么用C语言写一个三子棋游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用C语言写一个三子棋游戏”吧!

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

题目:C语言实现三子棋

问题分析:首先用到数组,存储信息。棋盘的信息和棋子的信息打印棋盘读取棋子的位置判断是否连子打印棋盘然后重复

代码如下:

#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>//数组沙盘char Global_Gobang[10][10];int Global_line, Global_pow;int Global_player;int Global_Count=0;//初始化棋盘void Initi_Gobang(){ for (int i = 0; i < 10; i++){  for (int j = 0; j < 10; j++){   Global_Gobang[i][j] = '+';  } }}//画出棋盘void Draw_Gobang(){ for (int i = 0; i < 10; i++){  for (int j = 0; j < 10; j++){   printf("%c ", Global_Gobang[i][j]);  }  printf("\n"); }}//在位置上下棋void Play_Gobang(int player, int line, int row){ // int flag= Check_Gobang(); while (player == 0 || player == 1) {  if (player == 0)  {   if (Global_Gobang[line - 1][row - 1] != 'o' && Global_Gobang[line - 1][row - 1] != '@'){    Global_Gobang[line - 1][row - 1] = 'o';    break;   }       else   {    printf("这个位置已经有棋子,请重新输入");    scanf("%d%d", &Global_line, &Global_pow);    Play_Gobang(Global_player, Global_line, Global_pow);    break;   }  }  else if (player == 1)  {   if (Global_Gobang[line - 1][row - 1] != 'o' && Global_Gobang[line - 1][row - 1] != '@'){    Global_Gobang[line - 1][row - 1] = '@';    break;   }    else   {    printf("这个位置已经有棋子,请重新输入");    scanf("%d%d", &Global_line, &Global_pow);    Play_Gobang(Global_player, Global_line, Global_pow);    break;   }  } }}//输入棋子的位置void Input_Gobang(){ if (Global_player == 1){  printf("请1号玩家输入棋子的位置"); } else if (Global_player == 0) {  printf("请2号玩家输入棋子的位置"); } scanf("%d %d", &Global_line, &Global_pow); system("cls");//刷新界面}int Check_Gobang(){ //i j 为行列的表示,flag为判断棋盘是否满了的标志,flag=0,代表满了 int i, j, flag = 0; //判断行是否成立 for (i = 0; i < 10; i++)  for (j = 0; j < 8; j++)   if (Global_Gobang[i][j]!='+' && Global_Gobang[i][j] == Global_Gobang[i][j + 1] && Global_Gobang[i][j] == Global_Gobang[i][j + 2])    return 1; //判断列是否成立 for (i = 0; i < 10; i++)  for (j = 0; j < 8; j++)   if (Global_Gobang[i][j] != '+' &&Global_Gobang[j][i] == Global_Gobang[j + 1][i] && Global_Gobang[i][j] == Global_Gobang[j + 2][i])    return 1; //判断主对角线是否成立1 for (i = 0; i < 8; i++)  for (j = 0; j < 8; j++)   if (Global_Gobang[i][j] != '+' &&Global_Gobang[j][i] == Global_Gobang[j + 1][i + 1] && Global_Gobang[i][j] == Global_Gobang[j + 2][i + 2])    return 1; //判断副对角线是否成立2 for (i = 2; i < 10; i++)  for (j = 2; j < 10; j++)   if (Global_Gobang[i][j] != '+' &&Global_Gobang[j][i] == Global_Gobang[j - 1][i - 1] && Global_Gobang[i][j] == Global_Gobang[j - 2][i - 2])    return 1; for (i = 0; i < 10; i++){  for (j = 0; j < 10; j++){   if (Global_Gobang[i][j] == '+')    flag = 1;  } } if (flag == 0)  return 0;}//int Playing_Gobang(){  Global_Count++;  if (Global_Count % 2 == 1)   Global_player = 1;  else   Global_player = 0;  if (Check_Gobang() == 1){   if (Global_player == 1){    printf("玩家2号赢得胜利,游戏结束\n");    return 1;   }   else{    printf("玩家1号赢得胜利,游戏结束\n");    return 1;   }  }  else if (Check_Gobang() == 0)  {   printf("棋盘已满,游戏结束\n");  }  Input_Gobang();  Play_Gobang(Global_player, Global_line, Global_pow);  Draw_Gobang();}int main(){ Initi_Gobang(); Draw_Gobang(); while (Global_Count<=100)  if (Playing_Gobang() == 0 || Playing_Gobang() == 1)   break; system("pause"); return 0;}

感谢各位的阅读,以上就是“怎么用C语言写一个三子棋游戏”的内容了,经过本文的学习后,相信大家对怎么用C语言写一个三子棋游戏这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI