一个好玩的小游戏(纯C语言编写)
最近在看知乎是发现了一个这一个专栏
https://zhuanlan.zhihu.com/c2game
从中获取的许多知识,本文中的游戏也是从里面学到的,不过本人又自己加了一些功能。
这是一个类似于飞机大战的游戏,不过目前代码量比较小,所以看起来非常简陋游戏界面如下
更新日志,本人将原来的原来的代码有进一步的优化了一下,之前是只有一个非常小的战机现在更新后可以产生一个非常大的战机(看起来也更有气势了~~)和敌人的战机,不过死亡的判定条件和边境的判断条件还没有做好,等下次再继续加油。2017.3.12更新
就是这样一个简陋的游戏(实在惭愧,本人目前能力有限)
如下图:
完整的代码如下:
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<windows.h>
#include<stdlib.h>
#define MAX 100
long long int speed = 0;//控制敌机的速度
int position_x, position_y;//飞机的所在位置
int high, width;//地图的大小
int bullet_x, bullet_y;//子弹的位置
int enemy_x, enemy_y;//敌人的位置
int map[MAX][MAX];
/*0表示空白,1表示战机*的区域,2表示敌人战机的位置。
3表示上下围墙,4表示左右围墙,5表示子弹的位置*/
int score;
void starup()//初始化所有的信息
{high = 20;width = 30;position_x = high / 2;position_y = width / 2;bullet_x = 0;bullet_y = position_y;enemy_x = 2;enemy_y = position_y - 1;score = 0;}
void startMap()
{int i, j;for (i = 1; i <= high - 1; i++){map[i][1] = 4;for (j = 2; j <= width - 1; j++)map[i][j] = 0;map[i][width] = 4;}//下方围墙的初始化 i = high;for (j = 1; j <= width; j++)map[i][j] = 3;map[bullet_x][bullet_y] = 5;/*这里是战机大小的初始化开始*/map[position_x - 1][position_y] = 1;i = position_x;for (j = position_y - 2; j <= position_y + 2; j++)map[i][j] = 1;map[position_x + 1][position_y - 1] = 1;map[position_x + 1][position_y + 1] = 1;/*** 初始化结束 **//* 敌人战机的初始化 */map[enemy_x][enemy_y] = 2;map[enemy_x - 1][enemy_y - 1] = 2;map[enemy_x - 1][enemy_y + 1] = 2;/* 敌人战机初始化结束*/
}
void HideCursor()//隐藏光标
{CONSOLE_CURSOR_INFO cursor_info = { 1, 0 };SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE), &cursor_info);
}
void gotoxy(int x, int y)//清理一部分屏幕
{HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE);COORD pos;pos.X = x;pos.Y = y;SetConsoleCursorPosition(handle, pos);
}
void updateWithoutInput()//于输入无关的跟新
{if (bullet_x > 0)bullet_x--;if ((bullet_x == enemy_x) && (bullet_y == enemy_y))//当敌人的飞机被击中时 {score++;enemy_x = 0;enemy_y = rand() % width;bullet_x = 0;}if (enemy_x > high)//当飞机超出区域 {enemy_x = 0;enemy_y = rand() % width;}if (speed == 1)for (int i = 1; i <= 10000; i++)//用来控制敌机的速度 {for (int j = 1; j <= 1000; j++){speed = 1;}}speed = 0;if (speed == 0){enemy_x++;speed = 1;}
}
void updateWithInput()//与输入有关的更新
{char input;if (kbhit())//在VC6.0++下,为_kbhit(){input = getch();//在VC6.0++下为_getch();if (input == 'a')position_y--;if (input == 's')position_x++;if (input == 'd')position_y++;if (input == 'w')position_x--;if (input == ' '){bullet_x = position_x - 1;bullet_y = position_y;}}
}
void show()//展示的内容
{gotoxy(0, 0);int i, j;for (i = 1; i <= high; i++){for (j = 1; j <= width; j++){if (map[i][j] == 0)printf(" ");if (map[i][j] == 1)printf("*");if (map[i][j] == 2)printf("#");if (map[i][j] == 3)printf("~");if (map[i][j] == 4)printf("|");if (map[i][j] == 5)printf("|");}printf("\n");}printf("\n你的得分:%d\n\n", score);printf("操作说明: ASDW分别操作 左下右上四个的移动\n");printf("**空格是发出子弹**\n");
}
int main()
{starup();while (1){HideCursor();startMap();show();updateWithoutInput();updateWithInput();}return 0;
}
注意107行和109行的kbhit()和getch()
如果你看不明白,我建议你先去上面的那个连接中看看,他会教你如何一步步的进行最后做成一个完整的游戏。
一个好玩的小游戏(纯C语言编写)相关推荐
- 推荐一个好玩的小游戏网站
439999小游戏是小游戏4399网站的经典游戏收集站,在2004年4399小游戏建立网站,网站推出后迅速的受到广大网友的欢迎,由于 网站中的游戏数量国语庞大所以给玩友搜索小游戏带来一定的困难,所以4 ...
- 继《羊了个羊》后又一个好玩的小游戏
最近很多人在玩这个开源的在线小游戏中国制霸生成器https://lab.magiconch.com/china-ex/ ,可以在简化的中国地图上用不同颜色标记居住.游玩.去过的地方,然后生成一张图片, ...
- 用c语言编写打猎小游戏,使用c语言编写简单小游戏.docx
PAGE / NUMPAGES 纯真童趣的<泡泡堂>,还有武林情仇,笑傲江湖的<剑侠情缘on line>.它是e时代常谈的话题,是交互式娱乐的主力军,是一种 高层次的综合艺术, ...
- 一个好玩的小游戏破解。
游戏介绍: 这个游戏和推箱子类似,就是给你有限的操作数,每次操作只能把箱子左移或右移,然后箱子会掉落,最后把3个以上连续相连的相同的箱子消去,如果在规定的操作数内你能让所有的箱子全部消去则通过游戏. ...
- 一个好玩的小游戏——麻神之战
题目: 一种新的麻将,只留下一种花色,并且除去了一些特殊和牌方式(例如七对子等).规则如下: 共有36张牌,每张牌是1~9.每个数字4张牌. 你手里有其中的14张牌,如果这14张牌满足如下条件,即算作 ...
- c++语言编的小游戏,用C++语言编写小游戏系统(可读取文件)
#include #include #include #include #include #include #include #include #include using namespace std ...
- C语言实现扫雷小游戏 纯小白 非黑窗口
C语言实现一个普通的扫雷小游戏 纯小白所编(含代码非黑窗口!) 扫雷 主要功能 1.创建一个图形界面 2.了解扫雷游戏的原理 3.随机生成雷的位置 4.为整个数组加密,并在雷周围的位置加一 5.导入图 ...
- 好玩的小游戏网站推荐
向大家推荐一个好玩的小游戏网站 0054小游戏 http://www.0054.org 每天更新,天天都有新游戏
- c语言设置一个选择数字的程序,C语言编一个数字益智小游戏
程序功能及运行情况 设计的程序是一个数字益智游戏,旨在培养小朋友玩家的数学思维,提高玩家的数学能力.游戏共设有四个不同的小游戏,分别是一位数四则运算.两位数四则运算.找最值游戏.排序游戏.程序能实现产 ...
- 【牛客刷题】上手用C语言写一个三子棋小游戏超详解哦(电脑优化)
作者:[南航科院小张 南航科院小张的博客 专栏:从c语言的入门到进阶 学习知识不只是要懂,还要会用:想要找到好的工作,这里给大家介绍一件可以斩获诸多大厂offer的利器–牛客网 点击免费注册和我一起开 ...
最新文章
- 尊重对手就是对自己最好的尊重
- 前端学习(3169):react-hello-react之删除一个todoList
- mysql 8函数索引_新特性解读 | MySQL 8.0 索引特性1-函数索引
- 【网络安全面试题】—如何注入攻击Java Python PHP等主流语言
- 前途,路应该怎么走?
- oracle 产看执行计划_ORACLE数据库查看执行计划的方法
- mysql用declare会报错_mysql创建存储过程declare 变量时报错
- java智能社下载_08 深入javascript
- java win8 mac地址_Win8系统查看mac地址的两种方法
- Python人工智能入门(修订版)
- [GIS教程] 6 空间数据采集与处理-GIS数据源分类及其特征、采集与处理的基本流程、4D产品
- mysql 百亿级数据统计实现_如何实现上亿级数据的精准计数?
- 卸载腾讯位置服务器,完整优雅的卸载腾讯云云服务器安全监控组件
- Python入门到精通———第一天
- Python 运算符(Operators)
- HashMap为什么线程不安全?
- php实现成语小游戏,成语小秀才微信小程序源码-PHP代码类资_aqa7qj 源码采用php实现 - 下载 - 搜珍网...
- 毕业旅行 | 用一场纽约5日游告别难忘青葱岁月
- [Web 安全] WASC 和 OWASP两个web安全方面组织机构介绍
- 服务器系统部署方案,服务器 部署方案