火箭工作室c++小游戏——坦克大战(初始版)

今天第四次写博客,给大家发一个坦克大战的初始版,可以开外挂,要自己去探索

#include<windows.h>
#include<conio.h>
#include<iostream>
#include<stdio.h>
#include<cstring>
#include<string>
#include<fstream>
using namespace std;
SYSTEMTIME sys;
int checkpoint,time,time2,times,times2;
int e[20]= {
   1,2,3,4,6,8,10,12,15,18,21,24,28,32,37,42,48,55,65,76};
int e2[20]= {
   100,95,80,76,72,68,64,61,58,55,52,47,43,39,34,30,24,18,15,10};
bool equipment[2][10];
double equipment_health[2][10];
struct tank {
   
	int x,y,d,color,shells_number;
	int interval[2];
} I_tank;
struct bullet {
   
	int x,y,d,color;
	bool fire;
} shells[100];
struct enemy {
   
	int x,y,d,j,color;
	bool go;
} enemies[7];
char checkpoint_name[6][4][8]= {
    {
   "Leve 01","Leve 02","Leve 03","Leve 04"}, {
   "Leve 05","Leve 06","Leve 07","Leve 08"}, {
   "Leve 09","Leve 10","Leve 11","Leve 12"}, {
   "Leve 13","Leve 14","Leve 15","Leve 16"}, {
   "Leve 17","Leve 18","Leve 19","Leve 20"}, {
   " color "," store "," 关于  "," 退出  "} };
bool er[29][29]= {
    {
   1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,1,1,1,1,1,1}, {
   1,0,0,0,0,0,1,0,1,0,1,1,1,1,1,1,0,0,1,1,0,0,1,0,0,0,0,0,1}, {
   1,0,1,1,1,0,1,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,1,0,1,1,1,0,1}, {
   1,0,1,1,1,0,1,0,1,0,0,1,1,1,0,1,0,1,1,0,0,0,1,0,1,1,1,0,1}, {
   1,0,1,1,1,0,1,0,1,0,1,1,0,1,1,0,0,0,1,1,1,0,1,0,1,1,1,0,1}, {
   1,0,0,0,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,1}, {
   1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1}, {
   0,0,0,0,0,0,0,0,1,1,1,1,1,0,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0}, {
   0,1,0,1,1,1,1,0,1,1,0,1,1,0,1,1,0,0,0,1,0,1,1,0,1,1,0,1,0}, {
   0,1,0,0,1,0,0,1,1,1,1,0,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0}, {
   1,0,1,0,1,0,1,0,0,1,0,1,0,0,1,0,1,0,0,1,1,0,1,1,0,0,1,0,0}, {
   0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,0,1,1,1,1,1,0,0,0,1,0,0,1}, {
   0,0,1,1,0,0,1,0,0,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,0,0,0,1,0}, {
   0,0,0,1,0,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1}, {
   1,0,0,1,0,0,1,0,1,1,0,0,1,1,0,1,1,0,1,1,0,1,1,0,0,1,0,0,1}, {
   1,1,0,0,0,1,0,0,0,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,0,1,1,1,0}, {
   0,1,1,0,1,1,1,0,0,1,0,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,0}, {
   1,1,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,1,1,1,1,1,0,0,0}, {
   1,1,0,1,0,1,1,1,0,0,1,1,0,1,1,0,1,0,1,1,0,0,0,0,0,0,1,0,1}, {
   1,1,1,1,1,1,0,1,1,1,0,1,0,1,1,1,1,0,0,1,1,1,1,0,0,0,1,1,0}, {
   1,1,0,0,0,0,1,1,1,1,0,1,1,1,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1}, {
   0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,1,1,1,1,0}, {
   1,1,1,1,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,1,0,1,0,1,1,0}, {
   1,0,0,0,0,0,1,0,1,0,1,1,1,0,1,1,0,0,1,1,1,0,0,0,1,1,0,1,0}, {
   1,0,1,1,1,0,1,0,1,0,1,1,1,1
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
游戏分里外两个部分组成,里部分(用户不可见) 通过里部分执行判断,地图数组更改,和各种值的改变。更改完里部分再根据相应变化更改表部分。(用户可视部分)表部分的打印通过gotoxy去到相应坐标再printf打印出字符,通过文本函数改变文字字体颜色与文字背景颜色与字符组合实现图形界面。 程序通过 计数器+循环判断 的思想,类似单核cpu的多线程实现(单线程在不同程序/函数间来回执行)省去了多线程。(具体过程在功能设计与描述有详细描述) 另AI实现与加强依赖于rand随机函数的运用,进一步强化AI,增加游戏乐趣 功能方面,游戏参考于80年代任天堂红白机(FC/FamilyComputer)上的游戏坦克大战(Battle City),包括地图,游戏模式等等(当时的游戏直接烧在电路板上)。所以游戏平衡方面已经有了很好的参考,无需再花大量时间测试平衡性。 但诸如地图中的树林元素,随机道具等没有实现。但较之原,该游戏由C/C++编写PC运行,由字符界面实现游戏画面。原一辆坦克的子弹未消失之前不能发射第二颗。导致子弹打击远处CD长,近处CD短。该游戏每个子弹都有相同CD,子弹未消失只要CD达到即可发射第二颗,第三颗…增加了真实性,相较于原是个改进。且考虑到PC性能不一内置了游戏速度调整。玩家可根据PC性能调整至合适的速度。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值