c语言开发独立游戏,游戏项目一:c语言实现三子棋
#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语言实现三子棋相关推荐
- 聊聊在博客园写博客的这两年《Unity 3D脚本编程:使用C#语言开发跨平台游戏》正式出版...
版本状态: 2016.9 第一次印刷 (2016.11 输出到台湾) 2017.1 第二次印刷 2017.5 第三次印刷 2017.5 电子书上线:Unity 3D脚本编程--使用C#语言开发跨平台游 ...
- 《Unity 3D脚本编程:使用C#语言开发跨平台游戏》序言
本文是7月受陈嘉栋的委托为他的新书<Unity 3D脚本编程:使用C#语言开发跨平台游戏>所写的序言,借助序言告诉大家.NET平台有着一个广阔的使用场景. 序言 Unity3D 是由两个具 ...
- C语言开发小游戏—编译器篇graphic.h的安装
用C语言开发小游戏的前期准备-以VS2015编译器为例 要开发小游戏很大 程度上C和C++都会涉及,并且会涉及不少库函数的知识,在这里简单起见,我先把开发一个简单的图形界面游戏需要的东西在这里写一下, ...
- Go语言开发(九)、Go语言并发编程
Go语言开发(九).Go语言并发编程 一.goroutine简介 1.并发与并行简介 并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行. 并发(concurrency):指在同 ...
- Go语言开发(二)、Go语言基础
Go语言开发(二).Go语言基础 一.Go语言程序结构 Go语言程序基本结构如下: A.包声明 B.引入包 C.函数 D.变量 E.语句 & 表达式 F.注释 package main //包 ...
- php语言可以写游戏吗,网游用什么语言开发,网游用什么语言开发的
通常用于开发在线游戏的编程语言是什么? C,DX,.NET? 如果是页面游戏,则前端和后端也需要PHP .通常使用哪种编程语言来开发在线游戏? 网络游戏可以使用脚本语言javascript,pytho ...
- c语言开发与游戏时间,都9012年了,为何我用C语言开发游戏(是的,C语言)
原标题:都9012年了,为何我用C语言开发游戏(是的,C语言) 作者:Jonathan Whiting 原文:https://jonathanwhiting.com/writing/blog/game ...
- 用C语言开发入门游戏FlappyBird
前言 <flappy bird>是一款由来自越南的独立游戏开发者Dong Nguyen所开发的作品,游戏于2013年5月24日上线,并在2014年2月突然暴红.2014年2月,<Fl ...
- 学会c语言开发出很多,学会了C语言可以开发出很多东西吗?
C语言相比其他高级语言,就像内功和剑法一样.只会C语言可能并不能写出一个看起来就很厉害的程序,但C语言是你学好其他一切语言的基础.有了C语言的底子,再学别的语言就很容易上手了. 你能想到的,C语言都能 ...
最新文章
- c++仪表盘。。。附源码
- 4.1 [单选]两化融合中的两化是指 - 关于两化融合(主讲:凌捷)笔记
- ExtJs学习笔记(21)-使用XTemplate结合WCF显示数据
- 无法嵌入互操作类型 请改用适用的接口_西门子COMOS软件开发定制学习7-嵌入谷歌浏览器内核...
- 排序 八种经典排序算法
- 自定义用户控件显示属性分类、描述、默认值
- mysql库表的触发器表名_MySQL 触发器,实现不同数据库,不同表名,表结构不同,数据实时同步...
- SIFT: Distinctive Image Features from Scale-Invariant Keypoints
- java的log计算_Java普通对数(log)计算方法
- 搜索引擎学习之旅3 - 搜索引擎工作流程
- 西安电子科技大学计算机学院评论,西电高琳教授团队在Science子刊及领域著名期刊发表成果...
- 菜鸟日记(yzy) 微信公众号网页的开发-websocket
- 如何有效防止PHP木马对网站提权
- 攻防世界 web高手进阶区 9分题 favorite_number
- 【FFMPEG使用经验一】FFMPEG解码MP4帧数不对问题探索
- 这个618买到假货了怎么办?
- 2019年新SRRC认证怎么收费
- MG动画实例——星星图标
- jieba分词自定义词库无效果
- php使用fpm fcgi模式,为所有PHP模式安装Ioncube Loader(CLI,CGI,FCGI和FPM)在Debian Wheezy...