第27章围棋(3/3)
对于张应郗来说,他的任务就是把这些规则转换成程序语言展现出来。
他需要用代码画出棋盘,用二位数组存储棋盘位置,然后画棋子,对点位的三种状态定义枚举常量,即空位、黑子、白子。
再使用适配器模式监听用户的触屏事件,对于落子的触屏实现方式,他想到两种实现思路。
一种方式是触屏单击落子,屏幕下方再准备一个确认按钮,用户点位上单击落子后,点确认按钮落子无悔。
另一种方式是触屏双击落子,用户在屏幕的点位上单击落子,再单击其他位置,可以改变落子,只有双击才会真正落子,落子无悔。
他本想把两种方式都做出来,到时候让用户自己选择落子方式,但本着最小化开发原则,还是直接设置死了落子原则,直接采用触屏双击落子方式。
按照执黑先行,轮流落子规则,让程序判定当前触屏的棋手和落子状态。比如用户甲落子后,屏幕提示用户乙操作。
这里面数判断棋子的气较为繁琐,不仅要判断单个棋子的气,还要计算相连己方棋子的气,对已经计算过棋子的位置也需要记录,这样后面避免重复计算。
对于一些禁着点,也需要进行判断,不能让棋子落在里面。
界面的话,中间一个棋盘,下方布置几个按钮,有“开始”、“悔棋”、“过一手”、“认输”、“提子”,“结束”。
最上面是文字显示位,显示当前轮到棋手。当终局时,文字显示获胜方......
第27章围棋
和获胜子数。
围棋比赛里使用的计时器,张应郗暂时也放弃了,反正是元老们私下对弈,又不是比赛,弄个计时器没什么意义。
张应郗将业务规则、用户界面、交互方式和关键逻辑实现方法,整理记录在文档上,心中对整个围棋项目实施大致有数了。
打开专用的魔网程序开发软件,他开始进行真正的开发。
魔网开发语言的理念和原理,和蓝星确实相似,大多数情况张应郗都可以运用自己在蓝星的开发经验,写出对应代码。
遇到一些魔网独有的函数方法或语法,也可以在系统整理的魔网开发大全资料中检索。
这次开发可以说是宗门高层对他的一次面试,面试的结果决定他今后在宗门内的地位。
张应郗写的废寝忘食,每次都需要野猪无牙过来拱他提醒,他才能想到吃饭的事。
用了2天时间,张应郗做出了一个初版围棋程序。
他摸着自己头发,唏嘘道:“你们辛苦了,一定要坚持住啊!”
系统见张应郗初版弄出来了,提起了一丝兴趣,停下当前对功法的解析。
“小伙子,干的不错嘛,居然自己做出来了,哥送你一次免费测试怎么样!”
不等张应郗同意,系统直接扫过整个围棋程序,没到半分钟,系统就挑出了十多个BUG,嘿嘿地笑。
“技术尚需琢磨,要加强学习啊,自己去修复吧。”
而且,系统还额外送了一个技术题任务给张应郗。
系统:某宗门要在现有生产条件下,生产一种新产品。现可供生产的产品有甲、乙、丙、丁四种类型。因缺少相关资料背景,对新产品的市场需求只能估计为大、中、小三种状态,在不同市场需求条件下,新产品的收益值如下所示:
......
第27章围棋
#产品....需求量大....需求量中....需求量小
甲...............................-250
乙...............................-200
丙...................................50
丁.................................100
问:如果宗门采用后悔值方法进行决策,应生产哪种产品?
张应郗惊呼,好家伙,系统开始出带表格的题了!