C语言实现三子棋实例代码怎么写
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这期内容当中小编将会给大家带来有关C语言实现三子棋实例代码怎么写,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先,我将该程序的实现分为3个板块,main,game
千家信息网最后更新 2025年02月23日C语言实现三子棋实例代码怎么写
这期内容当中小编将会给大家带来有关C语言实现三子棋实例代码怎么写,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
首先,我将该程序的实现分为3个板块,main,game.h,和game.c;
代码如下:
#define _CRT_SECURE_NO_WARNINGS#include"game.h" void menu(){ printf("****************************************\n"); printf("*********** 1.play 0.exit ************\n"); printf("****************************************\n");} void game(){ char board[ROW][COL] = {0}; Creatboard(board, ROW,COL);//创建棋盘 Displayboard(board,ROW,COL); //初始化棋盘 while (1) { PlayerMove(board,ROW,COL);//玩家移动 Displayboard(board, ROW, COL);//绘制 char i = Result(board, ROW, COL);//判断 switch (i) { case '*': printf("你赢了!"); Sleep(2000); Creatboard(board, ROW, COL); break; case '#': printf("你输了!"); Sleep(2000); Creatboard(board, ROW, COL); break; case 'p': printf("平局!"); Sleep(2000); Creatboard(board, ROW, COL); break; case 'c':; }//我没用鹏哥讲的;用的switch好像更麻烦了 system("cls");//清屏 ComputerMove(board, ROW, COL);//电脑移动 Displayboard(board, ROW, COL); switch (i) { case '*': printf("你赢了!"); Sleep(2000); Creatboard(board, ROW, COL); break; case '#': printf("你输了!"); Sleep(2000); Creatboard(board, ROW, COL); break; case 'p': printf("平局!"); Sleep(2000); Creatboard(board, ROW, COL); break; case 'c':; } }} void control(){ int n = 0; do { menu();//菜单页面 printf("请选择:>"); scanf("%d", &n); switch (n) { case 0: printf("退出游戏\n"); break; case 1: game(); break; default: printf("输入错误,请重新输入\n"); break; } } while (n);} int main(){ srand ((unsigned int)time(NULL));//时间戳 control(); return 0;}
这部分我用了switch之后比较麻烦,也没有结束游戏的退出程序,写的比较乱。
我将所用的头文件都放在了game.h里,着是鹏老师教的写大程序的方式,使程序结构一目了然。
#define ROW 3#define COL 3 #include#include #include //函数声明void Creatboard(char board[ROW][COL], int row, int col);void Displayboard(char board[ROW][COL],int row, int col);void PlayerMove(char board[ROW][COL], int row, int col);void ComputerMove(char board[ROW][COL], int row, int col);char Result(char board[ROW][COL], int row, int col);
对函数的定义是主要事项,判断三子棋当前是否输赢或是平局,以及棋盘绘制的规律,都是在看了几遍后才明白,我这个比较粗糙,有能力的可以自行修改一下绘制的图案。
#define _CRT_SECURE_NO_WARNINGS #include"game.h" void Creatboard(char board[ROW][COL], int row,int col){ int i = 0, j = 0; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { board[i][j] = ' '; } }} void Displayboard(char board[ROW][COL], int row, int col)//绘制图案最好用循环,直接用printf按鹏哥的话说比较挫{ int i = 0, j = 0; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { printf(" %c ", board[i][j]); if (j < col - 1) printf("|"); } printf("\n"); if (i < row - 1) { for (j = 0; j < col; j++) { printf("---"); if (j < col-1) printf("|"); } } printf("\n"); }} void PlayerMove(char board[ROW][COL], int row, int col)//下棋的位置是用坐标表示的{ int x, y; printf("玩家请下棋:>\n");again: scanf("%d %d", &x, &y); if (board[x - 1][y - 1] == ' ') { board[x - 1][y - 1] = '*'; } else { printf("非法位置,请重新输入\n"); goto again; }} void ComputerMove(char board[ROW][COL], int row, int col){ printf("电脑下棋中\n"); while (1) { int x = rand() % row;//生成0~2之间的随机数 int y = rand() % col; if (board[x][y] == ' ') { board[x][y] = '#'; break; } }} int Full(char board[ROW][COL], int row, int col)//判定棋盘是否下满{ int i = 0, j = 0; for (i = 0; i < row; i++) { for (j = 0; j < col; j++) { if (board[i][j] == ' ') return 0; } } return 1;} char Result(char board[ROW][COL], int row, int col){ int i = 0, j = 0; for (i = 0; i < row; i++)//判断三行 { if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[0][i] != ' ') return board[0][0]; } for (j = 0; j上述就是小编为大家分享的C语言实现三子棋实例代码怎么写了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
j++
棋盘
程序
三子
代码
平局
输入
实例
语言
内容
函数
图案
电脑
麻烦
分析
移动
粗糙
一目了然
中小
之间
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库设计每一阶段设计任务
易语言调用云端数据库
gitea数据库怎么选
松江区软件开发代理
mvp软件开发的阶段
服务器装安全狗有用吗
支持截词检索技术的数据库有
要创建数据库需要mdf吗
网络安全议论文800字
网络安全工程师证书认证
天门好的软件开发团队
传奇176版本数据库
数据库表字段定义顺序
广东省网络安全宣传周领导
网络安全团日活动主持词
5g互联网科技股
数据库建模的基本原则
关系型数据库基本语法
网络安全保密面临威胁
渗透服务器操作步骤
乐图墨菊如何更新数据库
嵌入式软件开发区小吃街南京
电脑怎么与服务器直连
软件开发绩效考评指标
服务器怎样加模组手机版
开服买服务器
税务系统网络安全责任书
软件开发是铁饭碗吗
武大新校区网络安全学院
去腾讯做软件开发前景如何