c语言版2048
-
环境准备:vc系列(vc 6.0,vs2005等等)编译器,下载easy x
-
easy x下载链接
-
easy x简介:相当于多加了一个库函数,头文件为:#include < graphics.h > 可以绘图,加载图片,音乐,获取鼠标信息。
-
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;
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)
if(map[i-1][j]==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()
提示:这里可以添加本文要记录的大概内容:
昨天晚上突然想用c写个2048,觉得学了这么久,没写点什么东西有点心空空,就乘着备考时间来写写看,以前就想过,也就想想,一直没去写,今天没什么课,而且还是网课,然后就先看看别人写的代码之后,自己理解之后又重新敲了一遍,写了一天也算是写了个简易的2048。
2048的代码也不难,主要就是使用数组对数组的操作,再对数组移动改变的时候的逻辑清楚就没问题了。
写的很仓促,代码不怎么好看,以后有时间会慢慢优化并增加一些功能。
提示:以下是本篇文章正文内容,下面案例可.
单纯的画线、画圆、画矩形这样的几何图形虽然能增强界面的美观性,但是在涉及到一些更加复杂的图形时,我们可就很难通过前面介绍的这几种方式来完成了,虽然可以但工作量巨大。
所以本章介绍一种贴图的方法,将现成的准备好的图片呈现在自己写的程序界面中。
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;