Re: [問題] 如何寫成一個猜數字的遊戲
身為一個學習程式設計的人,聽到67個if,我也驚艷了....
:
: 小弟第一次發文,犯了新手常犯的錯誤...
:
: 在此默默貼上小弟的落落長if式:
:
: import java.util.Scanner;
:
: public class guessnumber {
: public static void p1() {
: .
: .
: .
: } //文字敘述
: public static void p2() {
: Scanner sc = new Scanner(System.in);
: int a = sc.nextInt();
: int b = sc.nextInt();
: int c = sc.nextInt();
: int d = sc.nextInt(); //小弟不才,不知道要怎麼讓他變成一行輸入
: if ( a == 4 && b == 7 && c == 2 && d == 8 ) {
: //小弟真的是太沒有sence了...不知道要怎麼random設計..只好用設定的
不是sence,請找本書或者拜g神就會有你想要的random了
要不要一行輸入,那個後面再處理無妨,不影響猜數字的核心
在這裡,想先問原po,你在玩猜數字時,你的判斷流程是如何呢?
假設答案是4728好了,當猜的人猜出了8325這個數字
你是如何判斷出幾A幾B?
按照你的程式來推斷,你是先看是不是4xxx這種情況的1A(xxx不和答案相同)
不是的話再看其他種1A,接著2A……
或許原po是這種判斷法?
不過,就我所知道的解法,
大部分的人是把8拿去和4728比較,
發現8的位置不對,是1B
接著,比3,還是1B
再來比2,1A1B
最後比5,結果就是1A1B
我再問一個問題好了,為什麼原PO在判斷第一個數字時要考慮後面3個數字呢
: .
: .
: .
: }
: if ( a != 4 && b != 7 && c != 2 && d != 8 ) {
: .
: .
: .
: } //都錯時
: if ( a == 4 && b != 7 && c != 2 && d != 8 ) {
: System.out.println("1A");
: } //1A
: .
: .
: .
: //接下來以此類推總共67個...
:
: 小弟也曾想過不要這麼麻煩,直接使用另一個稍微偷懶的方法:
: 試驗效果驚人,完全又是前面的翻版....
:
: 摁...相信大大會想說小弟傻了
: 也沒錯,小弟除了想完邏輯式之後傻住之後也不只想過一遍這樣的事情....
: 所以求大大幫幫忙!
:
: 感激不盡阿!
原PO的問題倒是比較像演算法的問題
把你解猜數字的流程再想清楚一些吧,不是有靈感(?)就開始動手寫
因為除了少數天賦異秉的人之外,這樣做的下場大部分都是砍掉重練
很不幸的,我就是常砍掉重練的那群OTL
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 120.126.37.19
→
10/16 14:52, , 1F
10/16 14:52, 1F
推
10/16 15:13, , 2F
10/16 15:13, 2F
→
10/16 15:13, , 3F
10/16 15:13, 3F
→
10/16 15:14, , 4F
10/16 15:14, 4F
→
10/16 15:15, , 5F
10/16 15:15, 5F
→
10/16 15:18, , 6F
10/16 15:18, 6F
→
10/16 16:42, , 7F
10/16 16:42, 7F
→
10/16 18:50, , 8F
10/16 18:50, 8F
討論串 (同標題文章)