地址:联系地址联系地址联系地址
电话:020-123456789
传真:020-123456789
邮箱:admin@aa.com
下一个源代码
include 标准库.h
include conio.h
#include 字符串.h
小编微信13652748813 QQ 897775054
int MAP[4][4],守护守护gre;
int 添加(int n)
{
srand((无符号整数)时间(0));
int num=rand();
int tf=num % 2;
整数x,y,i;
x=数% 4;
srand((unsigned int)time(0) + (unsigned int)num);
y=随机数();
y%=4;
如果(tf)
数=2;
别的
数=4;
如果(n==0)
{
映射[x][y]=num;
}
否则如果(n==1)
{
如果(MAP[3][y]==0)
MAP[3][y]=num;
别的
对于(i=0; i 4; i++)
如果(MAP[3][i]==0)
{
MAP[3][i]=num;
休息;
}
}
否则如果(n==2)
{
如果(地图[0][y]==0)
地图[0][y]=num;
别的
对于(i=0; i 4; i++)
如果(地图[0][i]==0)
{
MAP[0][i]=num;
休息;
}
}
否则如果(n==3)
{
如果(地图[x][3]==0)
MAP[x][3]=num;
别的
对于(i=0; i 4; i++)
如果(地图[i][3]==0)
{
MAP[i][3]=num;
休息;
}
}
否则如果(n==4)
{
如果(地图[x][0]==0)
映射[x][0]=num;
别的
对于(i=0; i 4; i++)
如果(地图[i][0]==0)
{
MAP[i][0]=num;
休息;
}
}
}
int 移动(无效)
{
我 ,k,甜心甜心t;
int tf=0;
对于(k=0;k 4;k++)
{
诠释n=4;
而(n--)
对于(i=0; i 3; i++)
如果(地图[i][k]==0)
{
对于(t=i; t 3; t++)
{
映射[t][k]=映射[t + 1][k];
映射[t+1][k]=0;
tf=1;
}
}
对于(i=0; i 3; i++)
{
如果(MAP[i][k]==MAP[i + 1][k])
{
映射[i][k] *=2;
gre +=MAP[i][k];
如果(MAP[i][k]==2048)
返回0;
对于(t=i + 1; t 3; t++)
{
映射[t][k]=映射[t + 1][k];
映射[t+1][k]=0;
tf=1;
}
}
}
}
如果(tf)
添加(1);
返回1;
}
int movdow(无效)
{
我 ,小游戏h小游戏k ,守护守护t;
int tf=0;
对于(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;
}
小编微信 13652748813 QQ 897775054
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("");
printf ("恭喜达到2048 !n");
}
return tf;
}
int pd (void)
{
int i,小游戏h小游戏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 ("游戏结束!n");
return 1;
}
int pri (void)
{
printf ("得分:%dn",守护守护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 5F");
printf ("nt控制台版nn");
printf ("游戏规则(如同名手游):n");
printf ("t开始方格内会出现2或者4等这两个小数字 ,n");
printf ("t玩家只需要上下左右(方向键控制)其中一个方向来移动出现的甜心甜心数字,n");
printf ("t所有的小游戏h小游戏数字就会向滑动的方向靠拢,n");
printf ("t而滑出的守护守护空白方块就会随机出现一个数字 ,n");
printf ("t相同的甜心甜心数字相撞时会叠加靠拢 ,n");
printf ("t然后一直这样,小游戏h小游戏不断的守护守护叠加最终拼凑出2048这个数字就算成功。n");
printf ("nn!输入任意非零字符开始游戏!n(建议将控制台设置为大字体)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 ("按任继续游戏!输入0退出程序 !小游戏h小游戏n");__箰讆____璺拶__}
return 0;
}
运行结果
恩恩 冬至 吃水饺的 同时 还可以玩小游戏 感觉爽歪歪
当然 游戏归游戏 不要忘记学习哦 以下是打开双腿粗大噗呲噗呲白浊VIP课程介绍
c++VIP 课程介绍
VIP课堂优势
投资学习是终身授益的,伴随你一生的技术 ,相信自己技术能改变你一生的命运。
关注微信公众号 :编程语言
如果对这方面感兴趣或者在学习C/C++的过程中有什么问题的话,可以加群 :599997,群内有C/C++资料 ,也会有人解答问题,大家一起学习 ,一起交流。希望每位学习C/C++的人都能学有所成。
地址:联系地址联系地址联系地址
电话:020-123456789
传真:020-123456789
邮箱:admin@aa.com
0.3356