[mw_shl_code=c,true]#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int a[6][6]={0};
int dayin(){
int i,j;
system("cls");
for(i=0;i<=3;i++)
{
for(j=0;j<=3;j++)
printf("%4d",a[j]);
printf("\n");
}
}
int main(){
int i,j,x1=0,y1=0,x2=0,y2=0,k;
char ch;
srand((unsigned)time(NULL));
while(x1==x2 && y1==y2){
x1=rand()%4; y1=rand()%4;
x2=rand()%4; y2=rand()%4;
}
//a[0][1]=4;a[1][1]=2;
a[x1][y1]=2;a[x2][y2]=2;
dayin();
while(1>0){
ch=getch();
if(ch=='w') {
for(j=0;j<=3;j++) {//每一列的操作是相同的
for(i=1;i<=3;i++) {
if(a[j]!=0) {//当前这个格子中的数不为0
k=i;
while(a[k-1][j]==0 && k-1>=0)
k--;
if(k!=i){
a[k][j]=a[j];
a[j]=0;
}
if(a[k-1][j]==a[k][j] && k-1>=0) { //两个相同的数相邻
a[k-1][j]*=2;
a[k][j]=0;
}
}
}
}
}
if(ch=='s') {
for(j=0;j<=3;j++) {//每一列的操作是相同的
for(i=2;i>=0;i--) {
if(a[j]!=0) {//当前这个格子中的数不为0
k=i;
while(a[k+1][j]==0 && k+1<=3)
k++;
if(k!=i){
a[k][j]=a[j];
a[j]=0;
}
if(a[k+1][j]==a[k][j] && k+1<=3) { //两个相同的数相邻
a[k+1][j]*=2;
a[k][j]=0;
}
}
}
}
}
x1=rand()%4; y1=rand()%4;
while(a[x1][y1]!=0){
x1=rand()%4; y1=rand()%4;
}
a[x1][y1]=2;
dayin();
}
system("pause");
return 0;
}
[/mw_shl_code]
|