自闭枪战C++
Player1: ad左右移动,w跳,jk发射子弹
Player2: 左右键左右移动,上键跳,23发射子弹
#include <bits/stdc++.h>
#include <conio.h>
#include <windows.h> using namespace std; int jump[] = {, -, -, -, -}; char mmp[][] = {"\nO # # @",
"\n## ##",
"\n ### ### ",
"\n ",
"\n#### ####",
"\n ",
"\n ######################## ",
"\n ",
"\n ",
"\n############ ############",
"\n ",
"\n ",
"\n ###### ###### ",
"\n ",
"\n ",
"\n ###### ",
"\n ",
"\n######## ########",
"\n ###### ###### ",
"\n "
}; int main() { int xp1 = , yp1 = , xp2 = , yp2 = , tick = ;
char ch;
int score1 = , score2 = , jumpdelay1 = , jumpdelay2 = ; while () { Sleep();
HANDLE hout;
COORD coord;
coord.X=;
coord.Y=;
hout=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hout,coord);
fwrite(mmp, , * , stdout);
printf("\nscore: 1:%d 2:%d", score1, score2); if (jumpdelay1 > ) { if (xp1 + jump[jumpdelay1] > && mmp[xp1 + jump[jumpdelay1]][yp1] == ' ') { mmp[xp1][yp1] = ' ';
xp1 += jump[jumpdelay1];
mmp[xp1][yp1] = 'O'; }
if (xp1 + jump[jumpdelay1] > && (mmp[xp1 + jump[jumpdelay1]][yp1] == '<' || mmp[xp1 + jump[jumpdelay1]][yp1] == '>')) { mmp[xp1][yp1] = ' ';
xp1 = , yp1 = ;
mmp[xp1][yp1] = 'O';
score2++; }
if (xp1 + jump[jumpdelay1] > && mmp[xp1 + jump[jumpdelay1]][yp1] == '#') { jumpdelay1 = ; }
if (xp1 + jump[jumpdelay1] > && mmp[xp1 + jump[jumpdelay1]][yp1] == '@') { jumpdelay1 = ; }
jumpdelay1--; } else { if (xp1 == ) { mmp[xp1][yp1] = ' ';
xp1 = , yp1 = ;
mmp[xp1][yp1] = 'O';
score2++; } else { if (mmp[xp1 + ][yp1] == ' ') { mmp[xp1][yp1] = ' ';
xp1++;
mmp[xp1][yp1] = 'O'; }
if (mmp[xp1 + ][yp1] == '<' || mmp[xp1 + ][yp1] == '>') { mmp[xp1][yp1] = ' ';
xp1 = , yp1 = ;
mmp[xp1][yp1] = 'O';
score2++; } } }
if (jumpdelay2 > ) { if (xp2 + jump[jumpdelay2] > && mmp[xp2 + jump[jumpdelay2]][yp2] == ' ') { mmp[xp2][yp2] = ' ';
xp2 += jump[jumpdelay2];
mmp[xp2][yp2] = '@'; }
if (xp2 + jump[jumpdelay2] >= && (mmp[xp2 + jump[jumpdelay2]][yp2] == '<' || mmp[xp2 + jump[jumpdelay2]][yp2] == '>')) { mmp[xp2][yp2] = ' ';
xp2 = , yp2 = ;
mmp[xp2][yp2] = '@';
score1++; }
if (xp2 + jump[jumpdelay2] >= && mmp[xp2 + jump[jumpdelay2]][yp2] == '#') { jumpdelay2 = ; }
if (xp2 + jump[jumpdelay2] >= && mmp[xp2 + jump[jumpdelay2]][yp2] == '#') { jumpdelay2 = ; }
jumpdelay2--; } else { if (xp2 == ) { mmp[xp2][yp2] = ' ';
xp2 = , yp2 = ;
mmp[xp2][yp2] = '@';
score1++; } else { if (mmp[xp2 + ][yp2] == ' ') { mmp[xp2][yp2] = ' ';
xp2++;
mmp[xp2][yp2] = '@'; }
if (mmp[xp2 + ][yp2] == '<' || mmp[xp2 + ][yp2] == '>') { mmp[xp2][yp2] = ' ';
xp2 = , yp2 = ;
mmp[xp2][yp2] = '@';
score1++; } } } for (register int i = ; i < ; i++) { for (register int j = ; j <= ; j++) { if (mmp[i][j] == '<') { if (j - <= ) { mmp[i][j] = ' ';
continue; } if (mmp[i][j - ] == 'O') { mmp[xp1][yp1] = ' ';
xp1 = , yp1 = ;
mmp[xp1][yp1] = 'O';
score2++;
mmp[i][j - ] = '<'; }
if (mmp[i][j - ] == '@') { mmp[xp2][yp2] = ' ';
xp2 = , yp2 = ;
mmp[xp2][yp2] = '@';
score1++; }
if (mmp[i][j - ] == '#') { mmp[i][j] = ' '; }
if (mmp[i][j - ] == ' ') { mmp[i][j] = ' ';
mmp[i][j - ] = '<'; }
if (mmp[i][j - ] == '>') { mmp[i][j] = mmp[i][j - ] = ' '; } } } }
for (register int i = ; i >= ; i--) { for (register int j = ; j >= ; j--) { if (mmp[i][j] == '>') { if (j + >= ) { mmp[i][j] = ' ';
continue; } if (mmp[i][j + ] == 'O') { mmp[xp1][yp1] = ' ';
xp1 = , yp1 = ;
mmp[xp1][yp1] = 'O';
score2++;
mmp[i][j + ] = '>'; }
if (mmp[i][j + ] == '@') { mmp[xp2][yp2] = ' ';
xp2 = , yp2 = ;
mmp[xp2][yp2] = '@';
score1++; }
if (mmp[i][j + ] == '#') { mmp[i][j] = ' '; }
if (mmp[i][j + ] == ' ') { mmp[i][j] = ' ';
mmp[i][j + ] = '>'; }
if (mmp[i][j + ] == '<') { mmp[i][j] = mmp[i][j + ] = ' '; } } } } if (kbhit()) { ch = getch(); switch (ch) { case : exit(); break; case 'a' : if (yp1 - > && mmp[xp1][yp1 - ] == ' ') { mmp[xp1][yp1] = ' ';
yp1--;
mmp[xp1][yp1] = 'O'; } if (yp1 - > && (mmp[xp1][yp1 - ] == '<' || mmp[xp1][yp1 - ] == '>')) { mmp[xp1][yp1] = ' ';
xp1 = , yp1 = ;
mmp[xp1][yp1] = 'O';
score2++; } break; case 'd' : if (yp1 + <= && mmp[xp1][yp1 + ] == ' ') { mmp[xp1][yp1] = ' ';
yp1++;
mmp[xp1][yp1] = 'O'; } if (yp1 + <= && (mmp[xp1][yp1 + ] == '<' || mmp[xp1][yp1 + ] == '>')) { mmp[xp1][yp1] = ' ';
xp1 = , yp1 = ;
mmp[xp1][yp1] = 'O';
score2++; } break; case 'w' : if (jumpdelay1 == && mmp[xp1 + ][yp1] == '#') { jumpdelay1 = ; } break; case - : ch = getch(); switch (ch) { case : if (yp2 - > && mmp[xp2][yp2 - ] == ' ') { mmp[xp2][yp2] = ' ';
yp2--;
mmp[xp2][yp2] = '@'; } if (yp2 - > && (mmp[xp2][yp2 - ] == '*' || mmp[xp2][yp2 - ] == '*')) { mmp[xp2][yp2] = ' ';
xp2 = , yp2 = ;
mmp[xp2][yp2] = '@';
score1++; } break; case : if (yp2 + <= && mmp[xp2][yp2 + ] == ' ') { mmp[xp2][yp2] = ' ';
yp2++;
mmp[xp2][yp2] = '@'; } if (yp2 + <= && (mmp[xp2][yp2 + ] == '<' || mmp[xp2][yp2 + ] == '>')) { mmp[xp2][yp2] = ' ';
xp2 = , yp2 = ;
mmp[xp2][yp2] = '@';
score1++; } break; case : if (jumpdelay2 == && mmp[xp2 + ][yp2] == '#') { jumpdelay2 = ; } break; } break; case 'j' : if (yp1 > ) { if (mmp[xp1][yp1 - ] == '@') { mmp[xp2][yp2] = ' ';
xp2 = , yp2 = ;
mmp[xp2][yp2] = '@';
score1++; } if (mmp[xp1][yp1 - ] == ' ') { mmp[xp1][yp1 - ] = '<'; } } break;
case 'k' : if (yp1 < ) { if (mmp[xp1][yp1 + ] == '@') { mmp[xp2][yp2] = ' ';
xp2 = , yp2 = ;
mmp[xp2][yp2] = '@';
score1++; } if (mmp[xp1][yp1 + ] == ' ') { mmp[xp1][yp1 + ] = '>'; } }
break;
case '' : if (yp2 > ) { if (mmp[xp2][yp2 - ] == 'O') { mmp[xp1][yp1] = ' ';
xp1 = , yp1 = ;
mmp[xp1][yp1] = 'O';
score2++; } if (mmp[xp2][yp2 - ] == ' ') { mmp[xp2][yp2 - ] = '<'; } } break;
case '' : if (yp2 < ) { if (mmp[xp2][yp2 + ] == 'O') { mmp[xp1][yp1] = ' ';
xp1 = , yp1 = ;
mmp[xp1][yp1] = 'O';
score2++; } if (mmp[xp2][yp2 + ] == ' ') { mmp[xp2][yp2 + ] = '>'; } } break; } } } return ; }
转载请注明©Ice_watermelon233
自闭枪战C++的更多相关文章
- C#设计模式系列:开闭原则(Open Close Principle)
1.开闭原则简介 开闭原则对扩展开放,对修改关闭,开闭原则是面向对象设计中可复用设计的基石. 2.开闭原则的实现 实现开闭原则的关键就在于抽象,把系统的所有可能的行为抽象成一个抽象底层,这个抽象底层规 ...
- C#软件设计——小话设计模式原则之:开闭原则OCP
前言:这篇继续来看看开闭原则.废话少说,直接入正题. 软件设计原则系列文章索引 C#软件设计——小话设计模式原则之:依赖倒置原则DIP C#软件设计——小话设计模式原则之:单一职责原则SRP C#软件 ...
- 设计模式之六大原则——开闭原则(OCP)
转载于: http://www.cnblogs.com/muzongyan/archive/2010/08/05/1793454.html 开闭原则(Open Closed Principle)是Ja ...
- CentOS 配置防火墙操作实例(启、停、开、闭端口):
CentOS 配置防火墙操作实例(启.停.开.闭端口): 注:防火墙的基本操作命令: 查询防火墙状态: [root@localhost ~]# service iptables status< ...
- Linux开源系统对比Windows闭源系统的优势解析
当我们听到linux的时候是不是觉得高大上的感觉呢?在我刚上大学的时候,听着学长们给我讲他们的大学的学习经历,先学习C语言.单片机.然后做一些项目,现在正学习linux操作系统,当我听到linux操作 ...
- nginx 配置全站404(百度闭站保护)
在百度站长里申请闭站保护时,需要全站404.可能过nginx配置实现 location / { #root html; #index index.html index.htm; retur ...
- 开放-封闭原则(OCP)开-闭原则 和 依赖倒转原则,单一职责原则
单一职责原则 1.单一职责原则(SRP),就一个类而言,应该仅有一个引起它变化的原因 2.如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会消弱或抑制这个类完成其他职责的能力. ...
- [转]设计模式之六大原则——开闭原则(OCP)
原文地址:http://www.cnblogs.com/muzongyan/archive/2010/08/05/1793454.html 开闭原则(Open Closed Principle)是Ja ...
- BZOJ 1124: [POI2008]枪战Maf
1124: [POI2008]枪战Maf Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 617 Solved: 236[Submit][Status ...
随机推荐
- [Java web] JSP 内置对象
1. Application 服务器启动后产生,所有用户共用一个Application,可以往里面存一些键值对 2. Session 会话对象,第一个JSP页面被装载时自动创建.从一个客户打开浏览器并 ...
- ELK 学习笔记之 Logstash之inputs配置
Logstash之inputs配置: input plugin doc: https://www.elastic.co/guide/en/logstash/current/index.html 插件很 ...
- 死磕 java线程系列之自己动手写一个线程池(续)
(手机横屏看源码更方便) 问题 (1)自己动手写的线程池如何支持带返回值的任务呢? (2)如果任务执行的过程中抛出异常了该怎么处理呢? 简介 上一章我们自己动手写了一个线程池,但是它是不支持带返回值的 ...
- 【Oracle】SQL语句优化
(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最后的表(基础表 driving table)将被最 ...
- Java基础学习(八) - 多线程
理解线程 进程是指一个内存中运行的应用程序,系统运行一个程序即是一个进程从创建,运行,结束的过程. 线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程. 多线程的特点是并发 ...
- Dubbo和Zookerper的关系
1.Dubbo的作用 Dubbo是管理中间层的工具,在业务层到数据仓库间有非常多服务的接入和服务提供者需要调度,dubbo提供一个框架解决这个问题.Dubbo基于RPC(Remote Procedur ...
- day 19作业
目录 今日作业: 今日作业: 1.什么是对象?什么是类? 答:对象是特征与技能的集合体,类是一系列对象相同的特征与技能的结合体 2.绑定方法的有什么特点 答:由对象来调用称之为对象的绑定方法,不同的对 ...
- CSS3 入门到精通(一)
CSS 用于控制网页的样式和布局. CSS3 是最新的 CSS 标准. 一. CSS3边框 实例 向 div 元素添加圆角: div { border:2px solid; border-radius ...
- idea破解版安装、配置jdk以及建立一个简单的maven工程
idea破解版安装.配置jdk,配置jdk环境变量以及建立一个简单的maven工程 一.idea破解版以及配置文件下载 下载网址:https://pan.baidu.com/s/1yojA51X1RU ...
- spring源码系列7:Spring中的InstantiationAwareBeanPostProcessor和BeanPostProcessor的区别
概念 Bean创建过程中的"实例化"与"初始化"名词 实例化(Instantiation): 要生成对象, 对象还未生成. 初始化(Initialization ...