Jay Chan 用 C 语言写的一个迷你版 2048 游戏,只有 487 个字符。来围观吧

M[16],X=16,W,k;main(){T(system("stty cbreak")
);puts(W&1?"WIN":"LOSE");}K[]={2,3,1};s(f,d,i
,j,l,P){for(i=4;i--;)for(j=k=l=0;k<4;)j<4?P=M
[w(d,i,j++)],W|=P>>11,l*P&&(f?M[w(d,i,k)]=l<<
(l==P):0,k++),l=l?P?l-P?P:0:l:P:(f?M[w(d,i,k)
]=l:0,++k,W|=2*!l,l=0);}w(d,i,j){return d?w(d
-1,j,3-i):4*i+j;}T(i){for(i=X+rand()%X;M[i%X]
*i;i--);i?M[i%X]=2<<rand()%2:0;for(W=i=0;i<4;
)s(0,i++);for(i=X,puts("\e[2J\e[H");i--;i%4||
puts(""))printf(M[i]?"%4d|":"    |",M[i]);W-2
||read(0,&k,3)|T(s (1,K[(k>>X)%4]));}
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <time.h>#define GRID_LEN 16int M[GRID_LEN];
int X = GRID_LEN;
int W;
int k;
int K[] = { 2, 3, 1 };int w (int d, int i, int j)
{if (d <= 0) {return 4 * i + j;}return w (d - 1, j, 3 - i);
}void s (int f, int d)
{int i = 4, j, l, P;for (; i--;) {j = k = l = 0;for (; k < 4;) {if (j < 4) {P = M[w (d, i, j++)];W |= P >> 11;l *P && (f ? M[w (d, i, k)] = l << (l == P) : 0, k++);l = l ? (P ? (l - P ? P : 0) : l) : P;}else {f ? M[w (d, i, k)] = l : 0;++k;W |= 2 * !l;l = 0;}}}
}void T ()
{int i = X + rand () % X;for (; M[i % X] * i; i--);i ? M[i % X] = 2 << rand () % 2 : 0;W = i = 0;for (; i < 4; i++) {s (0, i);}// Prints the tiles onto the terminali = X;puts ("\e[2J\e[H");for (; i--;) {if (M[i]) {printf ("%4d|", M[i]);} else {printf ("%s", "    |");}// every 4th cell is followed by a line-breakif (0 == (i & 3)) {putchar ('\n');}}// read input from keyboardif (!(W - 2)) {read (0, &k, 3);s (1, K[(k >> X) % 4]);T ();}
}int main (void)
{// Uses stty to clear the screen in preparation for the game//system ("stty cbreak");/* Intializes random number generator */srand ((unsigned) time (NULL));T ();// Game has finished by this point// If win, display "WIN". Otherwise, display "LOSE".puts (W & 1 ? "WIN" : "LOSE");return 0;
}

一个用 C 语言写的迷你版 2048 游戏,只有 500个字符相关推荐

  1. 一个用 C 语言写的迷你版 2048 游戏,仅仅有 500个字符

    Jay Chan 用 C 语言写的一个迷你版 2048 游戏,仅仅有 487 个字符. 来围观吧 M[16],X=16,W,k;main(){T(system("stty cbreak&qu ...

  2. 横版java_Project4 自己用java写的横版格斗游戏 功能还不是很复杂 可以作为参考~ Other Games 其他 238万源代码下载- www.pudn.com...

    文件名称: Project4下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 5963 KB 上传时间: 2013-07-17 下载次数: 4 提 供 者: lyk ...

  3. 用c语言写简单的回合制游戏

    用c语言写简单的回合制游戏 #include <stdio.h> #include <stdlib.h> #include <time.h> #include &l ...

  4. Cocos2d-x 3.x版2048游戏开发

    Cocos2d-x 3.x版2048游戏开发 本篇博客给大家介绍如何快速开发2048这样一款休闲游戏,理解整个2048游戏的开发流程,从本篇博客你将可以学习到以下内容: 这里注明一下,本教程来自极客学 ...

  5. 手写实现迷你版 Tomcat

      Minicat要做的事情:作为⼀个服务器软件提供服务的,也即我们可以通过浏览器客户端发送http请求,Minicat可以接收到请求进行处理,处理之后的结果可以返回浏览器客户端. 整体思路: (1) ...

  6. 是男人就下100层【第五层】——换肤版2048游戏

    ---------------------------------------------------------------------------------------------------- ...

  7. 2048游戏代码python_200 行代码实现简易版 2048 游戏 (python)

    当然这一篇需要你有一定的python基础?如果你没有python基础不要着急,你可以先去找一些python的基础教程去了解了解学习学习这门短小精悍的语言. 好了,说了那么说没用的话,现在正式开始 创建 ...

  8. Web版2048游戏制作

    写在前面 工作之余参与了<慕课网2048游戏制作>的学习视频,视频断断续续看完了,游戏也制作成功了.因为其他的事情也没来的及总结,一拖时间也就过去了,整理磁盘的时候发现了2048源码,思考 ...

  9. python实现2048编程_200 行代码实现简易版 2048 游戏 (python)

    当然这一篇需要你有一定的python基础?如果你没有python基础不要着急,你可以先去找一些python的基础教程去了解了解学习学习这门短小精悍的语言. 好了,说了那么说没用的话,现在正式开始 创建 ...

最新文章

  1. C++ 经常使用类 string类
  2. 为什么优秀的程序员都成了无能的领导?
  3. JAVA实现合并两个排序的链表(《剑指offer》)
  4. matlab计算斜方差_Matlab求方差,均值,均方差,协方差的函数
  5. js 树形json转以叶子结点为基准的扁平结构
  6. python画海绵宝宝_《1,2,3到动物园》数数书,适合幼儿园小班宝宝亲子共读,从游戏中了解数字的概念...
  7. 螺旋方阵(Leetcode第59题)
  8. 保护系统 用数据库加密实现数据安全
  9. Python学习笔记:集成开发环境
  10. rust能捏人不_吃鸡:捏脸系统上线后,玩家们都嗨了
  11. 【BZOJ 2306】 2306: [Ctsc2011]幸福路径 (倍增floyd)
  12. mysql检查所作的修正_MySQL常见故障检测和修正_mysql
  13. J-Link V9固件修复
  14. vue element 实现树形菜单栏n层级分类,NavMenu menu
  15. 不知道怎样计算权重?告诉你8种确定权重方法
  16. eclipse安装及配置android基础教程
  17. 平时的工作如何体现一个人的技术深度?
  18. 一、恒生电子面试 (校招)
  19. java毕业设计网站SpringBoot美容院预约管理系统
  20. 操作系统实验报告_ucore_lab1

热门文章

  1. 用range函数解码高斯等差数列求和
  2. 想成为月薪过万的软件测试工程师?你得了解这些测试思想和工作方法~
  3. canvas宽高设置
  4. 看个小程序,测测你细心不细心
  5. 解决win10无法搜索本地应用
  6. html中怎么制作选择头像,网页中的个人头像选择框(转)
  7. 无泪的眼神---上海街头真实的一幕!(转自 燕南社区)
  8. Java面向对象知识点小结
  9. 文苑杂志文苑杂志社文苑编辑部2021年第7期目录
  10. 我们精通那么多技术,为何还是做不好一个项目?