c语言版2048

  1. 环境准备:vc系列(vc 6.0,vs2005等等)编译器,下载easy x
  2. easy x下载链接
  3. easy x简介:相当于多加了一个库函数,头文件为:#include < graphics.h > 可以绘图,加载图片,音乐,获取鼠标信息。
  4. easy x官网链接

二. 效果截图

四. 部分功能实行思路

1. 各种界面的绘制所用的的函数

  • setbkcolor()//设置背景颜色
  • setfillcolor()//设置填充颜色
  • settextcolor()//设置字体颜色
  • setfont()//设置字体大小,字体样式
  • drawtext()//指定位置写入字符串
  • solidroundrect()//绘制圆角矩形
  • 具体用法可以看easy x帮助文件

2. 鼠标的应用

    MOUSEMSG m;//定义鼠标类型变量
    while(1)
        m=GetMouseMsg();//获取鼠标信息
        if(m.uMsg==WM_LBUTTONDOWN)//此时鼠标左键按下
            if(m.x>WIDTH/2-45&&m.x<WIDTH/2+45&&m.y>HEIGHT/3&&m.y<HEIGHT/3+30)/\/鼠标座标所在位置
                start();
    getch();

更多操作可以看easy x的帮助

3. 图片的加载

IMAGE img0;//定义图片类型变量
loadimage(&img0,"pic\\0.jpg");//类似于赋值
putimage(i*165+30,j*165+230,&img0);//将图片写入屏幕上

4. 随机位置产生数字块

void rands()
    int x,y,temp,num;
    srand((int)time(0));
    while(1)
        x=rand()%4;
        y=rand()%4;
        temp=rand()%5;
        if(temp==1)
            num=4;
            num=2;
        if(map[y][x]==0)//随机生成的坐标为0时,将2/4赋给它,并跳出循环
            map[y][x]=num;
            break;
        if(judge())//当格子内没有空位置并且有相邻相同的时跳出循环
            break;

5. 失败判断

int judge()
    int i,j;
    //检查是否有0值
    for(i=0;i<4;i++)
        for(j=0;j<4;j++)
            if(map[i][j]==0)
                return 0;
    //查看边界是否有相同的
    for(i=0;i<4;i+=3)
        for(j=1;j<3;j++)
            if(map[i][j-1]==map[i][j]||map[i][j+1]==map[i][j])
                return 1;
    for(i=1;i<3;i++)
        for(j=0;j<4;j+=3)
            if(map[i-1][j]==map[i][j]||map[i+1][j]==map[i][j])
                return 1;
    //查看中心是否有相同
    for(i=1;i<3;i++)
        for(j=1;j<3;j++)
            if(map[i-1][j]==map[i][j]||map[i+1][j]==map[i][j]||map[i][j-1]==map[i][j]||map[i][j+1]==map[i][j])
                return 1;
    lose();//失败界面

6. 与输入有关的更新(以上为例)

if(keyboard=='w'||keyboard=='W'||keyboard==72)//上
        for(n=0;n<4;n++)//次数
        for(i=1;i<4;i++)//行
        for(j=0;j<4;j++)//列
            if(map[i][j]!=0)//若当前元素不为0
                if(map[i-1][j]==0)//上方元素为0,当前元素上移
                    map[i-1][j]=map[i][j];
                    map[i][j]=0;
                if(map[i-1][j]==map[i][j])//当前元素和上方元素相同碰撞
                    num=map[i][j]*2;//得分
                    score_i=score_i+num;//本次操作得分
                    map[i-1][j]=map[i][j]*2;
                    map[i][j]=0;
            score=score+score_i;//目前累计的分
            rands();//随机位置生成数组块

五.源代码

c语言版2048一.前言环境准备:vc系列(vc 6.0,vs2005等等)编译器,下载easy xeasy x下载链接 easy x简介:相当于多加了一个库函数,头文件为:#include 可以绘图,加载图片,音乐,获取鼠标信息。easy x官网链接二. 效果截图三. 程序框架和函数调用关系1. 所有函数main() 提示:这里可以添加本文要记录的大概内容: 昨天晚上突然想用c2048,觉得学了这么久,没点什么东西有点心空空,就乘着备考时间来看,以前就想过,也就想想,一直没去,今天没什么课,而且还是网课,然后就先看看别人的代码之后,自己理解之后又重新敲了一遍,了一天也算是了个简易的20482048的代码也不难,主要就是使用数组对数组的操作,再对数组移动改变的时候的逻辑清楚就没问题了。 的很仓促,代码不怎么好看,以后有时间会慢慢优化并增加一些功能。 提示:以下是本篇文章正文内容,下面案例可.
单纯的画线、画圆、画矩形这样的几何图形虽然能增强界面的美观性,但是在涉及到一些更加复杂的图形时,我们可就很难通过前面介绍的这几种方式来完成了,虽然可以但工作量巨大。 所以本章介绍一种贴图的方法,将现成的准备好的图片呈现在自己的程序界面中。 1、准备图片 我们常见的图片格式有JPEG也称JPG或(.jpg)就是最普遍的一种图片存储格式,还有PNG (.png)透明图片的一种存储形式,还有GIF(.gif)动图的存储格式,这种格式编程暂不...
#include <stdio.h> #include <stdlib.h> #include <graphics.h>/*用到graphics,此处没有图形库插件,可能会报错,只需安装插件EasyX插件就行.*/ #include <windows.h>//清屏时用到的头文件 #include <conio.h>//getch函数用到的头文件 #include <time.h> int i,j;