#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
string s="+***++++++++++++++++***+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++";
string a;
int b[10],m,x1;
void print() {
cout<<"w向上,s向下,a向左,d向右。/是墙,不要撞上!终点在!,退出按零。"<<endl;
for(int i=1; i<=361; i++) {
cout<<s[i]<<" ";
if(i%19==0) cout<<endl;
}
}
int opengame() {
int x;
cout<<" "<<"坦克大战"<<endl;
cout<<" "<<"按1开始!其他退出。";
cin>>x;
if(x==1) {
cout<<"游戏开始!打开中......";
for(int i=0; i<1e9; i++) {}
system("cls");
return 1;
} else {
cout<<"游戏结束!";
return 0;
}
}
int input(string a) {
while(cin>>a&&a!="0") {
int x;
for(int i=1; i<361; i++) {
if(s[i]=='*') {
x=i;
}
}
if(a=="w") {
if(s[x-38]=='/'||s[x-39]=='/'||s[x-40]=='/') {
cout<<"你撞墙了!";
return 0;
}
if(s[x-38]=='!'||s[x-39]=='!'||s[x-40]=='!') {
cout<<"你赢了!";
return 0;
}
s[x-38]='*';
s[x-39]='*';
s[x-40]='*';
s[x-2]='+';
s[x-1]='+';
s[x]='+';
system("cls");
print();
}
if(a=="s") {
if(s[x+19]=='/'||s[x+18]=='/'||s[x+17]=='/') {
cout<<"你撞墙了!";
return 0;
}
if(s[x+19]=='!'||s[x+18]=='!'||s[x+17]=='!') {
cout<<"你赢了!";
return 0;
}
s[x+19]='*';
s[x+18]='*';
s[x+17]='*';
s[x-19]='+';
s[x-20]='+';
s[x-21]='+';
system("cls");
print();
}
if(a=="a") {
if(s[x-3]=='/'||s[x-22]=='/') {
cout<<"你撞墙了!";
return 0;
}
if(s[x-3]=='!'||s[x-22]=='!') {
cout<<"你赢了!";
return 0;
}
s[x-3]='*';
s[x-22]='*';
s[x]='+';
s[x-19]='+';
system("cls");
print();
}
if(a=="d") {
if(s[x+1]=='/'||s[x-18]=='/') {
cout<<"你撞墙了!";
return 0;
}
if(s[x+1]=='!'||s[x-18]=='!') {
cout<<"你赢了!";
return 0;
}
s[x+1]='*';
s[x-18]='*';
s[x-2]='+';
s[x-21]='+';
system("cls");
print();
}
if(a=="qd") {
for(int i=1; i<=19-x%19; i++) {
if(s[x+i]=='!') return 0;
s[x+i]='>';
for(int j=0; j<0.5e9; j++) {
}
if(i!=1)s[x+i-1]='+';
if(i==19-x%19)s[x+i]='+';
system("cls");
print();
}
}
if(a=="qw") {
x1=x;
x--;
x-=19;
x1--;
x1-=19;
if(x%19==0) m=x1%19;
else m=x1%19+1;
for(int i=1; i<=m; i++) {
if(s[x-i*19]=='!') return 0;
s[x-i*19]='^';
for(int j=0; j<0.5e9; j++) {
}
if(i!=1)s[x-(i-1)*19]='+';
if(i==m)s[m*19]='+';
system("cls");
print();
}
}
if(a=="qa") {
if((x-3)%19==0) continue;
for(int i=3; i<=x%19-3+2; i++) {
if(s[x-i]=='!') return 0;
s[x-i]='<';
for(int j=0; j<0.5e9; j++) {
}
if(i!=3)s[x-i+1]='+';
if(i==x%19-3+2)s[x-i]='+';
system("cls");
print();
}
}
if(a=="qs") {
/*x--;
x1=x;x-=19;
x1--;
x1-=19;*/
if(x%19==0) m=x%19;
else m=x%19+1;
if(m==2) m=0;
for(int i=1; i<=19; i++) {
if(s[x+i*18]=='!') return 0;
s[x+i*18]='v';
for(int j=0; j<0.5e9; j++) {
}
if(i!=1)s[x+(i-1)*18-1]='+';
if(i==19-m+2)s[m*18]='+';
system("cls");
print();
x++;
}
}
}
cout<<"已退出!";
}//
int main() {
if(opengame()!=1) {
return 0;
}
int m;
cout<<"难度选择(1-5)递增:";
cin>>m;
if(m==1) {
srand ((unsigned)time (0));
for(int i=0; i<10; i++) {
b[i]=rand() % 361 + 1;
if(b[i]<=23) {
b[i]+=23;
}
s[b[i]]='/';
}
int x=rand() % 398 + 1;
if(x<=38) {
x+=38;
}
s[x]='!';
print();
input(a);
return 0;
}
if(m==2) {
srand ((unsigned)time (0));
for(int i=0; i<20; i++) {
b[i]=rand() % 361 + 1;
if(b[i]<=23) {
b[i]+=23;
}
s[b[i]]='/';
}
int x=rand() % 398 + 1;
if(x<=38) {
x+=38;
}
s[x]='!';
print();
input(a);
return 0;
}
if(m==3) {
srand ((unsigned)time (0));
for(int i=0; i<30; i++) {
b[i]=rand() % 361 + 1;
if(b[i]<=23) {
b[i]+=23;
}
s[b[i]]='/';
}
int x=rand() % 398 + 1;
if(x<=38) {
x+=38;
}
s[x]='!';
print();
input(a);
return 0;
}
if(m==4) {
srand ((unsigned)time (0));
for(int i=0; i<40; i++) {
b[i]=rand() % 361 + 1;
if(b[i]<=23) {
b[i]+=23;
}
s[b[i]]='/';
}
int x=rand() % 398 + 1;
if(x<=38) {
x+=38;
}
s[x]='!';
print();
input(a);
return 0;
}
if(m==5) {
srand ((unsigned)time (0));
for(int i=0; i<50; i++) {
b[i]=rand() % 361 + 1;
if(b[i]<=23) {
b[i]+=23;
}
s[b[i]]='/';
}
int x=rand() % 398 + 1;
if(x<=38) {
x+=38;
}
s[x]='!';
print();
input(a);
return 0;
}
return 0;
}