本篇文章给大家谈谈c语言2048代码及分析,以及2048c语言程序对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
1、C语言实现2048游戏2、C语言小程序2048中有两个调用函数,他们的作用是什么啊,哪位大神帮帮我,可以给解释一下吗3、北理工C语言题目【游戏】20484、求2048游戏C语言code!5、c语言:有两个正整数m,n两者之积为2048,并且两者之和要最小,求出m,n
C语言实现2048游戏
原文链接:
C语言实现2048小游戏—粤嵌GE6818嵌入式系统实训 部分功能演示视频。
实现的全部功能:
1、字模显示封面组员名字
2、完成2048游戏在板子上的运行
3、成功或者失败需要有标志也可以计分
4、成功或者失败后可以重新开心
C语言实现2048小游戏—粤嵌GE6818嵌入式系统实训—全部功能演示
C语言小程序2048中有两个调用函数,他们的作用是什么啊,哪位大神帮帮我,可以给解释一下吗
int isempty(int n[][SIZE]) //统计数组中零元素的个数
{
int i,j,count=0;
for(i=0;iSIZE;i++)
for(j=0;jSIZE;j++)
if(n[i][j]==0)
count++;
return count;
}
int isfull(int n[][SIZE]) //统计数组当中元素的互异性
{
int i,j,count=0;
for(i=0;iSIZE;i++) {
for(j=1;jSIZE-1;j++) {
if(n[i][j]==n[i][j+1]||n[i][j]==n[i][j-1])
count++; }
}
for(j=0;jSIZE;j++) {
for(i=1;iSIZE-1;i++) {
if(n[i][j]==n[i+1][j]||n[i][j]==n[i-1][j])
count++;
}
}
return count0?0:1;
}
在函数isfull( )中,如果二维数组具有这样的特点:相邻元素互不相同,则返回1,否则返回0。例如有下面前两组二维数组,它们当中任意一个元素的相邻元素都不相同。在第三组二维数组当中,存在相邻元素相同的情况,每检测出一次相同count+1,这里count=19,因此最后条件判断语句count0成立,则返回0。
12345 010101 101010
23456 101010 001010
34567 010101 101000
(一) (二) (三)
北理工C语言题目【游戏】2048
#includestdio.h
#includestring.h
int main()
{
int cpp(int *);
int input(int *, int );
int n,a[4][4];
scanf(“%d”,n);
for(int i=0;in;i++)
{
input(a, n);
cpp((intput));
}
return 0;
}
int input(int *a, int n)
{
int a[4][4],n;
for(int i=0;i4;i++)
for(int j=0;j4;j++)
scanf(“%d”,a[i][j]);
}
int cpp(int *p)
{
for(int i=0;i4;i++)
{
for(int j=0;j4;j++)
{if(a[i][j]==a[i+1][j]||a[i][j]==a[i][j+1]) {goto moto;break;}
else goto error;break;} }
moto:{printf(“Yes.\n”);return 0;}
error:{printf(“No.\n”);return 0;}
}
求2048游戏C语言code!
我还真有个 这是个VC版的 网上找的 我只是搬运工 Linux版本的有点麻烦,用的ncurse。如果要的话我再给
#include stdio.h
#include stdlib.h
#include time.h
#include conio.h
#include string.h
int MAP[4][4],gre;
int add(int n)
{
int num = rand();
int tf = num % 2;
int x,y,i;
x = num % 4;
srand((unsigned int)time(0));
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)
{
char key;
int tf = 1;
fflush(stdin);
key = getch();
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 (“恭喜达到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 (“游戏结束!\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;
char s[100];
system(“COLOR 5F”);
printf (“\n\t【2048】控制台版\n\n”);
printf (“游戏规则(如同名手游):\n”);
printf (“\t开始方格内会出现2或者4等这两个小数字,\n”);
printf (“\t玩家只需要上下左右(方向键控制)其中一个方向来移动出现的数字,\n”);
printf (“\t所有的数字就会向滑动的方向靠拢,\n”);
printf (“\t而滑出的空白方块就会随机出现一个数字,\n”);
printf (“\t相同的数字相撞时会叠加靠拢,\n”);
printf (“\t然后一直这样,不断的叠加最终拼凑出2048这个数字就算成功。\n”);
printf (“\n\n!输入任意非零字符开始游戏!\n(建议将控制台设置为大字体)\n”);
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退出程序!\n”);
}
return 0;
}
c语言:有两个正整数m,n两者之积为2048,并且两者之和要最小,求出m,n
#includestdio.h
#includemath.h
int main()
{
int i,m,n,a,sum=2048;
for (i = 1;i = sqrt(2048.0);i++)
{
a = 2048 / i;
if (2048.0 / i == a
{
if (i + a sum)
{
sum = i + a;
m = i;
}
}
}
printf(“m=%d,n=%d\n”,m,2048 / m);
return 0;
}
c语言2048代码及分析的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于2048c语言程序、c语言2048代码及分析的信息别忘了在本站进行查找喔。