2048小游戲C語言實現(xiàn)代碼
本文實例為大家分享了C語言實現(xiàn)2048游戲的具體代碼,供大家參考,具體內(nèi)容如下
大一時學c語言寫的,寫的不好但當時感覺還行。
環(huán)境運行 vc6.0 ,cpp文件。
基本上是c寫的,但是改變字體顏色,在控制臺移動光標等等好像不是c中的。
代碼:
#include<time.h>
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
#include<windows.h>
#define x0 26
#define y0 1
HANDLE hOutput=GetStdHandle(STD_OUTPUT_HANDLE);
/*顯示聲明*/
void p(int*a,int i,int x,int y);
/*部分刷新聲明*/
void shua(void);
/*勝利畫面測試函數(shù)聲明*/
int test(void);
/*字體空格聲明*/
void kg(int*a);
/*畫長條函數(shù)的聲明*/
void ct(int x,int y,int l,int k,int c);
/*標題字幕2048*/
void p2048(int x,int y);
/*單個顏色返回值聲明*/
int col(int*a);
/*移動光標*/
void gotoxy(int x,int y)
{
COORD coordScreen={0,0};
coordScreen.X=x;
coordScreen.Y=y;
SetConsoleCursorPosition(hOutput,coordScreen);
}
/*字體顏色*/
void textcolor(int color)
{
SetConsoleTextAttribute(hOutput,color);
}
/*顯示函數(shù)*/
void prin(int*a,int*score,int*scoremax)
{
int i;
for (i = 0; i < 16; i++)
{
p(a,i,x0,y0);
}
printf("\n\n score=%d MAXscore=%d \n", *score, *scoremax);
}
/* 產(chǎn)生隨機數(shù) */
int shu(void)
{
int s = 0;
s = 1 + (int)(12.0 * rand() / (RAND_MAX + 1.0));
if (s == 12)
return 4;
else
return 2;
}
/* 決定位置 */
int rands(void)
{
return (int)(16.0 * rand() / (RAND_MAX + 1.0));
}
/* 主函數(shù)*/
int main(void)
{
int flag = 0, c = 0, pd = 1, n = 0, i = 0, m = 0, j =
0, sj, sj1, sj2, a[16] = { 0 }, b[16] ={0}, x = 0, score = 0, t = 0, jx = 0, scoremax = 0,ks=1,yx=0;
char sr,an;
//開始畫面
p2048(17,1);
textcolor(255);
gotoxy(35,15);
for(;;)
{
an=getch();
switch(an)
{
case 72:
if(ks==1)
ks=0;
else
ks=1;
break;
case 80:
if(ks==1)
ks=0;
else
ks=1;
break;
case '\r':
yx=1;
break;
default:
break;
}
if(ks==1)
gotoxy(35,15);
else
gotoxy(34,18);
if(ks==1&&yx==1)
break;
else if(ks==0&&yx==1)
{
textcolor(240);
gotoxy(0,0);
for(i=0;i<=500;i++)
{
printf(" ");
}
gotoxy(0,0);
ct(12,5,58,10,223);
gotoxy(13,6);
printf(" 2048游戲說明");
gotoxy(13,8);
printf(" 通過按數(shù)字鍵移動數(shù)字,合并相同的數(shù)字來的取得更大的數(shù)。");
gotoxy(13,9);
printf(" 得到2048時游戲即勝利,當然您也可以選擇繼續(xù)挑戰(zhàn)。");
gotoxy(13,11);
printf(" 按鍵操作:");
gotoxy(13,13);
printf(" 上:↑ 下:↓ 左:← 右:→ 重新開始:r 退出游戲:e");
textcolor(240);
printf("\n\n\n\n\n I know ");
getch();
p2048(17,1);
textcolor(255);
gotoxy(34,18);
}
yx=0;
}
//隱藏光標
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible=FALSE;
SetConsoleCursorInfo(hOut,&cci);
//刷新畫面
textcolor(240);
gotoxy(0,0);
for(i=0;i<=500;i++)
{
printf(" ");
}
gotoxy(0,0);
/*設(shè)置時間種子*/
srand((int)time(0));
/* 設(shè)置初始值 */
sj = rands();
sj1 = rands();
sj2 = rands();
for (;;)
{
if (sj == sj1 || sj == sj2 || sj1 == sj2)
{
sj1 = rands();
sj2 = rands();
}
else
break;
}
a[sj] = shu();
a[sj1] = shu();
a[sj2] = shu();
/*顯示*/
prin(a,&score,&scoremax);
for (;;)
{
/* 無回顯輸入 */
sr = getch();
/* scanf("%d",&n); *//* 記錄之前的位置,將用以比較移動是否有效 */
for (j = 0; j < 16; j++)
b[j] = a[j];
switch (sr)
{
/* 向上移動 */
case 72:
/* 全部移到上邊 */
for (j = 0; j < 4; j++)
{
for (c = 0; c < 3; c++)
{
if (a[j] == 0)
{
a[j] = a[j + 4];
a[j + 4] = 0;
}
if (a[j + 4] == 0)
{
a[j + 4] = a[j + 8];
a[j + 8] = 0;
}
if (a[j + 8] == 0)
{
a[j + 8] = a[j + 12];
a[j + 12] = 0;
}
}
/* 移到上面后的合并操作 */
if (a[j] == a[j + 4])
{
a[j] = a[j] * 2;
score = score + a[j];
a[j + 4] = a[j + 8];
a[j + 8] = a[j + 12];
a[j + 12] = 0;
if (a[j + 4] == a[j + 8])
{
a[j + 4] = 2 * a[j + 4];
score = score + a[j + 4];
a[j + 8] = 0;
}
}
else if (a[j + 4] == a[j + 8])
{
a[j + 4] = 2 * a[j + 4];
score = score + a[j + 4];
a[j + 8] = a[j + 12];
a[j + 12] = 0;
}
else if (a[j + 8] == a[j + 12])
{
a[j + 8] = 2 * a[j + 8];
score = score + a[j + 8];
a[j + 12] = 0;
}
else;
}
break;
/* 向下移動 */
case 80:
/* 全部移動到下面 */
for (j = 12; j < 16; j++)
{
for (c = 0; c < 3; c++)
{
if (a[j] == 0)
{
a[j] = a[j - 4];
a[j - 4] = 0;
}
if (a[j - 4] == 0)
{
a[j - 4] = a[j - 8];
a[j - 8] = 0;
}
if (a[j - 8] == 0)
{
a[j - 8] = a[j - 12];
a[j - 12] = 0;
}
}
/* 移到下面后的合并操作 */
if (a[j] == a[j - 4])
{
a[j] = a[j] * 2;
score = score + a[j];
a[j - 4] = a[j - 8];
a[j - 8] = a[j - 12];
a[j - 12] = 0;
if (a[j - 4] == a[j - 8])
{
a[j - 4] = 2 * a[j - 4];
score = score + a[j - 4];
a[j - 8] = 0;
}
}
else if (a[j - 4] == a[j - 8])
{
a[j - 4] = 2 * a[j - 4];
score = score + a[j - 4];
a[j - 8] = a[j - 12];
a[j - 12] = 0;
}
else if (a[j - 8] == a[j - 12])
{
a[j - 8] = 2 * a[j - 8];
score = score + a[j - 8];
a[j - 12] = 0;
}
else;
}
break;
/* 向左移動 */
case 75:
/* 全部移動到左面 */
for (j = 0; j <= 12; j = j + 4)
{
for (c = 0; c < 3; c++)
{
if (a[j] == 0)
{
a[j] = a[j + 1];
a[j + 1] = 0;
}
if (a[j + 1] == 0)
{
a[j + 1] = a[j + 2];
a[j + 2] = 0;
}
if (a[j + 2] == 0)
{
a[j + 2] = a[j + 3];
a[j + 3] = 0;
}
}
/* 移到左面后的合并操作 */
if (a[j] == a[j + 1])
{
a[j] = a[j] * 2;
score = score + a[j];
a[j + 1] = a[j + 2];
a[j + 2] = a[j + 3];
a[j + 3] = 0;
if (a[j + 1] == a[j + 2])
{
a[j + 1] = 2 * a[j + 1];
score = score + a[j + 1];
a[j + 2] = 0;
}
}
else if (a[j + 1] == a[j + 2])
{
a[j + 1] = 2 * a[j + 1];
score = score + a[j + 1];
a[j + 2] = a[j + 3];
a[j + 3] = 0;
}
else if (a[j + 2] == a[j + 3])
{
a[j + 2] = 2 * a[j + 2];
score = score + a[j + 2];
a[j + 3] = 0;
}
else;
}
break;
/* 向右移動 */
case 77:
/* 全部移動到右面 */
for (j = 3; j <= 16; j = j + 4)
{
for (c = 0; c < 3; c++)
{
if (a[j] == 0)
{
a[j] = a[j - 1];
a[j - 1] = 0;
}
if (a[j - 1] == 0)
{
a[j - 1] = a[j - 2];
a[j - 2] = 0;
}
if (a[j - 2] == 0)
{
a[j - 2] = a[j - 3];
a[j - 3] = 0;
}
}
/* 移到右面后的合并操作 */
if (a[j] == a[j - 1])
{
a[j] = a[j] * 2;
score = score + a[j];
a[j - 1] = a[j - 2];
a[j - 2] = a[j - 3];
a[j - 3] = 0;
if (a[j - 1] == a[j - 2])
{
a[j - 1] = 2 * a[j - 1];
score = score + a[j - 1];
a[j - 2] = 0;
}
}
else if (a[j - 1] == a[j - 2])
{
a[j - 1] = 2 * a[j - 1];
score = score + a[j - 1];
a[j - 2] = a[j - 3];
a[j - 3] = 0;
}
else if (a[j - 2] == a[j - 3])
{
a[j - 2] = 2 * a[j - 2];
score = score + a[j - 2];
a[j - 3] = 0;
}
else;
}
break;
/* 重新開始 */
case 'r':
for (j = 0; j < 16; j++)
a[j] = 0;
sj1 = rands();
sj2 = rands();
for (;;)
{
if (sj1 == sj2)
{
sj1 = rands();
sj2 = rands();
}
else
break;
}
a[sj1] = shu();
a[sj2] = shu();
flag = 0;
score = 0;
jx = 0;
break;
/* 退出 */
case 'e':
shua();
ct(32,19,15,3,207);
printf(" 游戲已退出!");
textcolor(255);
gotoxy(0,0);
getch();
return 0;
break;
/* 其他情況(刷新) */
default:
;
break;
}
/*windows下的系統(tǒng)清屏函數(shù)*/
//system ("cls");
/* 判斷最高分 */
if (score > scoremax)
scoremax = score;
/* 判斷是否勝利(是否含有2048) */
for (j = 0; j < 16; j++)
{
if (a[j] == 2048 && jx == 0)
{
/* 勝利時輸出游戲結(jié)果 */
/*顯示*/
prin(a,&score,&scoremax);
shua();
ct(20,19,15,3,207);
printf(" 游戲勝利!");
textcolor(159);
gotoxy(38,19);
printf(" Continue ");
textcolor(239);
gotoxy(49,20);
printf(" Restart ");
textcolor(175);
gotoxy(49,21);
printf(" Exit ");
t=2;
an=75;
yx=0;
for(;;)
{
an=getch();
switch(an)
{
case 72:
if(t==2)
{
t=3;
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(38,21);
printf(" Exit ");
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(47,19);
printf(" Continue ");
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(49,20);
printf(" Restart ");
}
else if(t==1)
{
t=2;
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(38,19);
printf(" Continue ");
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(47,20);
printf(" Restart ");
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(49,21);
printf(" Exit ");
}
else
{
t=1;
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(38,20);
printf(" Restart ");
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(47,21);
printf(" Exit ");
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(49,19);
printf(" Continue ");
}
break;
case 80:
if(t==2)
{
t=1;
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(38,20);
printf(" Restart ");
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(47,19);
printf(" Continue ");
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(49,21);
printf(" Exit ");
}
else if(t==1)
{
t=3;
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(38,21);
printf(" Exit ");
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(47,20);
printf(" Restart ");
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(49,19);
printf(" Continue ");
}
else
{
t=2;
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(38,19);
printf(" Continue ");
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(47,21);
printf(" Exit ");
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(49,20);
printf(" Restart ");
}
break;
case '\r':
yx=1;
break;
}
if(yx==1)
{
yx=0;
break;
}
}
shua();
textcolor(255);
gotoxy(0,0);
/* 重新開始游戲 */
if (t == 1)
{
shua();
pd = 1;
x = 0;
for (j = 0; j < 16; j++)
a[j] = 0;
sj1 = rands();
sj2 = rands();
for (;;)
{
if (sj1 == sj2)
{
sj1 = rands();
sj2 = rands();
}
else
break;
}
a[sj1] = shu();
a[sj2] = shu();
for (j = 0; j < 16; j++)
b[j] = a[j];
flag = 0;
score = 0;
break;
}
/* 繼續(xù)游戲 */
else if (t == 2)
{
jx = 1;
shua();
}
else
{
shua();
ct(32,19,15,3,207);
printf(" 游戲已退出!");
textcolor(255);
gotoxy(0,0);
getch();
return 0;
}
}
}
/* 決定是否產(chǎn)生新的數(shù)及其位置以及游戲是否失敗 */
/* flag,pd,x賦初值 */
flag = 0;
pd = 1;
x = 0;
/* 判斷移動后是否有空位:pd=0為有空位,pd=1為無空位 */
for (j = 0; j < 16; j++)
{
if (a[j] == 0)
pd = 0;
}
/* 移動是否有效:x=1有效,x=0無效 */
for (j = 0; j < 16; j++)
{
if (a[j] != b[j])
{
x = 1;
break;
}
}
/* 移動有效時且有空位時產(chǎn)生新數(shù) */
if (pd == 0 && x == 1)
{
for (;;)
{
sj = rands();
if (a[sj] == 0)
{
a[sj] = shu();
break;
}
else;
}
}
/* 游戲是否失敗的判定 */
/* 移動后無空位 */
else if (pd != 0)
{
/* 判斷是否還有可合并的項 */
for (j = 0; j < 16; j++)
{
if (j != 3 && j != 7 && j != 11 && j != 15 && a[j] == a[j + 1])
{
flag = flag + 1;
}
if (j != 12 && j != 13 && j != 14 && j != 15
&& a[j] == a[j + 4])
{
flag = flag + 1;
}
if (j != 0 && j != 4 && j != 8 && j != 12 && a[j] == a[j - 1])
{
flag = flag + 1;
}
if (j != 0 && j != 1 && j != 2 && j != 3 && a[j] == a[j - 4])
{
flag = flag + 1;
}
}
/* 無空位且沒有可合并的項時游戲失敗 */
if (flag == 0)
{
/* 失敗時輸出游戲結(jié)果 */
/*顯示*/
prin(a,&score,&scoremax);
shua();
ct(20,19,15,3,271);
printf(" 游戲結(jié)束!");
textcolor(240);
gotoxy(38,19);
printf("Whether continue the game ?");
gotoxy(44,21);
printf("@Yes No");
gotoxy(44,21);
t=1;
an=75;
yx=0;
for(;;)
{
an=getch();
switch(an)
{
case 75:
if(t==1)
{
t=0;
gotoxy(53,21);
printf("@");
gotoxy(44,21);
printf(" ");
}
else
{
t=1;
gotoxy(44,21);
printf("@");
gotoxy(53,21);
printf(" ");
}
break;
case 77:
if(t==1)
{
t=0;
gotoxy(53,21);
printf("@");
gotoxy(44,21);
printf(" ");
}
else
{
t=1;
gotoxy(44,21);
printf("@");
gotoxy(53,21);
printf(" ");
}
break;
case '\r':
yx=1;
break;
}
if(yx==1)
{
yx=0;
break;
}
}
shua();
textcolor(255);
gotoxy(0,0);
if (t == 1)
{
for (j = 0; j < 16; j++)
a[j] = 0;
sj=rands();
sj1 = rands();
sj2 = rands();
for (;;)
{
if (sj1 ==sj2||sj1==sj||sj2==sj)
{
sj1 = rands();
sj2 = rands();
}
else
break;
}
a[sj]=shu();
a[sj1] = shu();
a[sj2] = shu();
score = 0;
jx = 0;
}
else
{
shua();
ct(32,19,15,3,207);
printf(" 游戲已退出!");
textcolor(255);
gotoxy(0,0);
getch();
return 0;
}
}
}
else;
/* 顯示結(jié)果 */
prin(a,&score,&scoremax);
}
return 0;
}
/*顯示函數(shù)*/
void p(int*a,int i,int x,int y)
{
int x1=x,y1=y;
textcolor(col(a+i));
x1=x+(i%4)*7;
y1=y+(i/4)*4;
gotoxy(x1,y1);
printf(" ");
gotoxy(x1,y1+1);
kg(a+i);
gotoxy(x1,y1+2);
printf(" ");
textcolor(240);
}
/*字體空格聲明*/
void kg(int*a)
{
if(*a==0)
printf(" ",*a);
else if(*a<10)
printf(" %d ",*a);
else if(*a<100)
printf(" %d ",*a);
else if(*a<1000)
printf(" %d ",*a);
else if(*a<10000)
printf("%d ",*a);
else
printf("%d",*a);
}
/*單個顏色返回值*/
int col(int*a)
{
int co=127;
if(*(a)==0)
co=127;
else if(*(a)==2)
co=143;
else if(*(a)==4)
co=191;
else if(*(a)==8)
co=175;
else if(*(a)==16)
co=239;
else if(*(a)==32)
co=223;
else if(*(a)==64)
co=207;
else if(*(a)==128)
co=95;
else if(*(a)==256)
co=159;
else if(*(a)==512)
co=63;
else if(*(a)==1024)
co=111;
else if(*(a)==2048)
co=79;
else if(*(a)==4096)
co=287;
else
co=271;
return co;
}
/*標題字幕2048*/
void p2048(int x,int y)
{
int i;
textcolor(240);
gotoxy(0,0);
for(i=0;i<=500;i++)
{
printf(" ");
}
//2
textcolor(207);
gotoxy(x,y);
printf(" ");
gotoxy(x,y+1);
printf(" ");
gotoxy(x+7,y+2);
printf(" ");
gotoxy(x+7,y+3);
printf(" ");
gotoxy(x,y+4);
printf(" ");
gotoxy(x,y+5);
printf(" ");
gotoxy(x,y+6);
printf(" ");
gotoxy(x,y+7);
printf(" ");
gotoxy(x,y+8);
printf(" ");
gotoxy(x,y+9);
printf(" ");
//0
textcolor(239);
gotoxy(x+13,y);
printf(" ");
gotoxy(x+13,y+1);
printf(" ");
gotoxy(x+13,y+2);
printf(" ");
gotoxy(x+13+7,y+2);
printf(" ");
gotoxy(x+13,y+3);
printf(" ");
gotoxy(x+13+7,y+3);
printf(" ");
gotoxy(x+13,y+4);
printf(" ");
gotoxy(x+13+7,y+4);
printf(" ");
gotoxy(x+13,y+5);
printf(" ");
gotoxy(x+13+7,y+5);
printf(" ");
gotoxy(x+13,y+6);
printf(" ");
gotoxy(x+13+7,y+6);
printf(" ");
gotoxy(x+13,y+7);
printf(" ");
gotoxy(x+13+7,y+7);
printf(" ");
gotoxy(x+13,y+8);
printf(" ");
gotoxy(x+13,y+9);
printf(" ");
//4
textcolor(159);
gotoxy(x+26,y);
printf(" ");
gotoxy(x+26+7,y);
printf(" ");
gotoxy(x+26,y+1);
printf(" ");
gotoxy(x+26+7,y+1);
printf(" ");
gotoxy(x+26,y+2);
printf(" ");
gotoxy(x+26+7,y+2);
printf(" ");
gotoxy(x+26,y+3);
printf(" ");
gotoxy(x+26+7,y+3);
printf(" ");
gotoxy(x+26,y+4);
printf(" ");
gotoxy(x+26,y+5);
printf(" ");
gotoxy(x+26,y+6);
printf(" ");
gotoxy(x+26,y+7);
printf(" ");
gotoxy(x+26,y+8);
printf(" ");
gotoxy(x+26,y+9);
printf(" ");
//8
textcolor(175);
for(i=0;i<10;i++)
{
gotoxy(x+39,y+i);
printf(" ");
}
textcolor(240);
gotoxy(x+42,y+2);
printf(" ");
gotoxy(x+42,y+3);
printf(" ");
gotoxy(x+42,y+6);
printf(" ");
gotoxy(x+42,y+7);
printf(" ");
//長條
ct(35,15,20,1,240);
printf(" Game Sart");
ct(35,18,20,1,240);
printf("How to play");
printf("\n");
printf("\n\n\n Made by Mr Yan");
gotoxy(35-25,15);
textcolor(255);
gotoxy(0,0);
}
/*畫長條函數(shù)*/
void ct(int x,int y,int l,int k,int c)
{
int i=0,j=0;
textcolor(c);
gotoxy(x,y);
for(i=0;i<k;i++)
{
gotoxy(x,y+i);
for(j=0;j<l;j++)
{
printf(" ");
}
}
gotoxy(x+1,y+k/2);
}
void shua(void)
{
gotoxy(0,18);
textcolor(255);
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
gotoxy(0,0);
}
/*勝利畫面測試函數(shù)*/
int test(void)
{
int i,t,yx;
char an;
textcolor(240);
gotoxy(0,0);
for(i=0;i<=500;i++)
{
printf(" ");
}
gotoxy(0,0);
HANDLE hOut=GetStdHandle(STD_OUTPUT_HANDLE);
CONSOLE_CURSOR_INFO cci;
GetConsoleCursorInfo(hOut,&cci);
cci.bVisible=FALSE;
SetConsoleCursorInfo(hOut,&cci);
//printf("\n游戲勝利!t\n重新開始游戲請按1\n繼續(xù)游戲請按2\n退出請按其他鍵3\n"); 2 1 3
/*
2 繼續(xù)選中 textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(38,19);
printf(" Continue ");
2 繼續(xù)平常 textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(49,19);
printf(" Continue ");
1 重新選中 textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(38,20);
printf(" Restart ");
1 重新平常 textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(49,20);
printf(" Restart ");
3 退出選中 textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(38,21);
printf(" Exit ");
3 退出平常 textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(49,21);
printf(" Exit ");
// 0000000000000000000000000 24
*/
shua();
ct(20,19,15,3,207);
printf(" 游戲勝利!");
textcolor(159);
gotoxy(38,19);
printf(" Continue ");
textcolor(239);
gotoxy(49,20);
printf(" Restart ");
textcolor(175);
gotoxy(49,21);
printf(" Exit ");
t=2;
an=75;
yx=0;
for(;;)
{
an=getch();
switch(an)
{
case 72:
if(t==2)
{
t=3;
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(38,21);
printf(" Exit ");
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(47,19);
printf(" Continue ");
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(49,20);
printf(" Restart ");
}
else if(t==1)
{
t=2;
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(38,19);
printf(" Continue ");
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(47,20);
printf(" Restart ");
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(49,21);
printf(" Exit ");
}
else
{
t=1;
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(38,20);
printf(" Restart ");
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(47,21);
printf(" Exit ");
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(49,19);
printf(" Continue ");
}
break;
case 80:
if(t==2)
{
t=1;
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(38,20);
printf(" Restart ");
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(47,19);
printf(" Continue ");
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(49,21);
printf(" Exit ");
}
else if(t==1)
{
t=3;
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(38,21);
printf(" Exit ");
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(47,20);
printf(" Restart ");
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(49,19);
printf(" Continue ");
}
else
{
t=2;
textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(38,19);
printf(" Continue ");
textcolor(240);
gotoxy(36,21);
printf(" ");
textcolor(175);
gotoxy(47,21);
printf(" Exit ");
textcolor(240);
gotoxy(36,20);
printf(" ");
textcolor(239);
gotoxy(49,20);
printf(" Restart ");
}
break;
case '\r':
yx=1;
break;
}
if(yx==1)
{
yx=0;
break;
}
}
shua();
textcolor(255);
gotoxy(0,0);
textcolor(240);
if(t==2)
printf("Continue ");
else if(t==1)
printf("Restart ");
else
printf("Exit ");
return 0;
}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持我們。
上一篇:C語言中system()執(zhí)行cmd命令打開關(guān)閉程序的方法
欄 目:C語言
下一篇:C++發(fā)郵件簡單實例詳解
本文標題:2048小游戲C語言實現(xiàn)代碼
本文地址:http://www.jygsgssxh.com/a1/Cyuyan/796.html
您可能感興趣的文章
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用函數(shù)刪除字符
- 04-02c語言的正則匹配函數(shù) c語言正則表達式函數(shù)庫
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對數(shù)怎么表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段函數(shù)
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排序法函數(shù)
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段函數(shù)
- 04-02C語言中怎么打出三角函數(shù) c語言中怎么打出三角函數(shù)的值
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求階乘


閱讀排行
本欄相關(guān)
- 04-02c語言函數(shù)調(diào)用后清空內(nèi)存 c語言調(diào)用
- 04-02func函數(shù)+在C語言 func函數(shù)在c語言中
- 04-02c語言的正則匹配函數(shù) c語言正則表達
- 04-02c語言用函數(shù)寫分段 用c語言表示分段
- 04-02c語言中對數(shù)函數(shù)的表達式 c語言中對
- 04-02c語言編寫函數(shù)冒泡排序 c語言冒泡排
- 04-02c語言沒有round函數(shù) round c語言
- 04-02c語言分段函數(shù)怎么求 用c語言求分段
- 04-02C語言中怎么打出三角函數(shù) c語言中怎
- 04-02c語言調(diào)用函數(shù)求fibo C語言調(diào)用函數(shù)求
隨機閱讀
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10C#中split用法實例總結(jié)
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-10delphi制作wav文件的方法
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 04-02jquery與jsp,用jquery


