讲动人的故事,写懂人的代码
- 故事梗概:
- 在她所维护的老旧Java系统即将被淘汰的危机边缘,这位在编程中总想快速完事的女程序员,希望能转岗到公司内部使用Rust语言的新项目组,因此开始自学Rust;
- 然而,在掌握了Rust编程知识之后,为了通过Rust项目组的技术面试,使得转岗成功而不至被裁员,她必须领会编程如何"快速"才能有真正的意义。
上回的故事里,我们的Java程序员赵可菲和C++程序员席双嘉,在Rust大神贾克强的指导下,一起掌握了rustup工具链的用法。
接下来,他们准备把Rust书里的Guessing Game的需求稍作修改,然后重新写一遍代码,这样就能更好地学习Rust的基础知识了。
2.1 猜骰子冷热游戏需求
那么,该如何调整书中的Guessing Game游戏的需求,让它既好玩又可以让大家练习书中的知识点呢?
贾克强突然想起了公司新近部署的AI编程助手艾极思。他想,也许可以问问它。
于是,贾克强对艾极思说:“我希望你能根据下面《The Rust Programming Language》书中的游戏描述,帮我改编一下需求,设计一个新游戏。新游戏要趣味十足,而且要保留原游戏的关键行为,让我在重写代码的过程中,可以练习到书中的主要知识点。”
“书中原游戏的描述是这样的:这是个猜数字的游戏,首先,程序会生成一个1到100之间的随机整数。“
”然后,程序会提示玩家猜这个数。“
”玩家输入他们所猜的数字后,程序会告诉他们这个猜测是偏低还是偏高。如果猜对了,游戏就会打印一条祝贺信息然后结束。”
艾极思马上回复了:“根据《The Rust Programming Language》书中的原游戏,我们可以设计一个新游戏,既保留了原有的基本逻辑,也加入了一些有趣的元素和挑战。“
”这样你在练习编程的同时,也可以享受游戏的乐趣。以下是新游戏的设定:”
“新游戏叫做:猜骰子冷热(Dicey Temperatures)”
“游戏规则是这样的:”
“1 首先,程序会生成两个骰子的点数之和,这个数是2到12之间的随机整数。”
“2 然后,程序会提示玩家猜两个骰子的点数之和。”
“3 如果玩家第一次输入点数之和就答错了,程序就会提示‘第一次猜就错了哦’。”
“4 如果玩家第二次或之后输入点数之和也答错了,但这次猜测比上次更接近正确答案,程序就会提示‘更热了’。”
“5 如果离正确答案更远了,程序就会提示‘更冷了’。”
“6 如果距离正确答案的距离和上次一样,程序就会提示‘不冷不热’。”
“7 如果玩家猜对了,程