一篇博客学会了坦克大战

Posted Respect@

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一篇博客学会了坦克大战相关的知识,希望对你有一定的参考价值。

实例

《坦克大战》是由日本南梦宫Namco游戏公司开发的一款平面射击游戏,于1985年发售。游戏以坦克战斗及保卫基地为主题,属于策略型联机类。
该游戏是FC平台上少有的内建关卡编辑器的几个游戏之一,玩家可自己创建独特的关卡,并通过获取一些道具使坦克和基地得到强化.

在这里插入图片描述
游戏的架构:
在这里插入图片描述

开始界面在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

游戏进行中
在这里插入图片描述

失败
在这里插入图片描述

胜利在这里插入图片描述

像素

像素是整个图像中不可分割的单位或者是元素,每个像素近似一个小方块,这些小方块都有一个明确的位置和被分配的色彩数值(显示不同的颜色)

在这里插入图片描述

原理:
在这里插入图片描述

分辨率

分辨率(屏幕分辨率)是屏幕图像的精密度,是指显示器所能显示的像素有多少,分辨率越大,单位面积内分布的像素点就越多,画面就越精细
如: 14英寸笔记本屏幕分辨率 1280 x 960 表示的意义是屏幕是由 1280 乘以 960 = 1228800 个像素点组成,其中宽占1280 个像素,高占960 像素

4:3 是最常见屏幕比例,从电视时代流传下来的古老标准。在近代宽屏幕兴起前,绝大部分的屏幕分辨率都是照着这个比例的。
常见手机屏幕分辨率
常见手机屏幕分辨率
VGA(640x480) - 「VGA」 其实本来不是个分辨率的规格,而是 IBM 计算机的一种显示标准。在规范里有 320x200 / 256 色、320x200 / 16 色、640x350 / 16 色、640x480 / 16 色等多种模式,甚至还有 80x25 和 40x25 等文字模式。只是最后因为官方支持的最高分辨率是 640x480,所以 VGA 就成为了 640x480 的代名词。VGA 的重要地位在于它是所有显卡都接受的基准分辨率,Windows 在加载显卡驱动程序之前(Bios 之后)的画面,那个画面就是在 VGA 分辨率下的。
SVGA(800x600) - SVGA 的情况和 VGA 有点像,也是以一种「规格」的身份起家的,只是最后好像变成无论规格如何,所有比 VGA 强的显示器都自称自已是 Super VGA,或 SVGA。在分辨率上,SVGA 专指 800x600 的分辨率 – 即使当年标榜自已是 SVGA 的屏幕其实常常可到达 1024x768,或更高。
XGA(1024x768) - 到了 SVGA 的年代,IBM 已经失去了市场的独占性,PC界也正式进入了百家争鸣的时代。IBM 虽然定义出了XGA 的规格,但实际上它只是当年多种 Super VGA 规格中的一种。XGA 最后成为 1024x768 这个分辨率的代名词。
常见屏幕分辨率
常见屏幕分辨率
SXGA+(1400x1050) - SXGA+ 是大约 2003 年~2007 年间偶尔会在笔记本电脑上看到的分辨率。不过随着宽屏幕大行其道,这个分辨率很难看到了。
UXGA(1600x1200) - UXGA 又称为 UGA,分辨率刚好是SVGA 的四倍。UXGA 是许多 4:3 的 20" 和 21" 屏幕的析度,不过随着4:3 屏幕愈来愈少见,要买到这个分辨率的屏幕是愈来愈困难了。
QXGA(2048x1536) - QXGA 的分辨率是 XGA 的四倍,也是大部分 4:3屏幕支持的极限。
更高的 4:3 分辨率,比如 QUXGA,只是个理论上的名字。在真实世界没有采用这个分辨率的产品存在。

在这里插入图片描述

源码

#include <graphics.h>
#include <conio.h>
#include <Windows.h>
#include <time.h>

#pragma comment (lib, "Winmm.lib") //导入声音库
/*
#define UP 0
#define DOWN  1
#define LEFT 2
#define RIGHT 3
*/

#define SUCCESS 0
#define FAILURE 1

#define ENEMY_NUM 10

enum DIRECTION {
	UP,
	DOWN,
	LEFT,
	RIGHT
};


//坦克结构体
struct tank_s {
	int x;  //坦克在地图数组中所在列
	int y;  //坦克在地图数组中所在的行
	DIRECTION direction;  //坦克的方向,上、下、左、右
	int live;       //是否生存 1-活着  0-挂了
};

//子弹结构体
struct bullet_s {
	int pos_x;   //子弹在“戏台”上的横坐标
	int pos_y;   //子弹在“戏台”上的纵坐标
	DIRECTION  direction; //子弹方向
	int status;  //子弹是否存在
};


//定义地图数组
int map[26][26] = {
	{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
	{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 2, 2, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
	{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
	{ 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1 },
	{ 2, 2, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 2, 2 },
	{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
	{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0 },
	{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
	{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 3, 3, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
};


void以上是关于一篇博客学会了坦克大战的主要内容,如果未能解决你的问题,请参考以下文章

Java坦克大战

Java坦克大战

java的坦克大战

java课程设计--坦克大战

学习 Python 之 Pygame 开发坦克大战

java小项目之:坦克大战,90后的集体回忆杀!