2048小游戏 无限反悔 存档版

本文介绍了一位C语言初学者编写的2048小游戏,实现了棋盘操作、随机生成棋子、反悔功能以及存档加载。代码中使用二维数组表示棋盘,利用srand和rand生成随机数,并通过结构体数组保存游戏状态,以实现反悔操作。此外,还涉及文件操作来实现游戏存档。
摘要由CSDN通过智能技术生成

2048小游戏

C语言小菜鸟,写的一个2048小游戏,不足之处多多包涵

代码实现

头文件

void read();//读档
void save();//存档
void readcheat();//作弊读档
void savecheat();//作弊
void draw();//画棋盘
void init();//棋盘初始化
void clean();//清理棋盘
void MOVE();//去除数字之间的空格
void up();//上移
void down();//下移
void left();//左移
void right();//右移
void playgame();//游戏过程
void addrandom(int num);//向棋盘加入随机数
void gameover();//结束函数
int judge();//判断是否结束
void iswin();//胜利函数

主程序

#include <stdio.h>//Game 2048
#include <time.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#define SIZE 4
#define ENDSCORE 16
#define MAX_TIMES 10000
static int board[SIZE][SIZE];
static int score1=0;//统计总分
static int score2=0;//统计本次移动出现的最大值
static int cal=0;//统计2048出现次数,仅第一次显示胜利
static int num=0;
static int *q = &score1;
static int times=0;
struct back {
   
	int pre_score;
	int pre_chess[SIZE][SIZE];
};
struct back pre_board[MAX_TIMES];

int main() {
   
	init();
	addrandom(4);
	addrandom(4);
	printf("Please select\n");
	printf("if you want 2:4=n:1,enter n\n");
	scanf("%d",&num);
	srand((unsigned)(time(NULL)));
	draw();
	playgame();
	return 0;
}
//读取以反悔
void readcheat() {
   
	times--;
	int i,j;
	for(i=0; i<SIZE; i++)
		for(j=0; j<SIZE; j++) {
   
			board[i][j]=pre_board[times-1].pre_chess[i][j];
			score1=pre_board[times-1].pre_score;
		}
}
//存下每一步的棋盘
void savecheat() {
   
	int i,j;
	for(i=0; i<SIZE; i++)
		for(j=0; j<SIZE; j++) {
   
			pre_board[times].pre_chess[i][j]=board[i][j];
			pre_board[times].pre_score=score1;
		}
	times++;
}
//读取存档
void read() {
   
	FILE *fp = fopen("date.txt","r");
	fread(board,sizeof(board[0][0]),sizeof(board)/sizeof(board[0][0]),fp);
	fread(q,sizeof(scor
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值