#include

#include

#include

void chess_board(char arr[3][3])          //打印棋盘

{

int i = 0;

int j = 0;

for (i = 0; i

{

printf( " %c | %c | %c \n", arr [i][0], arr[i][1], arr[i][2]);

if (i<2)

printf( "---|---|---\n");

}

}

int success_or_failure(char arr[3][3])       //判断胜负

{

int i = 0;

int j = 0;

for (i = 0; i

{

if ((arr [i][0] == arr[i][1]) && ( arr[i][j] == arr [i][2]))

{

if (arr [i][0] == '#')

return 1;                //用户赢了

else if (arr[i][0] == '0')

return -1;            //电脑赢了

}

}

for (j = 0; j

{

if ((arr [0][j] == arr[1][j]) && ( arr[1][j] == arr [2][j]))

{

if (arr [0][j] == '#')

return 1;                 //用户赢了

else if (arr[0][j] == '0')

return -1;               //电脑赢了

}

}

if ((arr [0][0] == arr[1][1]) && ( arr[0][0] == arr [2][2]))

{

if (arr [1][1] == '#')

return 1;               //用户赢了

else if (arr[1][1] == '0')

return -1;             //电脑赢了

}

if ((arr [0][2] == arr[1][1]) && ( arr[0][2] == arr [2][0]))

{

if (arr [1][1] == '#')

return 1;             //用户赢了

else if (arr[1][1] == '0')

return -1;           //电脑赢了

}

for (i = 0; i

{

for (j = 0; j

{

if (arr [i][j] == ' ')

return 0;      //都没赢

}

}

return -2;                  //平局

}

int user_game(char arr[3][3])                   //用户输入

{

int x = 0;

int y = 0;

while (1)

{

printf( "please user input:(x, y) ");

scanf( "%d%d", &x, &y);

printf( "\n");

if ((x<1 && x>3) || (y<1 && y>3))  //判断用户输入的是否合法

{

printf( "地址无效,请重新输入\n" );

break;

}

if (arr [x - 1][y - 1] == ' ')    //判断这个位置有没有被占

{

arr[x - 1][y - 1] = '#' ;

break;

}

printf( "地址无效,请重新输入\n" );

}

chess_board( arr);

int ret=success_or_failure(arr );

return ret;

}

int computer_game(char arr[3][3])                  //电脑输入

{

printf( "computer input:\n\n");

int x = 0;

int y = 0;

while (1)

{                 //产生一个没有被棋子占用的位置

srand(( unsigned)time(NULL ));

x = rand() % 3;

srand(( unsigned)time(NULL ));

y = rand() % 3;

if (arr [x][y] == ' ')

break;

}

arr[x][y]= '0' ;

chess_board(arr);

int ret=success_or_failure(arr);

return ret;

}

void init(char arr[][3])                  //初始化棋盘

{

for (int i = 0; i

{

for (int j = 0; j<3; j++)

{

arr[i][j] = ' ';

}

}

}

int main()

{

printf( "**********************\n");            //打印菜单

printf( "*******        *******\n");

printf( "*******1.go   0.exit**\n");

printf( "*******        *******\n");

printf( "**********************\n");

printf( "**********************\n\n\n");

char arr[3][3];

while (1)

{

init(arr);                       //初始化棋盘

int count = 0;

printf( "\nplease choice:1 or 0 : " );

scanf( "%d", &count);               //选择功能

if (count == 0)

{

exit( EXIT_FAILURE);

}

else if (count == 1)

{

printf( "\n****游戏开始****\n\n" );

while (1)

{   int n1 = user_game(arr);

{

if (n1 == 1)

{

printf( "****恭喜玩家赢了****\n" );

break;

}

}

int n2 = computer_game(arr);

{

if (n2 == -1)

{

printf( "****电脑赢了****\n" );

break;

}

}

if ((n1 == -2) || (n2 == -2))

{

printf( "*****平局******\n" );

break;

}

}

printf( "\n再来一局\n\n" );

}

return 0;

}

c语言开发独立游戏,游戏项目一:c语言实现三子棋相关推荐

  1. 聊聊在博客园写博客的这两年《Unity 3D脚本编程:使用C#语言开发跨平台游戏》正式出版...

    版本状态: 2016.9 第一次印刷 (2016.11 输出到台湾) 2017.1 第二次印刷 2017.5 第三次印刷 2017.5 电子书上线:Unity 3D脚本编程--使用C#语言开发跨平台游 ...

  2. 《Unity 3D脚本编程:使用C#语言开发跨平台游戏》序言

    本文是7月受陈嘉栋的委托为他的新书<Unity 3D脚本编程:使用C#语言开发跨平台游戏>所写的序言,借助序言告诉大家.NET平台有着一个广阔的使用场景. 序言 Unity3D 是由两个具 ...

  3. C语言开发小游戏—编译器篇graphic.h的安装

    用C语言开发小游戏的前期准备-以VS2015编译器为例 要开发小游戏很大 程度上C和C++都会涉及,并且会涉及不少库函数的知识,在这里简单起见,我先把开发一个简单的图形界面游戏需要的东西在这里写一下, ...

  4. Go语言开发(九)、Go语言并发编程

    Go语言开发(九).Go语言并发编程 一.goroutine简介 1.并发与并行简介 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行. 并发(concurrency):指在同 ...

  5. Go语言开发(二)、Go语言基础

    Go语言开发(二).Go语言基础 一.Go语言程序结构 Go语言程序基本结构如下: A.包声明 B.引入包 C.函数 D.变量 E.语句 & 表达式 F.注释 package main //包 ...

  6. php语言可以写游戏吗,网游用什么语言开发,网游用什么语言开发的

    通常用于开发在线游戏的编程语言是什么? C,DX,.NET? 如果是页面游戏,则前端和后端也需要PHP .通常使用哪种编程语言来开发在线游戏? 网络游戏可以使用脚本语言javascript,pytho ...

  7. c语言开发与游戏时间,都9012年了,为何我用C语言开发游戏(是的,C语言)

    原标题:都9012年了,为何我用C语言开发游戏(是的,C语言) 作者:Jonathan Whiting 原文:https://jonathanwhiting.com/writing/blog/game ...

  8. 用C语言开发入门游戏FlappyBird

    前言 <flappy bird>是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品,游戏于2013年5月24日上线,并在2014年2月突然暴红.2014年2月,<Fl ...

  9. 学会c语言开发出很多,学会了C语言可以开发出很多东西吗?

    C语言相比其他高级语言,就像内功和剑法一样.只会C语言可能并不能写出一个看起来就很厉害的程序,但C语言是你学好其他一切语言的基础.有了C语言的底子,再学别的语言就很容易上手了. 你能想到的,C语言都能 ...

最新文章

  1. c++仪表盘。。。附源码
  2. 4.1 [单选]两化融合中的两化是指 - 关于两化融合(主讲:凌捷)笔记
  3. ExtJs学习笔记(21)-使用XTemplate结合WCF显示数据
  4. 无法嵌入互操作类型 请改用适用的接口_西门子COMOS软件开发定制学习7-嵌入谷歌浏览器内核...
  5. 排序 八种经典排序算法
  6. 自定义用户控件显示属性分类、描述、默认值
  7. mysql库表的触发器表名_MySQL 触发器,实现不同数据库,不同表名,表结构不同,数据实时同步...
  8. SIFT: Distinctive Image Features from Scale-Invariant Keypoints
  9. java的log计算_Java普通对数(log)计算方法
  10. 搜索引擎学习之旅3 - 搜索引擎工作流程
  11. 西安电子科技大学计算机学院评论,西电高琳教授团队在Science子刊及领域著名期刊发表成果...
  12. 菜鸟日记(yzy) 微信公众号网页的开发-websocket
  13. 如何有效防止PHP木马对网站提权
  14. 攻防世界 web高手进阶区 9分题 favorite_number
  15. 【FFMPEG使用经验一】FFMPEG解码MP4帧数不对问题探索
  16. 这个618买到假货了怎么办?
  17. 2019年新SRRC认证怎么收费
  18. MG动画实例——星星图标
  19. jieba分词自定义词库无效果
  20. php使用fpm fcgi模式,为所有PHP模式安装Ioncube Loader(CLI,CGI,FCGI和FPM)在Debian Wheezy...

热门文章

  1. 事务是什么?事务的4个特点(ACID),事务的开启与结束
  2. 给程序员的几条建议,精彩配图
  3. Window系统 安装TFLearn
  4. 算法总结之 数组的partition调整
  5. 使用json对象要注意的地方
  6. mysql 表中中文不显示
  7. Redis 安装部署介绍
  8. 二进制安装MySQL
  9. Debian完全卸载清理MySQL服务器
  10. 【SQLServer】