IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 用最简单的语言实现三字棋——完全代码化 -> 正文阅读

[C++知识库]用最简单的语言实现三字棋——完全代码化

实现思路

1.菜单2.选择2.界面3.双方玩游戏4.判断输赢

完整的代码

https://github.com/MLSTUDYNB/c_study/blob/main/三子棋/三子棋/game.c

三子棋视频,一定要先看哦

1.菜单

#include <stdio.h>void menu(){printf("##########################################
");printf("##############玩游戏按1###################
");printf("#############不玩游戏按0##################
");printf("##########################################
");}int main(){menu();return 0;}

2.选择

int n;do{printf("请做出你的选择
");scanf("%d", &n);switch (n){case 1:printf("玩游戏
");break;case 0:printf("不玩游戏,退出程序
");break;default:printf("输入错误,请重新输入
");break;}} while (n);

3.界面设置

void print(char board[ROW][COLUMNS]){int a, b;for (a = 0; a < ROW; a++){for (b = 0; b < COLUMNS; b++){printf(" %c ", board[a][b]);if (b < COLUMNS - 1)printf("|");}printf("
");for (b = 0; b < COLUMNS; b++){if(a<ROW-1)printf("----");}printf("
");}}

在运行框中显示的结果

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57yW56iLU0hBUkU=,size_14,color_FFFFFF,t_70,g_se,x_16

?

3.双方下棋

玩家下棋

void play(char board[ROW][COLUMNS]){printf("玩家请下棋的坐标->");int i, j;while (1){scanf("%d%d", &i, &j);if (i > 0 && i <= 3 && j > 0 && j <= 3){if (board[i-1][j-1] == ' '){board[i-1][j-1] = '*';break;}else{printf("该位置已被覆盖,请重新输入");}}else{printf("坐标非法,请从新输入");}}}

电脑下棋

void AI(char board[ROW][COLUMNS]){while (1){int i = rand() % ROW;int j = rand() % COLUMNS;if (board[i][j ] == ' '){board[i ][j ] = '#';break;}}}

返回值进行判断(返回w为平局,返回c为继续,返回棋子,表示该棋子方胜利)

int dogfall(char board[ROW][COLUMNS]){int a, b;for (a = 0; a < ROW; a++){for (b = 0; b < COLUMNS; b++){if (board[a][b] == ' '){return 1;}}}return 0;}char judge(char board[ROW][COLUMNS]){int a;for (a = 0; a < ROW; a++){if (board[a][0] == board[a][1] && board[a][1] == board[a][2]&&board[a][0]!=' '){return board[a][0];}if (board[0][a] == board[1][a] && board[2][a] == board[1][a] && board[1][a] != ' '){return board[0][a];}}//还有两种情况if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[0][0] != ' '){return board[0][0];}if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[2][0] != ' '){return board[0][2];}//平局if (dogfall(board) == 0){return 'w';}else{return 'c';}}

输赢展示

while (1){print(board);//玩家下棋play(board);system("cls");print(board);if ((ret=judge(board)) != 'c'){break;}//电脑下棋AI(board);system("cls");print(board);if ((ret = judge(board)) != 'c'){break;}}if (ret == '#'){printf("电脑赢
");}else if (ret == '*'){printf("恭喜你胜利了
");}else{printf("平局
");}

以上就是完成三子棋的代码

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA57yW56iLU0hBUkU=,size_20,color_FFFFFF,t_70,g_se,x_16

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-01-24 10:38:58  更:2022-01-24 10:39:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/9 14:51:16-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码