C 语言设计坦克大战(未完成)
//坦克大战
//0、提示界面
//1、边框
//2、指定位置显示自己的坦克
//3、己方坦克随着方向键动起来
//getasynkeustae
//Sleep(毫秒)
//减少闪烁
//不闪烁SetConsoleCursorPosition
//4、指定位置显示敌方坦克
//5、敌方坦克自己动起来
//6、敌方坦克自动发子弹
//7、己方坦克,按空格键发子弹
//8、设置自己的BOSS
//9、设置障碍物
//10、死亡判断
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>
#include<string.h> #define BACK_WIDE 22
#define BACK_HIGHT 22 unsigned char g_arrBackGround[BACK_HIGHT][BACK_WIDE] = {
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , },
{, , , , , , , , , , , , , , , , , , , , , }
};
//己方坦克坐标
unsigned char g_OurPosX = ;
unsigned char g_OurPosY = ; unsigned char g_ourPosTempX = ;
unsigned char g_ourPosTempY = ; //显示提示界面
void StartIU();
//按任意键开始游戏
void StartGame();
//清空显示控制台
void ClearIU();
//显示边框
void ShowBackGround();
//己方坦克动起来
void TanKeRun();
//将新的坦克的位置更新到背景中
void TanKePosUpdateBack();
//记录坦克的坐标
void RemberTanKePos();
//清空坦克旧坐标
void ClearTanKeOldPos();
int main( )
{
//显示提示界面
StartIU();
StartGame();
ClearIU();
ShowBackGround();
while ()
{
TanKeRun();
//TanKePosUpdateBack();
ClearIU();
ShowBackGround();
}
system("pause");
return ;
}
void StartIU()
{
printf("\n\n\n\t\t\t《欢迎来到坦克大战》\n");
printf("\t\t\t《W S A D 控制坦克行进》\n");
printf("\t\t\t《空格发送子弹》\n");
printf("\t\t\t《按任意键开始游戏》\n");
}
void StartGame()
{
_getch();//不阻塞读取 }
void ClearIU()
{
system("cls");
}
//己方坦克按键动起来
void TanKeRun()
{
char cKetDis = _getch();
if ('w' == cKetDis || 'W' == cKetDis)//上
{
g_OurPosY--;
}
if ('s' == cKetDis || 'S' == cKetDis)//下
{
g_OurPosY++;
}
if ('A' == cKetDis || 'a' == cKetDis)//左
{
g_OurPosX--;
}
if ('d' == cKetDis || 'D' == cKetDis)//右
{
g_OurPosX++;
}
if (g_ourPosTempX != g_OurPosX || g_ourPosTempY != g_OurPosY)
{
TanKePosUpdateBack();
} }
//将新的坦克更新到背景中
void TanKePosUpdateBack()
{
g_arrBackGround[g_OurPosY][g_OurPosX] = ;
ClearTanKeOldPos();
RemberTanKePos(); }
//记录坦克的坐标
void RemberTanKePos()
{
g_ourPosTempX = g_OurPosX;
g_ourPosTempY = g_OurPosY;
}
//清空坦克旧坐标
void ClearTanKeOldPos()
{
g_arrBackGround[g_ourPosTempY][g_ourPosTempX] = ;
}
void ShowBackGround()
{
int i, j;
unsigned char strAllBack[] = { };
for (i = ; i <BACK_HIGHT; i++)
{
for (j = ; j < BACK_WIDE; j++)
{
switch (g_arrBackGround[i][j])
{
case ://空格
/*printf(" ");*/
strcat(strAllBack," ");
break;
case ://边框
/*printf("#");*/
strcat(strAllBack, "#");
break;
case ://己方坦克
/*printf("土");*/
strcat(strAllBack, "F");
break;
}
}
strcat(strAllBack, "\n");
}
printf("%s",strAllBack);
}
C 语言设计坦克大战(未完成)的更多相关文章
- Java课程设计——坦克大战
坦克大战——坦克类 一. 团队课程设计博客链接 https://www.cnblogs.com/chenhuilin/p/10275664.html 二.个人负责模块和任务说明 模块:坦克类(玩家坦克 ...
- java课程设计-坦克大战
团队课程设计博客链接 个人负责模块 枚举类.工具类.子弹类.图片素材的查找,地图制作 Git管理 包名类名的命名 详细说明 枚举类 如 单人和双人模式 工具类 将每个图片的路径使用字符串保存,便于调用 ...
- 坦克大战-C语言-详注版
代码地址如下:http://www.demodashi.com/demo/14259.html 坦克大战-C语言-详注版 概述 本文详述了C语言版坦克大战游戏的原理以及实现方法,对游戏代码进行了详细的 ...
- JAVA课程设计(坦克大战)
2019-01-16 坦克大战游戏背景: 1. 需求分析 1.1环境要求 操作系统:Windows 7(SP1)以上 JAVA虚拟机:JDK1.8以上 开发环境:Eclipse(4.5以上) 1.2角 ...
- 【blade04】用面向对象的方法写javascript坦克大战
前言 javascript与程序的语言比如C#或者java不一样,他并没有“类”的概念,虽然最新的ECMAScript提出了Class的概念,我们却没有怎么用 就单以C#与Java来说,要到真正理解面 ...
- [置顶] 小强的HTML5移动开发之路(9)——坦克大战游戏3
上一篇我们创建了敌人的坦克和自己的坦克,接下来就应该让坦克发子弹了,我们下面来看一下如何让我们的坦克发出子弹. 前面我们用面向对象的思想对Tank进行了封装,又利用对象冒充实现了我们的坦克和敌人的坦克 ...
- javascript 面向对象制作坦克大战 (一)
PS:这个坦克大战是在网上下的一段源码之后,自己进行的重写. 写这个的目的是为了巩固自己这段时间对js的学习.整理到博客上,算是对自己近端时间学习js的一个整理. 同时也希望可以帮助到学习js的园 ...
- java制作简单的坦克大战
坦克大战是我们小时候玩红白机时代的经典游戏,看到有不少小伙伴都使用各种语言实现了一下,手痒痒,也使用java做的一个比较简单的坦克大战,主要面向于学过Java的人群,与学了一段时间的人,有利于面向对象 ...
- 【Cocos2D-x 3.5实战】坦克大战(1)环境配置
前言: 最近课比较少,空闲时间比较多,一有时间就东想西想,想着想着就突然想到做手机游戏(android)了,学习下CoCos2d.看了一些CoCos2D的相关文档和教程,觉得是时候实战了,但是苦于没有 ...
随机推荐
- ASP.NET Core 3.0 自动挡换手动挡:在 Middleware 中执行 Controller Action
最近由于发现奇怪的 System.Data.SqlClient 性能问题(详见之前的博文),被迫提前了向 .NET Core 3.0 的升级工作(3.0 Preview 5 中问题已被修复).郁闷的是 ...
- java.lang.IllegalStateException: Cannot get a STRING value from a NUMERIC cell
异常 在使用POI读取Excel文件内容时,发生了异常,报错如下: 大概意思是不能从一个数值的列获取一个字符串类型的值,我使用下面的代码来获取单元格的值: //此处省略N行代码 String cell ...
- DOTween Sequence 使用图解
http://blog.csdn.net/jiejieup/article/details/41521577 最近在使用DOTween制作一些动画过渡的内容,发现非常好用,使用Sequence类可以方 ...
- 剑指Offer的学习笔记(C#篇)-- 替换空格
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 一 . 自己的想法 老实说,貌 ...
- 配置vmware的固定ip
一 .概述 为什么要配置固定IP呀?这个很容易解释啊,因为配置集群要设置固定IP(主结点需要管理子结点,通过固定IP识别机器),因为你访问虚拟机方便(不固定IP访问前还需要先查下虚拟机当前分配IP,比 ...
- Centos 6.x 安装 Redis
本文以Centos6.8为例子,来进行演示. 1:下载最新版的Redis,比如我们安装在根目录下的redis文件下中 tar zxvf http://download.redis.io/release ...
- js 阻止元素发生默认的行为ie兼容
//亲测ie9可以兼容 function Go(event) { var e = event; if (e && e.preventDefault) { e.preventDefaul ...
- 维护gcd的线段树 补发一波。。。
基础线段树(辣鸡的不行) 发现自己线段树除了会维护加法和乘法就啥也不会了QWQ太菜了 瞎写了一个维护gcd的 首先,gcd(x,y)= gcd(x,y-x) 并且很容易推广到n个数,所以我们可以把原数 ...
- Luogu P3166 [CQOI2014]数三角形 组合数学
好题鸭.. 不好直接求三角形个数,那就用全集-补集,转化为求三点共线的数量. 具体求法是求出水平共线数量与竖直共线数量和斜线共线数量. 用排列组合的知识可知为水平和竖直的为$C_n^3$与$C_m^ ...
- [NWPU2016][寒假作业][正常版第三组]R&&HDU1240
题意是有个三维的地图,从起点到终点的最短路径.用bfs做,不过这个题坑的地方在于,开三维数组你要搞清楚纬度的关系.a[i][j][h] i是层,j是行,h是列.然后坐标呢,又是列,行,层,所以如果要用 ...