怎么编写一个2048游戏
栏目分类:源码分享 发布日期:2020-01-27 浏览次数:次
2048小游戏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
);
/*胜利画面测试函数声明*/
int
test(
void
);
/*字体空格声明*/
void
kg(
int
*a);
/*画长条函数的声明*/
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);
}
/*显示函数*/
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);
}
/* 产生随机数 */
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));
}
/* 主函数*/
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
(
" 通过按数字键移动数字,合并相同的数字来的取得更大的数。"
);
gotoxy(13,9);
printf
(
" 得到2048时游戏即胜利,当然您也可以选择继续挑战。"
);
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);
/*设置时间种子*/
srand
((
int
)
time
(0));
/* 设置初始值 */
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下的系统清屏函数*/
//system ("cls");
/* 判断最高分 */
if
(score > scoremax)
scoremax = score;
/* 判断是否胜利(是否含有2048) */
for
(j = 0; j < 16; j++)
{
if
(a[j] == 2048 && jx == 0)
{
/* 胜利时输出游戏结果 */
/*显示*/
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
;
}
/* 继续游戏 */
else
if
(t == 2)
{
jx = 1;
shua();
}
else
{
shua();
ct(32,19,15,3,207);
printf
(
" 游戏已退出!"
);
textcolor(255);
gotoxy(0,0);
getch();
return
0;
}
}
}
/* 决定是否产生新的数及其位置以及游戏是否失败 */
/* 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
;
}
}
/* 移动有效时且有空位时产生新数 */
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)
{
/* 失败时输出游戏结果 */
/*显示*/
prin(a,&score,&scoremax);
shua();
ct(20,19,15,3,271);
printf
(
" 游戏结束!"
);
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
;
/* 显示结果 */
prin(a,&score,&scoremax);
}
return
0;
}
/*显示函数*/
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);
}
/*画长条函数*/
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);
}
/*胜利画面测试函数*/
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继续游戏请按2\n退出请按其他键3\n"); 2 1 3
/*
2 继续选中 textcolor(240);
gotoxy(36,19);
printf(" ");
textcolor(159);
gotoxy(38,19);
printf(" Continue ");
2 继续平常 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;
}
本文由IT教学网整理发布,转载请注明出处:http://www.itjx.com/ziyuan/yuanma/550.html