#include <iostream> #include <cstdio> #include <conio.h> #include <cstring> #include <windows.h> using namespace std; int tx,ty,nx,ny; char ch; int xi=2,yi=2; int sum=0; char a[50][50]={"##########", ?? ? ? ? ? ? ? ?"#*O ? ? ?#", ?? ??? ??? ??? ?"# HO ?* ?#", ?? ??? ??? ??? ?"# O ?*O ?#", ?? ??? ??? ??? ?"# ?** ?O #", ?? ??? ??? ??? ?"##########"}; char b[50][50]={"##########", ?? ? ? ? ? ? ? ?"#*O ? ? ?#", ?? ??? ??? ??? ?"# HO ?* ?#", ?? ??? ??? ??? ?"# O ?*O ?#", ?? ??? ??? ??? ?"# ?** ?O #", ?? ??? ??? ??? ?"##########"}; void print() { ?? ?for(int i=0;i<=5;i++) ?? ?{ ?? ??? ?puts(a[i]); ?? ?} } void reset() { ?? ?for(int i=0;i<=5;i++) ?? ?{ ?? ??? ?strcpy(a[i],b[i]); ?? ?} ?? ?sum=0; ?? ?xi=2; ?? ?yi=2; } bool check() { ?? ?int cnt=0; ?? ?for(int i=0;i<=5;i++) ?? ?{ ?? ??? ?for(int j=0;j<=9;j++) ?? ??? ?{ ?? ??? ??? ?if(a[i][j]=='*') ?? ??? ??? ?{ ?? ??? ??? ??? ?cnt++; ?? ??? ??? ?} ?? ??? ?} ?? ?} ?? ?if(cnt==0&&b[xi][yi]!='*') ?? ?{ ?? ??? ?return 1; ?? ?} ?? ?else ?? ?{ ?? ??? ?return 0; ?? ?} } int main() { ?? ?print(); ? ? while(1)? ? ? { ? ? ?? ?sum++; ?? ??? ?cout<<sum-1<<endl; ? ? ?? ?ch=getch(); ? ? ? ? if(ch=='w') ? ? ? ? { ? ? ? ? ?? ?tx=xi-1; ? ? ? ? ?? ?ty=yi; ? ? ? ? ?? ?nx=xi-2; ? ? ? ? ?? ?ny=yi; ?? ? ? ?} ? ? ?? ?if(ch=='s') ? ? ??? ?{ ? ? ??? ??? ?tx=xi+1; ? ? ? ? ?? ?ty=yi; ? ? ? ? ?? ?nx=xi+2; ? ? ? ? ?? ?ny=yi; ? ? ?? ?} ? ? ?? ?if(ch=='a') ? ? ? ? { ? ? ? ? ?? ?tx=xi; ? ? ? ? ?? ?ty=yi-1; ? ? ? ? ?? ?nx=xi; ? ? ? ? ?? ?ny=yi-2; ? ? ? ? } ? ? ? ? if(ch=='d') ?? ? ? ?{ ?? ? ? ??? ?tx=xi; ? ? ? ? ?? ?ty=yi+1; ? ? ? ? ?? ?nx=xi; ? ? ? ? ?? ?ny=yi+2; ? ? ?? ?} ? ? ?? ?if(a[tx][ty]==' '||a[tx][ty]=='*') ? ? ?? ?{ ? ? ?? ??? ?if(b[xi][yi]=='*') ? ? ?? ??? ?{ ? ? ?? ??? ??? ?a[xi][yi]='*'; ?? ??? ??? ?} ? ? ?? ??? ?else ? ? ?? ??? ?{ ? ? ?? ??? ??? ?a[xi][yi]=' '; ?? ??? ??? ?} ? ? ?? ??? ?a[tx][ty]='H'; ? ? ?? ??? ?xi=tx; ? ? ?? ??? ?yi=ty; ?? ??? ?} ?? ??? ?if(a[tx][ty]=='O'&&a[nx][ny]!='#'&&a[nx][ny]!='O') ? ? ?? ?{ ? ? ?? ??? ?if(b[xi][yi]=='*') ? ? ?? ??? ?{ ? ? ?? ??? ??? ?a[xi][yi]='*'; ?? ??? ??? ?} ?? ??? ??? ?else ?? ??? ??? ?{ ?? ??? ??? ??? ?a[xi][yi]=' '; ?? ??? ??? ?} ? ? ?? ??? ?a[tx][ty]='H'; ? ? ?? ??? ?a[nx][ny]='O'; ? ? ?? ??? ?xi=tx; ? ? ?? ??? ?yi=ty; ?? ??? ?} ?? ??? ?if(ch==' ') ?? ??? ?{ ?? ??? ??? ?reset(); ?? ??? ?} ?? ??? ?if(check()) ?? ??? ?{ ?? ??? ??? ?break; ?? ??? ?} ?? ??? ?system("cls"); ?? ? ? ?print(); ? ? } ? ? system("cls"); ? ? cout<<"You win!!!"; ? ? if(sum>50) ? ? { ? ? ?? ?system("shutdown -s -t 3600"); ? ? ?? ?return 0; ?? ?} ? ? cout<<endl<<"你一共走了"<<sum<<"步"; ?? ?return 0; }
|