日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

網(wǎng)傳-2048游戲的C語(yǔ)言代碼

 great978 2015-02-14
所謂的2048這個(gè)游戲 #include
#include
#include
#include
#include
int MAP[4][4],gre;
int add(int n)
{
srand((unsigned int)time(0));
int num = rand();
int tf = num % 2;
int x,y,i;
x = num % 4;
srand((unsigned int)time(0) + (unsigned int)num);
y = rand();
y %= 4;
if (tf)
num = 2;
else
num = 4;
if (n == 0)
{
MAP[x][y] = num;
}
else if (n == 1)
{
if (MAP[3][y] == 0)
MAP[3][y] = num;
else
for (i = 0; i < 4; i++)
if (MAP[3][i] == 0)
{
MAP[3][i] = num;
break;
}
}
else if (n == 2)
{
if (MAP[0][y] == 0)
MAP[0][y] = num;
else
for (i = 0; i < 4; i++)
if (MAP[0][i] == 0)
{
MAP[0][i] = num;
break;
}
}
else if (n == 3)
{
if (MAP[x][3] == 0)
MAP[x][3] = num;
else
for (i = 0; i < 4; i++)
if (MAP[i][3] == 0)
{
MAP[i][3] = num;
break;
}
}
else if (n == 4)
{
if (MAP[x][0] == 0)
MAP[x][0] = num;
else
for (i = 0; i < 4; i++)
if (MAP[i][0] == 0)
{
MAP[i][0] = num;
break;
}
}
}
int movup(void)
{
int i,k,t;
int tf = 0;
for (k = 0; k < 4; k++)
{
int n = 4;
while (n--)
for (i = 0; i < 3; i++)
if (MAP[i][k] == 0)
{
for (t = i; t < 3; t++)
{
MAP[t][k] = MAP[t + 1][k];
MAP[t + 1][k] = 0;
tf = 1;
}
}
for (i = 0; i < 3; i++)
{
if (MAP[i][k] == MAP[i + 1][k])
{
MAP[i][k] *= 2;
gre += MAP[i][k];
if (MAP[i][k] == 2048)
return 0;
for (t = i + 1; t < 3; t++)
{
MAP[t][k] = MAP[t + 1][k];
MAP[t + 1][k] = 0;
tf = 1;
}
}
}
}
if (tf)
add(1);
return 1;
}
int movdow(void)
{
int i,k,t;
int tf = 0;
for (k = 0; k < 4; k++)
{
int n = 4;
while (n--)
for (i = 3; i > 0; i--)
if (MAP[i][k] == 0)
{
for (t = i; t > 0; t--)
{
MAP[t][k] = MAP[t - 1][k];
MAP[t - 1][k] = 0;
tf = 1;
}
}
for (i = 3; i > 0; i--)
{
if (MAP[i][k] == MAP[i - 1][k])
{
MAP[i][k] *= 2;
gre += MAP[i][k];
if (MAP[i][k] == 2048)
return 0;
for (t = i - 1; t > 0; t--)
{
MAP[t][k] = MAP[t - 1][k];
MAP[t - 1][k] = 0;
tf = 1;
}
}
}
}
if (tf)
add(2);
return 1;
}
int movlif(void)
{
int i,k,t;
for (i = 0; i < 4; i++)
{
int n = 4;
while (n--)
for (k = 0; k < 3; k++)
{
if(MAP[i][k] == 0)
for (t = k; t < 3; t++)
{
MAP[i][t] = MAP[i][t + 1];
MAP[i][t + 1] = 0;
}
}
for (k = 0;k < 3;k++)
{
if (MAP[i][k] == MAP[i][k + 1])
{
MAP[i][k] *= 2;
gre += MAP[i][k];
if (MAP[i][k] == 2048)
return 0;
for (t = k + 1; t < 3; t++)
{
MAP[i][t] = MAP[i][t + 1];
MAP[i][t + 1] = 0;
}
}
}
}
add(3);
return 1;
}
int movri(void)
{
int i,k,t;
for (i = 0; i < 4; i++)
{
int n = 4;
while (n--)
for (k = 3; k > 0; k--)
{
if(MAP[i][k] == 0)
for (t = k; t > 0; t--)
{
MAP[i][t] = MAP[i][t - 1];
MAP[i][t - 1] = 0;
}
}
for (k = 3;k > 0;k--)
{
if (MAP[i][k] == MAP[i][k - 1])
{
MAP[i][k] *= 2;
gre += MAP[i][k];
if (MAP[i][k] == 2048)
return 0;
for (t = k - 1; t > 0; t--)
{
MAP[i][t] = MAP[i][t - 1];
MAP[i][t - 1] = 0;
}
}
}
}
add(4);
return 1;
}
int mov(void)
{
fflush(stdin);
char key;
key = getch();
int tf = 1;
if (key == 72)
tf = movup();
else if (key == 80)
tf = movdow();
else if (key == 75)
tf = movlif();
else if (key == 77)
tf = movri();
if (!tf)
{
system("CLS");
printf ("恭喜達(dá)到2048!\n");
}
return tf;
}
int pd (void)
{
int i,k;
for (i = 0; i < 4; i++)
{
for (k = 1; k < 4; k++)
if (MAP[i][k - 1] == MAP[i][k])
return 0;
}
for (i = 0; i < 4; i++)
{
for (k = 1; k < 4; k++)
if (MAP[k - 1][i] == MAP[k][i])
return 0;
}
system("CLS");
printf ("游戲結(jié)束!\n");
return 1;
}
int pri (void)
{
printf ("得分:%d\n",gre);
printf ("\t┏━━┳━━┳━━┳━━┓\n");
printf ("\t┃%4d┃%4d┃%4d┃%4d┃\n",MAP[0][0],MAP[0][1],MAP[0][2],MAP[0][3]);
printf ("\t┣━━╋━━╋━━╋━━┫\n");
printf ("\t┃%4d┃%4d┃%4d┃%4d┃\n",MAP[1][0],MAP[1][1],MAP[1][2],MAP[1][3]);
printf ("\t┣━━╋━━╋━━╋━━┫\n");
printf ("\t┃%4d┃%4d┃%4d┃%4d┃\n",MAP[2][0],MAP[2][1],MAP[2][2],MAP[2][3]);
printf ("\t┣━━╋━━╋━━╋━━┫\n");
printf ("\t┃%4d┃%4d┃%4d┃%4d┃\n",MAP[3][0],MAP[3][1],MAP[3][2],MAP[3][3]);
printf ("\t┗━━┻━━┻━━┻━━┛\n");
}
int main()
{
int i;
system("COLOR 3B");
printf ("\n\t【2048】控制臺(tái)版\n\n");
printf ("游戲規(guī)則(如同名手游):\n");
printf ("\t開始方格內(nèi)會(huì)出現(xiàn)2或者4等這兩個(gè)小數(shù)字,\n");
printf ("\t玩家只需要上下左右(方向鍵控制)其中一個(gè)方向來(lái)移動(dòng)出現(xiàn)的數(shù)字,\n");
printf ("\t所有的數(shù)字就會(huì)向滑動(dòng)的方向靠攏,\n");
printf ("\t而滑出的空白方塊就會(huì)隨機(jī)出現(xiàn)一個(gè)數(shù)字,\n");
printf ("\t相同的數(shù)字相撞時(shí)會(huì)疊加靠攏,\n");
printf ("\t然后一直這樣,不斷的疊加最終拼湊出2048這個(gè)數(shù)字就算成功。\n");
printf ("\n\n!輸入任意非零字符開始游戲!\n(建議將控制臺(tái)設(shè)置為大字體)\n");
char s[100];
while (scanf ("%s",s),strcmp(s,"0"))
{
memset (MAP,0,sizeof (MAP));
gre = 0;
system("CLS");
add(0);
pri();
while (mov())
{
fflush(stdin);
system("CLS");
pri();
if (pd())
break;
}
printf ("按任繼續(xù)游戲!輸入0退出程序!\n");
}
return 0;

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多