吴昊品游戏核心算法 Round 16 —— 吴昊教你玩口袋妖怪 第二弹 777赌博机
(此图选自口袋妖怪红宝石的某个镇的娱乐场所的赌博机)
这款777赌博机存在于日本的赌场,这里,我不想再像以前一样,通过各种百科COPY一些资料,这样没有意思。我谈谈自己当年玩POKEMON时的感受吧!
赌博机分两种投币模式,一种是一次100个币,一种是一次50个币,我认为任天堂在整个城镇的设计中很独到。比如,有些城镇比较古朴(比如:鬼斯,鬼斯通等出现的城镇,给人一种云雾缭绕的感觉),而有些城镇则比较偏娱乐,比如有娱乐中心的城镇(当然,赌博机乃是必不可少的道具)。我们可以看到,不同的城镇既有共性又有个性。比如,每个城镇都会有道馆和精灵中心(每个道馆也许还会不一样,这反映出了谜题的不一样),但是,每个城镇又确实具有独具特色的标志。
以上,我们来解剖一个口袋妖怪赌博机的构造。如果我们转到三个相同的图标(比如三个皮卡丘),那就中了头彩(777)。我们假设这台机器上有N个数字,并且我们将其引入一些确定性因素(在实际中,是利用srand做种,利用rand生成随机数,这里,考虑到输入输出的确定性,我们这样来设置按钮,假设其每次可以控制各位的增加,那么,最终会变为POJ 2316)
Ozy在短码之美中详尽地阐述了这一问题,并利用各种BT的技法将代码缩短到五行(感觉,这样整真心没有必要啊,短码是很省长度,但是,这样做会严重降低代码的可读性,所以,不提倡,我这里只列出Ozy缩短到最后的代码,具体过程可以参考他的书的P130--P135)
Input:每一行N个数字,表示对777赌博机的一系列操作
Output:输出经过几轮变换后,赌博机上的值
2
3 //这里因为要开启memset函数
4
5 #include<stdlib.h>
6
7
8
9 //这是短码的技法,对于某些编辑器是成立的
10
11 main()
12
13 {
14
15 //每一行N个数字,但是N不超过10,要不然,赌博机会爆掉
16
17 char v[10];
18
19 //输出的答案
20
21 int ans[10];
22
23 int i,len;
24
25 //初始化答案
26
27 memset(ans,0,sizeof(ans));
28
29 //每次读入一行,并存储到v中
30
31 for(;gets(v);)
32
33 {
34
35 len=strlen(v);
36
37 for(i=0;i<len;i++)
38
39 {
40
41 //ASC码和十进制不一样,所以每次需要模48进行转换
42
43 ans[i]+=v[i]%48;
44
45 //由于赌博机只有0--9这10个数字(皮卡丘等的符号可以替换为数字)故考虑到循环
46
47 ans[i]%=10;
48
49 }
50
51 }
52
53 //最后,输出结果,由于一共只有一行,故不考虑换行的情况
54
55 for(i=0;i<len;i++)
56
57 printf("%d",ans[i]);
58
59 }
Ozy的独到技法,中间的演变过于繁杂,这里一笔带过:
(1)利用getchar()函数将v[]数组的作用抵消
(2)发挥mod计算的技巧,将ans[i]+=n%48写成ans[i]+=(n+2)
(3)利用指针进一步缩短代码
//这种压缩体在某些编译器上面是会报错的
2
3 main(n)
4
5 {
6
7 for(;~n ? n=getchar(p=n>10 ? *p+=n+2,p+1:a): *p&&putchar(*p++%10+48););
8
9 }
转载于:https://www.cnblogs.com/tuanzang/archive/2013/04/01/2992866.html
吴昊品游戏核心算法 Round 16 —— 吴昊教你玩口袋妖怪 第二弹 777赌博机相关推荐
- 吴昊品游戏核心算法 Round 16 ——吴昊教你玩口袋妖怪 第三弹 地洞谜题
这样的场景我们应该经常遇到的吧,哈哈! 口袋妖怪的地洞要算是最令人讨厌的了,因为,有些地洞是全黑的,你即使用了闪光灯(必选道具#03),你有时也只能用GBA外壳的荧光屏作为道具才能将整个地洞看清楚. ...
- 吴昊品游戏核心算法 Round 16 —— 吴昊教你玩口袋妖怪 第四弹 拉帝亚斯?!拉帝欧斯?!...
作为讲述口袋妖怪的Round 16,这里,我会采用"夹叙夹议,夹议夹叙"的模式进行编排.也就是在议论一些口袋妖怪中的小游戏的核心算法的同时,叙述一下我对口袋妖怪的理解以及我与这一系 ...
- 吴昊品游戏核心算法 Round 16 —— 吴昊教你玩口袋妖怪 第九弹 冰系道馆
道馆之战!!!这一次,道馆由电系变为了冰系,和龙系的道馆不一样,冰系的道馆有冰系的规定.如图所示,一共有三层,上面一层总是比下面一层要复杂一些.在冰系道馆中,有如下的两个规则:(1)我们不会在冰面上划 ...
- 吴昊品游戏核心算法 Round 16 —— 吴昊教你玩口袋妖怪 第六弹 龙系道馆
道馆之战!!!如图所示,此乃口袋妖怪的道馆战中的龙系道馆,一般情况下,在每一个系列的口袋妖怪中,龙系道馆往往是排列在最后的,我们通过一些滑动可以到达我们所想到达的地方(冰块并不会因此而破碎).但是,我 ...
- 吴昊品游戏核心算法 Round 16 —— 吴昊教你玩口袋妖怪 第十弹 超能力系道馆
道馆之战!!!这一次,我们将要挑战的是众人熟知的超能力系道馆,这种道馆不是火箭队的巢穴,也不是冰系道馆的那种踏冰川.何以解释?我说明如下:不同的地板上的机关有不同的颜色,每一个颜色有对应的位置,我们可 ...
- 吴昊品游戏核心算法 Round 18 —— 吴昊教你玩Zen Puzzle Garden
如果你认为无法因为玩一个电脑游戏而达到精神的顿悟,你可能是正确的.不过你完全可以试着解决一个禅宗花园发生的难题,从而达到静心的精神状态. 这个游戏是获得2003年独立游戏节提名的精品游戏,在注重游 ...
- 吴昊品游戏核心算法 Round 10 —— 吴昊教你下围棋(利用递归来解决吃子的问题)...
如图所示,此即为日本动漫棋魂中的千年佐为,也就是SAI.众所周知,围棋的规则相比于中国象棋,国际象棋等等都简单许多,真是因为更简单的规则,才诞生 了更复杂的逻辑.目前的围棋AI还很不行,最NB的应该是 ...
- 吴昊品游戏核心算法 Round 17 —— 吴昊教你玩拼图游戏 序
如图所示,此人就是<死亡笔记>中最终击败夜神月的尼亚(当然,他在击败夜神月的过程中,利用了梅洛的一些帮助),尼亚喜欢玩各种玩具,比如乐高啊,多米诺骨牌啊等等,当然,他最喜欢的仍然是拼图.他 ...
- 吴昊品游戏核心算法 Round 17 —— 吴昊教你玩拼图游戏(8 puzzle)
如图所示,这是一个九宫格(这倒是让我想起了小时候老师在黑板上教导我们的如何通过一系列的拼凑,将横行,竖行,以及斜行都拼到和相等),格子中有一个格子是空的,另外八个格子分别有数字1--8,我们的任务是将 ...
最新文章
- 为什么成员函数不占用类和对象的空间
- 自动化html定位,Selenium自动化定位方法
- 辨异 —— 行星 vs 恒星
- 一维和二维卷积和池化
- Python 核心编程(第二版)——条件和循环
- (Windows和Linxu双系统)Alibaba套件sentinel1.7下载和nacos1.3和seate-server1.3下载
- 条件锁pthread_cond_t
- Linux 命令(131)—— usermod 命令
- g++ -std=c++_在C ++ std库中使用sort()
- 面向对象的思考过程 (马特·魏斯费尔德 著)
- @RequiredArgsConstructor(onConstructor = @__(@Autowired)) Intellij IDEA如何去掉@Autowired 注入警告的方法
- python:批量修改文件夹下所有图片名字,改为文件夹名字的一部分+.jpg
- 电机与拖动知识点及试题
- synchronized锁住的对象
- Metricbeat监听容器CPU利用率,内存等使用情况,发送给ElasticSearch并展示在kibana
- C#打印机套打三联单
- go语言基础(一)之文件读写
- 单身的程序猿伤不起,在神棍节感慨下
- 计算机芯片级维修包括哪些,计算机芯片级维修1
- java插入背景图片问题_java程序中如何插入背景图片
热门文章
- 【CSP2020提高组正式赛】贪吃蛇(snakes)
- artDialog弹窗+Ztree树从后台获取数据
- 数据分享|函数型数据分析部分省市新冠疫情数据
- 铁路辅警的认识 灵宝西站派出所第一警务区 高飞
- STM32F103ZET6应用之-HX711重力传感器与hc_sr04超声波模块联合应用
- 2020-12-08 Multisim 74LS74D/N分频/控制进制
- 解读A Primer on Near-Field Beamforming for Arraysand Reconfigurable Intelligent Surfaces
- 【2023新】华为OD机试 - 绘图机器(Python)
- 优质的海外媒体发布平台除了美联社-彭博社发稿,还有哪些?
- 如何解决MTP 驱动更新的问题(手机插上电脑无法显示U盘弹窗)?