#include<bits/stdc++.h>
#include<time.h>
#include<windows.h>
using namespace std;
int mmax,tx,ty,vis[4][4],maxx,a[5][5];
const int n=4;
char py;
void srand(unsigned int seed);
int main(){
srand(int(time(0)));
tx=rand()%4+1,ty=rand()%4+1;
a[tx][ty]=pow(2,rand()%2+1),vis[tx][ty]=1;
while(cin>>py){
tx=rand()%4+1,ty=rand()%4+1;
a[tx][ty]=pow(2,rand()%2+1),vis[tx][ty]=1;
int flag=0;
system("cls");
puts("w表示向上,a表示向左,s表示向下,d表示向右");
for(int i=1;i<=n;i++,puts(""))
for(int j=1;j<=n;j++) cout<<a[i][j]<<' ';
switch(py){
case 'w':for(int i=n;i>1;i--)
for(int j=n;j>0;j--)
if(a[i-1][j]=a[i][j])
a[i-1][j]+=a[i][j],a[i][j]=0,vis[i][j]=0;
else if(!vis[i-1][j]) a[i-1][j]=a[i][j];
case 'a':for(int i=n;i>0;i--)
for(int j=n;j>1;j--)
if(a[i][j-1]=a[i][j])
a[i][j-1]+=a[i][j],a[i][j]=0,vis[i][j]=0;
else if(!vis[i][j-1]) a[i][j-1]=a[i][j];
case 's':for(int i=1;i<n;i++)
for(int j=1;j<=n;j++)
if(a[i+1][j]=a[i][j])
a[i+1][j]+=a[i][j],a[i][j]=0,vis[i][j]=0;
else if(!vis[i+1][j]) a[i+1][j]=a[i][j];
case 'd':for(int i=1;i<=n;i++)
for(int j=1;j<n;j++)
if(a[i][j+1]=a[i][j])
a[i][j+1]+=a[i][j],a[i][j]=0,vis[i][j]=0;
else if(!vis[i][j+1]) a[i][j+1]=a[i][j];
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(!vis[i][j]) flag=1;
if(!flag){puts("YOU LOSE!"),Sleep(1000),system("pause");return 0;}
}
}
一直有问题
类似 按w后无反应等