实训感言
第一次实训,啥也不知道,各种文档啥的做的挺累的,代码大概花了一天半搞完,然后测试修改,最终定稿,能力也确实得到了提高
组成
因为是小游戏嘛,用户体验感挺重要的,在网上自学了插入音乐,多线程等方面
- 精美的开始页面,然后有几个功能可供选择(继续游戏,新游戏,音乐选项等)
- 打印棋盘
- 移动合并函数
- 判断胜负函数
- 统分函数
- 游戏读取保存函数
- 游戏结束界面函数
- 音乐播放函数等
这里我只列出了主要的函数
话不多说直接上源代码
因为要实现一些功能需要用到一些库,学校电脑的vc没有,我用的是自己下载的dev c++
#include<stdio.h>
#include<windows.h> //颜色 清屏
#include<conio.h> //getch
#include<stdlib.h> //万能表头
#include<time.h> //随机数种子
#include <math.h> //多线程
#include <pthread.h> // 随机数种子
#include<mmsystem.h> //音乐
int score=0;
int high=0;
void kaitou();
int temp=1;
int temp2=0;
void saveScore()
{
FILE *fp;//文件指针
fp=fopen("Score.txt","w");//‘w’以只写的方式打开,成功即指向那个地址 ,如果不存在自动新创,如存在即删掉原文件再写入
if(!fp)
{
printf("存储失败");
return;
}
fprintf(fp,"%d",high);//赋值
fclose(fp);//关闭
}
int loadScore()
{
FILE *fp;
int a;
fp=fopen("Score.txt","r");//‘r’只读
if(!fp)
{
printf("读取失败");
return 0;
}
fscanf(fp,"%d",&a);//存储a
fclose(fp);
return a;
}
void saveGame(int a[4][4])
{
FILE *fp;
int i,j;
fp=fopen("Game.txt","w");
if(!fp)
{
printf("存储失败");
return;
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
fprintf(fp,"%d ",a[i][j]);
}
fclose(fp);
}
void loadGame(int a[4][4])
{
FILE *fp;
int i,j;
fp=fopen("Game.txt","r");
if(!fp)
{
printf("存储失败");
return;
}
for(i=0;i<4;i++)
for(j=0;j<4;j++)
{
fscanf(fp,"%d",&a[i][j]);
}
fclose(fp);
}
void bangzhu()
{
system("CLS");
int k;
printf(" 游戏规则 \n");
printf("\n");
printf(" 首先先将输入法改为英文\n");
printf("\n");
printf(" 通过 W \n");
printf(" ASD 控制数字移动 \n");