Windows版本
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
int a[4][4];
int s;
int x=1;
void xianshi()
{
for(int i=0;i<4;i++)
{
printf("---------------------\n");
for(int j=0;j<4;j++)
{
if(a[i][j]==0)
printf("| ");
else
printf("|%4d",a[i][j]);
}
printf("|\n");
}
printf("---------------------\n");
printf("得分:%d\n",s);
}
int count()
{
int k=0;
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(a[i][j]==0)
k++;
}
}
return k;
}
void suijishu()
{
srand(time(NULL));
if(x==0||count()==0) return;
while(1)
{
int x=rand()%4;
int y=rand()%4;
int t=rand()%10;
if(a[x][y]==0)
{
if(t<3)
{
a[x][y]=4;
return ;
}
else
{
a[x][y]=2;
return ;
}
}
}
}
int over()
{
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
if(a[i][j]==0)
return 0;
if( (j<3&&a[i][j]==a[i][j+1]) ||
(j>0&&a[i][j]==a[i][j-1]) ||
(i>0&&a[i][j]==a[i-1][j]) ||
(i<3&&a[i][j]==a[i+1][j]) )
return 0;
}
}
return 1;
}
void up()
{
for(int i=0;i<4;i++)
{
for(int j=1;j<4;j++)
{
if(a[j][i])
{
int t=-1;
for(int k=j-1;k>=0&& ( a[j][i]==a[k][i] || a[k][i]==0 );k-- )
{
t=k;
}
if(t!=-1)
{
if(a[t][i]!=0)
s+=a[t][i]*