Day14 Number Guessing

今天要利用之前学到的东西写一个猜数字游戏,此猜数字游戏要符合以下条件:
1 猜数字范围介於0-99间,且包含0跟99,故程序在开始的时候必须要随机生成一个0-99间数字。
2 若玩家输入的数字等於程序生成的数字的话,显示Bingo,代表玩家赢得了游戏。
3 若玩家输入数的数字超出了范围,则显示Out of range, Try again,要求玩家重新输入数字,若输入的范围还是超过则以此类推,若输入在范围内得重新进入比较。
4 若范围已经缩小到 大值 – 小值 小於等於2,也就是玩家剩两个数字可以猜时,如果玩家猜错,则游戏结束,玩家输掉游戏,显示Game Over。

程序实作如下:
Step 1 因为设定的范围是0-99间,因此宣告最大值max = 99、最小值min = 0
为整数int。
https://ithelp.ithome.com.tw/upload/images/20210926/20140456lS2AbNmHZP.png

Step 2 要取得使用者输入的数,使用scanner方法。
https://ithelp.ithome.com.tw/upload/images/20210926/20140456mJskRtpitT.png

Step 3 宣告number为int,并由电脑产生这个number,使用random方法。
https://ithelp.ithome.com.tw/upload/images/20210926/20140456qr1SMGUX1A.png

Step 4 接着进入while回圈,条件设为true,代表只要程序执行就会进入回圈。
https://ithelp.ithome.com.tw/upload/images/20210926/20140456tLX9aOuYkv.png

Step5 第一个if条件式,在每次回圈执行时,都先检查一次 大值 – 小值 是否有小於等於2,若符合此条件则则进入此回圈,代表玩家输了游戏,显示Game Over,并将scanner close掉,不再请使用者输入数值,且break跳出回圈,结束程序执行。
https://ithelp.ithome.com.tw/upload/images/20210926/2014045651028EvdYB.png

执行结果如下
https://ithelp.ithome.com.tw/upload/images/20210926/2014045615wJCp2epN.png

Step 6 若不符合第一个if条件式,则印出Please input a number,并取得使用者输入的数字input,并宣告其为int。
https://ithelp.ithome.com.tw/upload/images/20210926/20140456kphs9xaH18.png

执行结果如下
https://ithelp.ithome.com.tw/upload/images/20210926/20140456NUoXTlTWKI.png

Step 7 测试使用者输入的数是否有在范围内。用if else回圈,若input > 99
或0 > input,显示Out of range, Try again,并请使用者再次输入。
https://ithelp.ithome.com.tw/upload/images/20210926/20140456X1xufEudSZ.png

执行结果如下
https://ithelp.ithome.com.tw/upload/images/20210926/20140456EFhsEEEhGY.png

Step 8 测试输入的数(input)比随机产生的数(number)大还是小,
若比较大,印出(min : input – 1)也就是使用者接下来要猜的范围,
反之比较小的话,印出(input + 1 : max),max 跟 min 的值,在回圈里是会一直变的,输入的值比较大的话则max = input – 1,反之min = input + 1。
https://ithelp.ithome.com.tw/upload/images/20210926/20140456DV3B6DVaIu.png

执行结果如下
https://ithelp.ithome.com.tw/upload/images/20210926/201404565ifzb1MzpV.png

Step 9 若使用者输入的数=电脑产生的数,显示Bingo,玩家赢的游戏,跳出回圈结束程序。
https://ithelp.ithome.com.tw/upload/images/20210926/201404564nLp4V9kbP.png
https://ithelp.ithome.com.tw/upload/images/20210926/20140456tOqA2UxwVY.png

程序全码如下
https://ithelp.ithome.com.tw/upload/images/20210926/201404560On3Xsqjq5.png


<<:  [Day26] NLP会用到的模型(九)-实作transformer-上

>>:  [Day 13 - Git] Git版本控管,没有它救不回来的专案

AE卷轴制作1-Day2

练习范例教学 六指渊:https://www.sixvfx.com/rolling_paper 开始...

[Day02] TS: 泛型(Generics)能干嘛?

「泛型(Generics)」是 TypeScript 中很常会使用到的功能,泛型的概念简单来说,就是...

Day10 | Dart 非同步 - async/awiat

Async/Awiat 在Dart中我们可以使用 async 来代表这是一个非同步的function...

[Day18]ISO 27001 附录 A.6 资讯安全之组织

A.6 资讯安全之组织 A.6.1 内部组织 A.6.1.1 资讯安全之角色及责任 应定义及配置所有...

UCOMP 微算机实习

转眼间,大学已经过了四分之一,我也迎来了待在北科大的第三个学期 (前面都在混 R),在这个学期我选修...