c语言小游戏_C语言实现2048小游戏
发布日期:2021-10-31 07:32:00 浏览次数:7 分类:技术文章

本文共 3130 字,大约阅读时间需要 10 分钟。

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

239d624d4b38473f96107168ff1d06a0.png

#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("╔══════════════════════════════════════════════╗");

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

printf("╟──────────────────────────────────────────────╢");

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

printf("║ ┌───┐ ║");

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

printf("║ └───┘ ║");

printf("║ ┌───┐ ║");

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

printf("║ └───┘ ║");

printf("║ ┌───┐ ║");

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

printf("║ └───┘ ║");

printf("║║");

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

printf("║ ║");

printf("");

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("输入了非法选项,请重新选择!");

}

}

}

void Rule_of_game()

{

system("cls");//清屏

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

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

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

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

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

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

printf("╚══════════════════════════════════════════════════════════════════════════════════╝");

system("pause");//暂停

system("cls");//清屏

}

void Begin(int max)

{

int score = 0;

int sign = 1;

int h, l, cnt = 0;

int *p_cnt = &cnt;

while(1) {

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

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

printf("╟──────────────────────────────────────────────╢");

printf("║移动: ┌───┐ 存档: 读档: 退出: ║");

printf("║ │ W │ ║");

printf("║ ┌───┼───┼───┐ ┌───┐ ┌───┐ ┌───┐ ║");

printf("║ │ A │ S │ D │ │ I │ │ O │ │ P │ ║");

printf("║ └───┴───┴───┘ └───┘ └───┘ └───┘ ║");

printf("╚══════════════════════════════════════════════╝");

while(1){

if(sign == 1){

h = Random_number2();

l = Random_number2();

if(a[h][l] == 0){

a[h][l] = Random_number1();

cnt ++;

break;

}

}

else{

break;

}

}

Table();//打印棋盘

printf("移动的步数:%d当前得分:%d最高记录:%d

转载地址:https://blog.csdn.net/weixin_39934257/article/details/110617277 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java bufferedimage_Java 将word文档转换为PNG、XPS、RTF等格式
下一篇:javaweb过滤器_JavaWeb - Filter 和 Listener

发表评论

最新留言

路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年03月10日 02时53分01秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

ad19 导出step 没有pcb_几款主流PCB软件哪个最好用,你用过几款? 2019-04-21
json mysql 字段 默认值_Newtonsoft.Json 六个超简单又实用的特性,值得一试 【上篇】... 2019-04-21
ocdma相干非相干_《Acconeer 60GHz脉冲相干雷达芯片:A111》 2019-04-21
修改表格字体颜色_Excel技巧:Excel如何修改字体颜色 2019-04-21
native react 变颜色 点击_React Native主动更改StackNavigator标头颜色 2019-04-21
prism项目搭建 wpf_WPF MVVM使用prism4.1搭建 2019-04-21
python发微信红包群_用Python实现微信自动化抢红包,再也不用担心抢不到红包了... 2019-04-21
python中func自定义函数_Python函数之自定义函数&作用域&闭包 2019-04-21
wget连接指定端口_端口通不通 telnet wget ssh 2019-04-21
eureka 调用服务_Spring Cloud微服务架构从入门到会用(二)—服务注册中心Eureka... 2019-04-21
easyexcel 工具类_问了个在阿里的同学,他们常用的15款开发者工具! 2019-04-21
mysql统计结果大于0时返回true_mysql表查询练习 2019-04-21
c语言对结构体排序中间变量,求助:c语言怎么实现结构体的排序? 总是弄不对啊... 2019-04-21
c语言宏定义只能在最前面吗,C语言宏定义注意事项 2019-04-21
android悬浮窗服务卡死,Android 悬浮窗兼容问题谈 2019-04-21
表格相关的html语言,HTML标记语言——表格标记 2019-04-21
web聊天界面html,PC端Web聊天界面+代码分享(HTML+CSS) 2019-04-21
cmake qt 添加路径 项目_CMake配置Qt工程 2019-04-21
使用python开发的软件协议_WEB开发——Python WSGI协议详解 2019-04-21
冰点下载器手机版apk_冰点文库下载器 2019-04-21