“这个很好玩!”
林星漪放下键盘,重重点头说道:
“虽然玩法很简单,但可重复性很强。”
“是因为里面有随机性的代码,但好像又不是完全随机......”
“所以到底是怎么做的?我现在能看代码吗?”
“我就算现在给你看,你也看不懂啊。”
陈序放下手里的可乐瓶,随后问道:
“回到原来的问题,如果让你来做这个游戏的话,你会怎么做?”
“只讲思路,不需要告诉我怎么用代码实现。”
从这一句话开始,陈序正式进入到了他承诺给林星漪的教学。
林星漪思索了片刻,回答道:
“首先要有一个代码,用来随机生成数字。”
“然后,要用一个代码,实现数字的左右移动,判断数字的位置。”
“还需要用代码实现数字的合并,这个我知道怎么做!”
“只需要两个函数,一个判断相邻数字是否相等,一个判断移动的方向。”
“比如在顶角上,就只需要判断两个数字、两个方向就好了!”
“其他的原理也差不多......哎,如果可以用中文编程就好了,我感觉我现在都能做!”
“你是否在寻找:易语言。”
陈序好笑地摊了摊手,但随即又点头道:
“你说的其实很准确----你比我想象中的要聪明。”
“其实你刚才说的那几句话,已经触及到了算法的根本。”
“很简单,就是怎么在兼顾算力、运算速度的条件下,完成一次计算。”
“来,现在我们来看代码,跳过前面的map生成部分,直接看合并部分。”
“你看,我们判断合并,实际上并没有用到你所说的位置判断,而是统一使用了同一个逻辑的四部分代码,每部分代码判断一个移动方向......”
陈序一行一行地解释代码,也解释了为什么要用这种看起来比较笨的方式去实现。
“原因很简单,你刚才考虑问题,是从开发者角度去考虑的。”
“对开发者来说,每次操作会有四种可能,上下左右。”
“但实际上,对玩家来说,他每次都只选择一个策略,上、下、左、右。”
“所以,在他们选择策略之后,代码会自动触发与之相关的逻辑部分,仅需要运算一次,
本章未完,请点击下一页继续阅读!