题目很简单,就是写一个圈叉棋的游戏,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 三行三列的圈叉棋相关推荐

  1. 圈叉棋、套娃圈叉棋、嵌套圈叉棋、九个井字棋

    目录 一,圈叉棋(Tic-Tac-Toe) 二,套娃圈叉棋 1,规则 2,解空间分析 1,节点 2,解空间结构 3,复杂度分析 1,总节点数目 2,思路一--关键节点 3,思路二--对称性 4,数据结 ...

  2. HTML变列自适应布局三行,CSS三行三列DIV高度自适应的设置

    上一篇博客里引用了www.52css.com里的一篇关于使用脚本控制三行三列div高度自适应的设置方法,其实不必如此麻烦,只要给父div设置一个固定高度,比如10px,其子div的height:100 ...

  3. c语言学习-在一个三行三列的矩阵中求出数值最大的元素及其行/列下标并打印输出

    在一个三行三列的矩阵中求出数值最大的元素及其行/列下标并打印输出 程序流程图: 代码: #include<stdio.h> void main() {int a[3][3]; int i= ...

  4. html列自动变高,HTML_CSS三行三列DIV高度自适应的设置,用脚本控制三行三列div高度自 - phpStudy...

    CSS三行三列DIV高度自适应的设置 用脚本控制三行三列div高度自适应的设置方法,其实不必如此麻烦,只要给父div设置一个固定高度,比如10px,其子div的height:100%就可实现高度自适应 ...

  5. Android Studio:如何使用网格布局将整个界面等比分为三行三列

    刚开始接触android开发,还在摸索基础控件.老师说解决了一个问题就要记录下来以防以后遗忘,所以这里小小记录一下碰到的问题. 课本上的一道题目:怎么将界面等比分为三行三列,显示一个红色的" ...

  6. 圈叉游戏 java_【炫光圈叉棋】炫光圈叉棋 Tic Tac Toe Glow 1.8.1下载_安卓(android)软件下载-魅族溜...

    一款炫光风格的圈叉棋游戏,支持单/双人模式.圈叉棋,英文:tic-tac-toe,别名:圈叉游戏.是一种游戏,3*3的9个方格子,先下者画圈,后下者画叉,每人可以在任意没有对方棋子的封闭方格里下一次, ...

  7. 圈叉游戏c语言,C语言圈叉棋练习.docx

    C语言圈叉棋练习 要求:1.把棋盘清空2.显示棋盘3.使用循环进行游戏(每次放置一个心棋子),获得新棋子的行号(行号可能无效)获得新棋子的列号(列号可能无效)4.检查位置是否可用,放置新棋子,演示棋盘 ...

  8. Div+CSS构建三行三列框架

    要构建的框架如图所示: 方法一:使用div的浮动窗口属性 显然,页面布局到下是三层结构,中间的div包含三个小div:因为div是块元素,占用文档流的一行空间,要使一行中出现多个div,需要为div设 ...

  9. html写出带有表格标题的三行三列表格

    介绍 HTML里,可以使用 table 标签及它内部的属性 tr,td,th等就可以快速生成一个表格.具体如下: 效果图 相关属性介绍 一个简单的 HTML 表格由table元素以及一个或多个 tr. ...

最新文章

  1. Android蓝牙开发前序知识
  2. VS2010/VS 2013 删除空行
  3. java学习笔记(六)----对象的类型转换, 匿名内置类
  4. 编程开发之--Oracle数据库--存储过程在out参数中使用光标(3)
  5. forever不重启 node_运维监控Prometheus,部署安全的node_exporter监控主机
  6. JSP自定义标签_用简单标签控制标签体执行10次
  7. Python总结:保留小数点任意位round函数不够精确
  8. Redis五种数据类型及应用场景
  9. 项目实训第二周(车道线检测)
  10. NLog自定义字段写入数据库表,示例
  11. 怎么给字符串字段加索引?
  12. Linux lame无法识别WAV,Lame框架 MP3与WAV互转
  13. [USACO19FEB]Cow Dating——找规律
  14. 【优化算法】金鹰优化算法(GEO)【含Matlab源码 187期】
  15. 2022年(第八届)全国大学生统计建模大赛
  16. php开发App接口
  17. Linux文件打包压缩详解
  18. WebService CXF-RS技术之@Pathparam与@Queryparam注解区别
  19. mediawiki mysql_MediaWiki/安装
  20. 网页去广告服务器,使用 AdGuardHome,实现网页加速和去广告

热门文章

  1. 2.微处理器:8088功能结构图【BIU 和 EU】 + 8088【内部各寄存器】的解释
  2. Storm部署与运行
  3. mac电脑最好用的图片浏览器,没有之一
  4. Profinet协议基础知识(三)
  5. ADF 入门教程(1)
  6. MySQL创建数据库和表格
  7. Error on rename ofXXXXXX (errno: 152)
  8. html中如何实现倒计时
  9. 文件删除终结者 v1.2 免费
  10. 海信、索尼“圈层化”、美的、小天鹅奔向“拼多多”,家电品牌谋新路