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的相关文档和教程,觉得是时候实战了,但是苦于没有 ...
随机推荐
- Python实现栈、队列
目录 1. 栈的Python实现 1.1 以列表的形式简单实现栈 1.2 以单链表形式实现栈 2. 队列的Python实现 2.1 以列表实现简单队列 2.2 以单链表形式实现队列 本文将使用py ...
- [UE4]C++静态加载问题:ConstructorHelpers::FClassFinder()和FObjectFinder()
http://aigo.iteye.com/blog/2281373 原文作者:@玄冬Wong 相关内容: C++实现动态加载的问题:LoadClass<T>()和LoadObject&l ...
- luogu 1169 棋盘制作(单调栈/悬线)
luogu 1169 棋盘制作(单调栈/悬线) 国际象棋是世界上最古老的博弈游戏之一,和中国的围棋.象棋以及日本的将棋同享盛名.据说国际象棋起源于易经的思想,棋盘是一个8*8大小的黑白相间的方阵,对应 ...
- 洛谷P1549 棋盘问题(2)
P1549 棋盘问题(2) 题目描述 在N*N的棋盘上(1≤N≤10),填入1,2,…,N*N共N*N个数,使得任意两个相邻的数之和为素数. 例如:当N=2时,有: 其相邻数的和为素数的有: 1+2, ...
- day7计算作业详解
1.day7题目 1.判断一个数是否是水仙花数, 水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数, 例如: 153 = 13 + 53 + 3**3 2.给 ...
- 2017swpu-ctf总结
2017swpu-ctf总结 今年是我第一次出题感受很多,就分析几道我印象最深刻的题吧 你能进入后台吗? 这道题主要是考察php_screw还有md5加密开启true过后的注入 phpscrew加密在 ...
- shell中括号总结: {}, (), (()), [], [[]]
括号总结 () 单小括号 命令组,括号中的命令将会开一个新的子shell执行 括号中变量不能被剩下脚本使用 命令之间分号隔开 命令和括号之间可以没有空格 命令替换,等同于``反引号 $(xxx)会被替 ...
- Codeforces Round #431 (Div. 2) B
Connect the countless points with lines, till we reach the faraway yonder. There are n points on a c ...
- C#远程连接sqlserver时,尝试读取或写入受保护的内存
管理员身份运行 cmd -> 输入 netsh winsock reset
- 牛客网Java刷题知识点之什么是内部类、为什么要使用内部类、内部类如何使用外部类的属性和方法、成员内部类、局部内部类、静态内部类、匿名内部类
不多说,直接上干货! 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一个非常有用的特性但又比较难理解使用的特性(鄙人到现在都没有怎么使用过内部类,对内部类也只是略知一二). 内部类 ...