c语言编写的2048游戏代码,大家可以参考一下这些
来源:互联网 发布:釜山外国语大学 知乎 编辑:程序博客网 时间:2024/06/06 06:41
2048_launcher.c
#include <stdio.h>#include <stdlib.h>#include <Windows.h>void main(){printf("正在启动中,请稍后!\n");Sleep(1000);system("bin\\Version\\games\\0.1\\0.1.exe");}补充:0.1.c
#include<stdio.h>#include<stdlib.h>#include<conio.h>#include<time.h>#define WIN 256 // 可以修改决定游戏输赢的值// 矩阵数组int num[4][4]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};int t[5]={0,0,0,0,0}; // 辅助数组int move=0; // 记录移动步数int score=0; // 记录得分情况int max=0; // max表示游戏输赢,max=WIN时赢int change=1;// 产生一个随机位置和随机数void Srand(){ int i,j; do// 产生一个随机位置,如果产生的位置有数据,就继续随机生成一个新位置 { i=((unsigned)rand())%4; j=((unsigned)rand())%4; }while(num[i][j]!=0); if(((unsigned)rand())%4==0) { // 产生一个随机数,如果该数对4取余=0,则填充为4 num[i][j]=4; } else { num[i][j]=2; } move++;}void Print(){ int j,i; system("CLS"); printf("*~~~~~~~~2048~~~~~~~*\n"); printf("*author: 亚威 *\n"); printf("*得分: %d 步数: %d \n",score,move); printf("*~~~~~~~~~~~~~~~~~~~*\n"); for(i=0;i<=3;i++) { for(j=0;j<=3;j++) { if(num[i][j]==0) printf("* "); else printf("*%4d",num[i][j]); } printf("*\n*~~~~~~~~~~~~~~~~~~~*\n"); }}// 消除t数组中前面和中间出现的0void fun(){ int i,j; for(i=0;i<=3;i++) { if(t[i]==0) { for(j=i+1;j<=3;j++) { if(t[j]!=0) { change=1; break; } } t[i]=t[j]; t[j]=0; } if(j>=3) break; }}// 合并操作void hebing(){ int i; for(i=0;i<=2;i++) { if((t[i]!=0)&&(t[i]==t[i+1])) { t[i]*=2; score+=t[i]; change=1; t[i+1]=0; } if(max<t[i]) max=t[i]; }}// 合并相邻且相等的两个数void add(){ fun(); // 消除前面的和中间的0 hebing(); // 合并相邻且相等的两个数 fun(); // 再次消0}int main(){ int i,j; int gameover=1; // 产生一个随机位置 srand((unsigned)time(NULL)); max=0; while(gameover&&(max<WIN)) { if(change) { Srand(); // 产生一个随机位置和随机数 } change=0; Print(); // 显示界面 char in=getch(); // 读取操作命令 switch(in) { case 'w': case 'W': for(i=0;i<=3;i++) { // 依次处理第1至第4列 for(j=0;j<=3;j++) { // 把第i列的数据依次赋给辅助数组t t[j]=num[j][i]; } add(); // 核心:合并相邻且相等的两个数 for(j=0;j<=3;j++) { // 把处理后的数据依次放到矩阵对应位置 num[j][i]=t[j]; } } break; case 's': case 'S': for(i=0;i<=3;i++) { // 依次处理第1至第4列 for(j=0;j<=3;j++) { // 把第i列的数据依次赋给辅助数组t t[3-j]=num[j][i]; } add(); // 核心:合并相邻且相等的两个数 for(j=0;j<=3;j++) { // 把处理后的数据依次放到矩阵对应位置 num[j][i]=t[3-j]; } } break; case 'a': case 'A': for(i=0;i<=3;i++) { // 依次处理第1至第4列 for(j=0;j<=3;j++) { // 把第i列的数据依次赋给辅助数组t t[j]=num[i][j]; } add(); // 核心:合并相邻且相等的两个数 for(j=0;j<=3;j++) { // 把处理后的数据依次放到矩阵对应位置 num[i][j]=t[j]; } } break; case 'd': case 'D': for(i=0;i<=3;i++) { // 依次处理第1至第4列 for(j=0;j<=3;j++) { // 把第i列的数据依次赋给辅助数组t t[3-j]=num[i][j]; } add(); // 核心:合并相邻且相等的两个数 for(j=0;j<=3;j++) { // 把处理后的数据依次放到矩阵对应位置 num[i][j]=t[3-j]; } } break; } gameover=0; for(i=0;i<=3;i++) { for(j=0;j<=3;j++) { if(num[i][j]==0) gameover=1; } } if((gameover==0)&&(change==0)) break; } Print(); if(max>=WIN) { printf("你赢了!\n"); printf("你很牛啊!!!\n"); } else { printf("游戏结束!\n"); printf("努力啊!!!\n"); } getch(); return 0;}
0 0
- c语言编写的2048游戏代码,大家可以参考一下这些
- 关于jsp上传文件的代码,大家可以参考一下。
- 做技术的大家可以看一下这些网站,
- 谢谢了... 大家好.能帮我做一下C语言的这些题吗
- 用c语言代码编写的游戏“简易五子棋”
- OC语言,逻辑性的模拟通讯录,大家可以作参考
- 谢谢了 大家好.能帮我做一下C语言这些题吗
- 这些题目,来测试一下你的C语言水平
- 上周末没事写了一个UDP的例子 大家感兴趣的可以参考一下
- 以下是在网上看到的一个用C语言编写的木马源程序代码大家
- 关于C语言变量和函数命名总结以下几点,大家可以讨论交流一下:
- 请大家看一下一个c语言中的链表问题,下面的代码是有错误的!!请大家说出错误的原因,以及修改的方法!!!
- 2048游戏C语言代码
- 2048游戏C语言代码
- 编写安全的Symbian C 游戏代码
- 【C语言】用C语言实现三子棋游戏的编写
- 给大家做了一个关于日程的例子,可以参考一下,对进一步学习有所帮助
- C语言代码编写
- 作用域初步(一):数据为什么会绑定错误
- 单例模式
- 原ChinaUnix博客地址
- 第一行代码源码
- JavaScript ---- 通栏滚动
- c语言编写的2048游戏代码,大家可以参考一下这些
- post请求方式和get请求方式等网络请求方式总结
- 容斥例程 hdu 4135 Co-prime
- CGContextRef详解
- aidl使用采坑记
- Docker部署Jenkins并发布web服务
- 过滤文件内容(windows和Mac及ubuntu)
- shell常用命令
- Android 实现点击按钮获取验证码 60秒后重新获取效果