【源码】C++坦克大战源码

文章目录

题目介绍

代码量:1450

语言:C++

你收到的所有文件

其中一个是devc++版本,也可以用visual stdio 运行。

源码效果展示

c 复制代码
typedef struct             //这里的出现次序指的是一个AI_tank变量中的次序,游戏共有四个AI_tank变量
{                          //∵设定每个AI_tank每种特殊坦克只出现一次 ∴fast_tank & firm_tank 最多出现次数不超过1
	int fast_tank_order;   //fast_tank出现的次序(在第fast_tank_order次复活出现,从第0次开始),且每个AI_tank只出现一次
	int firm_tank_order;   //firm_tank出现的次序,同上
} LevInfo;                 //关卡信息(准确说是该关出现的坦克信息)
LevInfo level_info [MAX_LEVEL] = {{-1,-1},{3,-1},{-1,3},{2,3},{2,3},{2,3},{2,3},{2,3}};   //初始化,-1代表没有该类型坦克


typedef struct      //子弹结构体
{
	int x,y;        //子弹坐标,假坐标
	int direction;  //子弹方向变量
	bool exist;     //子弹存在与否的变量,1为存在,0不存在
	bool initial;   //子弹是否处于建立初状态的值,1为处于建立初状态,0为处于非建立初状态
	bool my;        //区分AI子弹与玩家子弹的标记,0为AI子弹,1为玩家(我的)子弹
} Bullet;
Bullet bullet [BULLET_NUM];  //考虑到地图上不太可能同时存在20颗子弹,所以数组元素设置20个


typedef struct      //坦克结构体
{
	int x,y;        //坦克中心坐标
	int direction;  //坦克方向
	int color;      //颜色参方向数,1到6分别代表不同颜色,具体在PrintTank函数定义有说明
	int model;      //坦克图案模型,值为1,2,3,分别代表不同的坦克图案,0为我的坦克图案,AI不能使用
	int stop;       //只能是AI坦克使用的参数,非0代表坦克停止走动,0为可以走动
	int revive;     //坦克复活次数
	int num;        //AI坦克编号(固定值,为常量,初始化函数中定下)0~3
	int CD;         //发射子弹冷却计时
	bool my;        //是否敌方坦克参数,我的坦克此参数为1,为常量
	bool alive;     //存活为1,不存活为0
}  Tank;
Tank AI_tank[4] , my_tank;  //my_tank为我的坦克,Ai_tank 代表AI坦克




报告内容

本题目不仅有源码,还自带报告,报告仅供参考,大部分内容都有,可根据自己要求自行修改

相关推荐
眼眸流转8 分钟前
LeetCode热题100(四)
算法·leetcode·职场和发展
相信神话202126 分钟前
第零章:新手的第一课:正确认知游戏开发
大数据·数据库·算法·2d游戏编程·godot4·2d游戏开发
汀沿河39 分钟前
2 模型预训练、微调、强化学习的格式
人工智能·算法·机器学习
码不停蹄Zzz41 分钟前
C语言【结构体值传递问题】
c语言·开发语言
AMoon丶43 分钟前
Golang--多种数据结构详解
linux·c语言·开发语言·数据结构·c++·后端·golang
wearegogog1231 小时前
C# Modbus 协议实现
开发语言·c#
紫郢剑侠1 小时前
【C语言编程gcc@Kylin | 麒麟 】5:获取系统启动时间
c语言·开发语言·kylin·gcc·麒麟操作系统
颜酱1 小时前
最小生成树(MST)核心原理 + Kruskal & Prim 算法
javascript·后端·算法
王老师青少年编程1 小时前
2026年3月GESP真题及题解(C++一级):数字替换
c++·题解·真题·gesp·一级·2026年3月·数字替换
love530love1 小时前
OpenClaw搭配LM Studio VS Ollama:Windows CUDA实战深度对比与完全配置指南
人工智能·windows·vllm·ollama·llama.cpp·lm studio·openclaw