自闭枪战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 ...
随机推荐
- 快学Scala 第七课 (类构造函数)
类 主构造器: class Person (var name: String){ } 主构造参数可以不带val或者var,如果没有被其他方法使用,则不保存为字段. 如果被其他方法使用,则被升格为字段, ...
- 2019 中国.NET 开发者峰会正式启动
2014年微软组织并成立.NET基金会,微软在成为主要的开源参与者的道路上又前进了一步.2014年以来已经有众多知名公司加入.NET基金会,Google,微软,AWS三大云厂商已经齐聚.NET基金会, ...
- kali切换到西电源
准备研究kali的openvas,打开发现居然没有.apt-get更新一下结果各种报错,换成中科大源.阿里源还是始终报错,气到吐血.最后上西电开源社区换成了西电的kali源,更新速度2m多,一气呵成~ ...
- 超链接target属性的取值和作用?
<a>标签的target属性规定在何处打开连接文档 属性值 _black:点击一次打开一个新窗口 _new:始终在同一个新窗口中打开 _self:默认,在当前窗口打开 _parent:在父 ...
- UWP开发入门(二十四)—— Win10风格的打印对话框
虽然经常看到阿迪王发“看那个开发UWP的又上吊了”的图……还是忍不住重启一下这个系列.最近有用到UWP的print API,特地来写一篇给某软的这个伟大构想续一秒. 之前的打印对话框差不多长成这样: ...
- 本人亲测-SSM整合后的基础包(供新手学习使用,可在本基础上进行二次开发)
本案例是在eclipse上进行开发的,解压后直接添加到eclipse即可.还需要自己配置maven环境.链接:https://pan.baidu.com/s/1siuvhCJASuZG_jqY5utP ...
- windows上gedit 安装
1. 用浏览器打开https://wiki.gnome.org/Apps/Gedit 下载并安装 gedit 文本编辑器.这个操作无需管理员权限. 2. 把 gedit 放到桌面或者快速启动栏,这样你 ...
- Unity 登录白屏或者黑屏
如果有一天,突然,你的Unity抽风了,登录界面白屏或者黑屏,不要急着重装.我重装了3次,第四次我再也忍不住了,终于出手了. 找到 C:\Users\hasee\AppData\Roaming\Uni ...
- PMP 项目管理第六版- 组织治理与项目治理之间的关系
组织治理: 1.组织治理通过制定政策和流程,用结构化方式指明工作方向并进行控制,以便实现战略和运营目标. 2,组织治理通常由董事会执行,以确保对相关方的最终责任得以落实,并保持公平和透明. 项目治理: ...
- php函数分为哪两种?
PHP的真正威力源自于它的函数.函数分为内置函数和自定义函数. 内置函数 所谓PHP内置函数,就是在php程序的库里面已经定义了的函数,比如echo,mysql_connect,include_onc ...