C++ 飞行游戏
源代码:
#include<bits/stdc++.h>
#include<windows.h>
#include<conio.h>
using namespace std;
char temp;
int t=0,score=0,x=12,l1,l2,x1,x2;
char cmd[20][40];
void show(void){
for(int i=0;i<20;i++){
for(int j=0;j<40;j++){
cout<<cmd[i][j];
}
cout<<endl;
}
}
bool check(void){
for(int i=0;i<20;i++){
for(int j=0;j<40;j++){
if(cmd[i][j]=='O')return true;
}
}
return false;
}
void refresh(int status){
if(status==1)cmd[x][2]='O',cmd[x+1][2]=' ';//--x之后执行的刷新操作
if(status==0)cmd[x][2]='O',cmd[x-1][2]=' ';//++x之后执行的刷新操作
if(x1==0 && x2==0){
x1=39;x2=39;l1=rand()%8;l2=rand()%8;score+=10;return;
}
for(int i=0;i<l1;i++){
cmd[i][x1]='#';
}
for(int i=0;i<l2;i++){
cmd[20-i][x2]='#';
}
if(x1!=39 && x2!=39){//把上次的填充为空格
for(int i=0;i<l1;i++){
cmd[i][x1+1]=' ';
}
for(int i=0;i<l2;i++){
cmd[20-i][x2+1]=' ';
}
}
}
void game_over(void){
system("cls");
printf("GAME OVER.YOUR SCORE IS:%04d\n",score);
system("pause");
exit(0);
}
int main(){
system("title flying_game");
srand(time(0));
x1=39;x2=39;l1=rand()%11;l2=rand()%11;
cmd[x][2]='O';
printf("PRESS ANY KEY TO CONTINUE.\n");
getch();
for(;;){
system("cls");
printf("SCORE..%04d\n",score);
show();
if(clock()-t>200){
--x1;--x2;++x;refresh(0);
t=clock();
}
if(_kbhit()){
temp=getch();
if(temp==' '){
--x;
}
refresh(1);
}
if(check()==false){
game_over();
}
}
}
游戏截图:

原理:
使用随机数进行计算柱子的位置,按下空格键把小球上移,碰到柱子结束游戏。使用cmd数组保存杆子等元素的位置,在数组中绘图,然后再显示在输出控制台上。
灵感来源于https://www.cnblogs.com/xiaocaibiancheng/p/15254972.html
本来想用easyx写一个图形版本的然而太复杂就直接用控制台了
C++ 飞行游戏的更多相关文章
- Python游戏编程(Pygame)
安装Pygame pip install pygame C:\Users> pip install pygame Collecting pygame Downloading https://fi ...
- 15款Cocos2d-x游戏源码
(1)用cocos2d-x开发的中国象棋游戏源码 使用Cocos2d-X2.2.3开发的一款中国象棋游戏,游戏中可以实现.新局面.悔棋.游戏音乐.胜利后会显示游戏结果. 源码下载:http://www ...
- App Store中的开源游戏汇总
这是国外达人收集的曾经在app store上出现过,或者还在app store上卖的iOS开源游戏的列表,其中代码大部分人你托管在google code或者github上,其中有很多使用Cocos2D ...
- 作业八:团队项目——Alpha阶段项目总结
1.项目的预期目标 最初的项目计划实现一款类似微信飞机大战这样的一款模拟飞行游戏,中途也没有变动. 2.目前项目实现的功能. 击落飞机并计分. 3.下阶段我们可以增加游戏更多的功能,以及增加网络在线对 ...
- 未来的 Web:九个不可思议的 WebGL 应用试验
WebGL 技术允许把 JavaScript 和 OpenGL ES 2.0 结合在一起,通过增加 OpenGL ES 2.0 的一个 JavaScript 绑定,WebGL 可以为 HTML5 Ca ...
- [转]的C#实现三维数字地形漫游(基于Irrlicht)
马省轩 任丽娜 摘 要:本文采用C#编程语言,利用Irrlicht三维图形引擎实现了三维数字地形的漫游.为三维数字地形显示提供了较易实现的解决方案. 关键词:C# 高度图 Irrlicht引擎 ...
- ubuntu如何安装chromium浏览器并设置成中文版
在Ubuntu上使用APT安装Chromium有3种方法: 1.在Ubuntu软件中心输入chromium,然后在结果中选择安装即可. 2.在新立得软件包管理器中输入chromium,然后标记安装即可 ...
- 引擎设计跟踪 ShadowMap 细节和分析
之前在工作总汇总了shadowmap的各种问题 [工作积累] shadow map问题汇总 最近有点时间再仔细研究了shadowmap的一些算法.主要修复了LiSPSM(上面链接里后面有更新),实现了 ...
- Unity 环境区域网格化
在使用A星算法和物体布局的过程中,常常会使用的网格的概念,即建立在网格的基础上,会使得游戏的相关编程变得简单的多. 格子的代码: using System.Collections; using Sys ...
随机推荐
- 【网络编程】TCPIP_1_快速入门
目录 前言 1. 快速入门 1.1 服务端编程简要步骤 1.2 客户端编程简要步骤 1.3 参考 前言 说明: demo 基于 Linux. 1. 快速入门 以下步骤简略了很多细节,但是通过下面的几个 ...
- SpringMVC学习06(JSON)
6.Json 6.1 什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛. 采用完全独立于编程语言的文本 ...
- 手把手和你一起实现一个Web框架实战——EzWeb框架(二)[Go语言笔记]Go项目实战
手把手和你一起实现一个Web框架实战--EzWeb框架(二)[Go语言笔记]Go项目实战 代码仓库: github gitee 中文注释,非常详尽,可以配合食用 上一篇文章我们实现了框架的雏形,基本地 ...
- AI+云原生,把卫星遥感虐的死去活来
摘要:遥感影像,作为地球自拍照,能够从更广阔的视角,为人们提供更多维度的辅助信息,来帮助人类感知自然资源.农林水利.交通灾害等多领域信息. 本文分享自华为云社区<AI+云原生,把卫星遥感虐的死去 ...
- CAS 5.3服务器搭建
一.本例环境说明 JDK 1.8 CAS 5.3 apache-maven-3.6.0 二.CAS安装步骤 2.1 提前安装好JDK和Maven环境 安装步骤略 2.2 CAS环境搭建 2.2.1 C ...
- TypeScript 入门指南 【大白话】
前言 聊聊为何要学习TypeScript? 从开发角度来讲, TypeScript 作为强类型语言,对属性有类型约束.在日常开发中少了减少了不必要的因参数类型造成的BUG,当你在使用同事封装好的函数时 ...
- C++ 中的User a, User b=a 和User a, User b, b=a的区别
#include <iostream>using namespace std;class User{ public: int age; int number; User() { cout ...
- c# 对 struct为什么不能继承类和结构的思考
1.类.结构在使用的时候可以不调用构造函数,如果能够继承类,这种情况下不能够初始化基类,因为不执行构造函数 2.结构.所有的结构类型都默认是 sealed,通过 反汇编可以看到 ,这就阻止了结构被继 ...
- C# 利用反射进行深拷贝
- Qt 中的属性系统(Property System)
21 人赞同了该文章 本节内容主要讲解我对 Qt 属性系统的理解.官方文档参考 The Property System. 如何理解"属性系统"这个概念? 一般我们说一个类有什么属性 ...