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的相关文档和教程,觉得是时候实战了,但是苦于没有 ...
随机推荐
- ue4 motage
Montage是什么 一个(可以自由拼接动画的)动画剪辑,通过slot,在任意时候由玩家主动向动画系统push自己制作的动画剪辑 Montage用途 上图是一个近身攻击动画,含有 3 个片段 [开始. ...
- [NOIP2014]子矩阵
1812. [NOIP2014]子矩阵 http://www.cogs.pro/cogs/problem/problem.php?pid=1812 ★★★ 输入文件:submatrix.in ...
- eclipse中设置vm后缀文件以html高亮形式显示
第一步,打开Windows-preference-General-ContentTypes-Text-HTML 第二步,点击Add添加 "*.vm",Default-encodin ...
- 关于 Overtrue 的拼音库 overtrue/pinyin 为何 travis 为 error
什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小企业和创业者提供社会化软件研发及技术解决方案,目前最新版本为ThinkSNS+(简称TS+).Thin ...
- JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能
JQuery Easyui/TopJUI 用JS创建数据表格并实现增删改查功能 html <table id="productDg"></table> &l ...
- 架构sass文件
sass/ | |– base/ | |– _reset.scss # Reset/normalize | |– _typography.scss # Typography rules | ... # ...
- [Android]进程间通信的方法
一.管道 管道是进程间通信中最古老的方式,它包括 无名管道 和 有名管道两种,前者用于父进程和子进程间的通信,后者用于运行于同一台机器上的任意两个进程间的通信. 无名管道由pipe()函数创建. #i ...
- Luogu P2341 [HAOI2006]受欢迎的牛 SCC缩点
把强连通分量缩点,如果有且仅有一个出度为0的强连通分量,那么答案就是他的size:如果有多个入度为0的,那么没有明星牛. #include<cstdio> #include<iost ...
- NET Core Web发布包
给ASP.NET Core Web发布包做减法 https://www.cnblogs.com/sheng-jie/p/9122582.html 1.引言 紧接上篇:ASP.NET Core Web ...
- spring基础概念AOP与动态代理理解
一.代理模式 代理模式的英文叫做Proxy或Surrogate,中文都可译为”代理“,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动.在一些情况下,一个客户不想或者不能够直接引用一 ...