3*3 三行三列的圈叉棋
题目很简单,就是写一个圈叉棋的游戏,player one 下的棋子用圈表示,player two下的棋子用叉来表示。谁先横竖斜先连成三个子谁赢。
下面是在控制台中代码: 注本程序是在gcc编译器下编译。
#include <stdio.h>
#include <string.h>
#include <math.h>
int arr[4][4] = {0}; // map
char ch[4][4]; // picture of chess
void showMap(){ //显示地图int i,j;for (i = 1;i < 4;i++){for (j = 1;j < 4;j++){if(arr[i][j] == 1){ch[i][j] = '*';}if(arr[i][j] == 2){ch[i][j] = '#';}}}for (i = 1;i <= 3;i++){printf("-------\n");printf("|%c|%c|%c|\n",ch[i][1],ch[i][2],ch[i][3]);}printf("-------\n");
}
int judgeV(int p){ //判断胜利,即三子连成一线int i,j;for (i = 1;i <= 3;i++){for (j = 1;j <= 3;j++){if (i == 1){if(arr[i][j] == p && arr[i][j] == arr[i+1][j] && arr[i+1][j] == arr[i+2][j])return 1;}if (j == 1){if(arr[i][j] == p && arr[i][j] == arr[i][j+1] && arr[i][j+1] == arr[i][j+2])return 1;}if ((i == 1) && (j == 1)){if(arr[i][j] == p && arr[i][j] == arr[i+1][j+1] && arr[i+1][j+1] == arr[i+2][j+2])return 1;}}}return 0;
}int main()
{int x , y; // positionint num = 0; // number of changeint player = 1; // first_player = 1*, second_player = 2#;memset(ch,' ',sizeof(ch));showMap();while(num < 9){printf("Please input the position of your next turn: ");scanf("%d %d",&x,&y);while(x < 1 || x > 3 || y < 1 || y > 3 || arr[x][y]){ //outside the chessboard the pos// -sition is occupied.printf("Please input again: "); //若位置已被占用或输入位置出界,则要求重新输入scanf("%d %d",&x,&y);}arr[x][y] = player;showMap();if(judgeV(player)){if(player == 1)printf("The first player wins\n");else printf("The second player wins\n");break;}num++;player = 3 - player;}if(num >= 9) {printf("Dogfall\n");}}
运行演示:
3*3 三行三列的圈叉棋相关推荐
- 圈叉棋、套娃圈叉棋、嵌套圈叉棋、九个井字棋
目录 一,圈叉棋(Tic-Tac-Toe) 二,套娃圈叉棋 1,规则 2,解空间分析 1,节点 2,解空间结构 3,复杂度分析 1,总节点数目 2,思路一--关键节点 3,思路二--对称性 4,数据结 ...
- HTML变列自适应布局三行,CSS三行三列DIV高度自适应的设置
上一篇博客里引用了www.52css.com里的一篇关于使用脚本控制三行三列div高度自适应的设置方法,其实不必如此麻烦,只要给父div设置一个固定高度,比如10px,其子div的height:100 ...
- c语言学习-在一个三行三列的矩阵中求出数值最大的元素及其行/列下标并打印输出
在一个三行三列的矩阵中求出数值最大的元素及其行/列下标并打印输出 程序流程图: 代码: #include<stdio.h> void main() {int a[3][3]; int i= ...
- html列自动变高,HTML_CSS三行三列DIV高度自适应的设置,用脚本控制三行三列div高度自 - phpStudy...
CSS三行三列DIV高度自适应的设置 用脚本控制三行三列div高度自适应的设置方法,其实不必如此麻烦,只要给父div设置一个固定高度,比如10px,其子div的height:100%就可实现高度自适应 ...
- Android Studio:如何使用网格布局将整个界面等比分为三行三列
刚开始接触android开发,还在摸索基础控件.老师说解决了一个问题就要记录下来以防以后遗忘,所以这里小小记录一下碰到的问题. 课本上的一道题目:怎么将界面等比分为三行三列,显示一个红色的" ...
- 圈叉游戏 java_【炫光圈叉棋】炫光圈叉棋 Tic Tac Toe Glow 1.8.1下载_安卓(android)软件下载-魅族溜...
一款炫光风格的圈叉棋游戏,支持单/双人模式.圈叉棋,英文:tic-tac-toe,别名:圈叉游戏.是一种游戏,3*3的9个方格子,先下者画圈,后下者画叉,每人可以在任意没有对方棋子的封闭方格里下一次, ...
- 圈叉游戏c语言,C语言圈叉棋练习.docx
C语言圈叉棋练习 要求:1.把棋盘清空2.显示棋盘3.使用循环进行游戏(每次放置一个心棋子),获得新棋子的行号(行号可能无效)获得新棋子的列号(列号可能无效)4.检查位置是否可用,放置新棋子,演示棋盘 ...
- Div+CSS构建三行三列框架
要构建的框架如图所示: 方法一:使用div的浮动窗口属性 显然,页面布局到下是三层结构,中间的div包含三个小div:因为div是块元素,占用文档流的一行空间,要使一行中出现多个div,需要为div设 ...
- html写出带有表格标题的三行三列表格
介绍 HTML里,可以使用 table 标签及它内部的属性 tr,td,th等就可以快速生成一个表格.具体如下: 效果图 相关属性介绍 一个简单的 HTML 表格由table元素以及一个或多个 tr. ...
最新文章
- Android蓝牙开发前序知识
- VS2010/VS 2013 删除空行
- java学习笔记(六)----对象的类型转换, 匿名内置类
- 编程开发之--Oracle数据库--存储过程在out参数中使用光标(3)
- forever不重启 node_运维监控Prometheus,部署安全的node_exporter监控主机
- JSP自定义标签_用简单标签控制标签体执行10次
- Python总结:保留小数点任意位round函数不够精确
- Redis五种数据类型及应用场景
- 项目实训第二周(车道线检测)
- NLog自定义字段写入数据库表,示例
- 怎么给字符串字段加索引?
- Linux lame无法识别WAV,Lame框架 MP3与WAV互转
- [USACO19FEB]Cow Dating——找规律
- 【优化算法】金鹰优化算法(GEO)【含Matlab源码 187期】
- 2022年(第八届)全国大学生统计建模大赛
- php开发App接口
- Linux文件打包压缩详解
- WebService CXF-RS技术之@Pathparam与@Queryparam注解区别
- mediawiki mysql_MediaWiki/安装
- 网页去广告服务器,使用 AdGuardHome,实现网页加速和去广告
热门文章
- 2.微处理器:8088功能结构图【BIU 和 EU】 + 8088【内部各寄存器】的解释
- Storm部署与运行
- mac电脑最好用的图片浏览器,没有之一
- Profinet协议基础知识(三)
- ADF 入门教程(1)
- MySQL创建数据库和表格
- Error on rename ofXXXXXX (errno: 152)
- html中如何实现倒计时
- 文件删除终结者 v1.2 免费
- 海信、索尼“圈层化”、美的、小天鹅奔向“拼多多”,家电品牌谋新路