2048c语言程序,C语言实现2048小游戏

本文实例为大家分享了C语言实现2048游戏的具体代码,供大家参考,具体内容如下

滑块有颜色、有最高分(用到文件)

#include

#include

#include /*使用getch()函数*/

#include

#include /*使用Sleep()函数*/

void Menu();//菜单

void Rule_of_game();//游戏规则

void Begin(int max); //开始

void Table();//打印4×4方格

int Random_number1();//产生2或4的随机数

int Random_number2();//产生0、1、2、3的随机数

int Get(int *p_cnt, int score);//输入指令

void Move();//保留上一次的棋盘布局

int If_move();//判断是否移动

int Over();//判断是否结束

void Establish_game();//创建用于保存最高分的文件

void Write_max(int score);//向2048游戏-最高记录写入最高分

int Read_max();//读出最高分记录的文件

void Establish_file();//创建存档文件

void Write_file(int *p_cnt, int scort);//存档

int Read_file(int *p_cnt);//读档

void again();//是否继续游戏

int color(int c);//更改颜色

void box_color(int x);//不同数值对应不同颜色

int a[4][4] = {0};// 定义全局的二维数组

int A[4][4]; //保留上一步的棋局

char *name_max = "2048游戏-最高记录";

char *name_file = "[空白]-2048游戏";

int main() {

system("mode con cols=90 lines=30");

system("title 2048超级大大型游戏"); //程序标题

system("color F0");//F 表示背景颜色,0表示前景颜色

Menu();

system("pause"); //暂停,输入任意键继续

system("cls"); //清屏

again(); //是否继续游戏

return 0;

}

void Menu() //菜单

{

printf("\t\t╔══════════════════════════════════════════════╗\n");

printf("\t\t║ 欢迎使用由[空白]制作的2048超级大大型游戏 ║\n");

printf("\t\t╟──────────────────────────────────────────────╢\n");

printf("\t\t║请输入选项: ║\n");

printf("\t\t║ ┌───┐ ║\n");

printf("\t\t║ │ 1 │ 游戏规则 ║\n");

printf("\t\t║ └───┘ ║\n");

printf("\t\t║ ┌───┐ ║\n");

printf("\t\t║ │ 2 │ 开始游戏 ║\n");

printf("\t\t║ └───┘ ║\n");

printf("\t\t║ ┌───┐ ║\n");

printf("\t\t║ │ 3 │ 继续游戏 ║\n");

printf("\t\t║ └───┘ ║\n");

printf("\t\t║ ┌───┐ ║\n");

printf("\t\t║ │ 4 │ 退出游戏 ║\n");

printf("\t\t║ └───┘ ║\n");

printf("\t\t╚══════════════════════════════════════════════╝\n");

int x = 1, max = 0;

while(x){

switch(getch()){

case '1':

x = 0;

Rule_of_game();//游戏规则

Menu();

break;

case '2':

x = 0;

system("cls");//清屏

Establish_game(name_file);//创建新的读档文件

Establish_game(name_max);//创建新的保存最高记录的文件

Begin(max); //开始游戏

break;

case '3':

x = 0;

system("cls");//清屏

max = Read_max();//读取之前的最高记录

Begin(max); //开始游戏

break;

case '4':

exit(0);

default:

printf("输入了非法选项,请重新选择!\n");

}

}

}

void Rule_of_game()

{

system("cls");//清屏

printf("╔══════════════════════════════════════════════════════════════════════════════════╗\n");

printf("║本游戏通过按键W、S、A、D(不区分大小写)四个键分别控制滑块上移、下移、左移和右移。║\n");

printf("║滑块移动的过程中,如有相邻且相等数字的滑块将会相加,并获得相应的分数。 ║\n");

printf("║当棋盘上的所有位置均有数字,且不能合成,则游戏结束。本游戏未设置游戏成功。 ║\n");

printf("║游戏过程中输入I即为存档并退出游戏,输入O即为读档,输入P则退出游戏。 ║\n");

printf("║“开始游戏”则清除最高记录及存档、“继续游戏”则保存之前的最高记录,

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值