conio.h参考c4droid-code/conio.h at main · qaiu/c4droid-code · GitHub
代码语言:javascript复制/*
**2048游戏v1.1
**by 千百度
**for C4droid
**2017/6/17 23:59
*/
#include <stdio.h> //输出printf()
#include <string.h> //内存拷贝memcpy()
#include <conio.h> //清屏clrscr()
#include <time.h> //随机数种子time();
#include <stdlib.h> //随机数rand,初始化种子srand
#include <math.h> //对数函数log()
int map[4][4],newmap[4][4]={0};//地图和空地图
int score=0,best=0;//当前分数和最高分
int logt(int n)//目标块的2的指数,用于控制颜色
{
return log(n)/log(2);//对数函数换底公式
}
void initmap()//初始化地图,移动后随机位置生成数字2
{
int kk,k=0;//kk随机生成2或4的几率,k随机空格的位置
int *p[16];//指针数组储存二维数组的所有元素地址
for (int i=0;i<4;i )
for (int j=0;j<4;j )
if (map[i][j]==0)
{
p[k]=&map[i][j];
k ;//地图数组为0的元素为空格,k空格的最大数
}
k=rand()%k;//在k范围生成一个随机数
kk=rand();
*p[k]=kk<9?2:4;//有90%几率生成2,10%生成4
}
void drawmap()//画地图
{
printf("tt 33[40;37;1m2048游戏v1.1 33[0mnnt 33[40;36m 当前分数:]nt 33[33m 最高纪录:]nt 33[40;32m┏━━━━━━━━━━━━━━━━━━━━ 33[1m┓nt│",score,best);
for (int i=0;i<4;i )
{
for (int j=0;j<4;j )
if (map[i][j])
printf(" 33[4%d;3%d;1mM 33[0m",(logt(map[i][j]) 1)%7 1,logt(map[i][j])%7,map[i][j]);//加入了颜色代码long2N控制颜色
else
printf(" 33[40;37;5m 33[0m");
if (i<3)
printf("