[問題] 有關於猜數字的程式碼

看板Flash作者 (米拉)時間15年前 (2010/12/05 23:10), 編輯推噓1(1010)
留言11則, 2人參與, 最新討論串1/1
經過好幾天的摧殘... 腦細胞不知道死了N個 程式碼設定是隨機產生一個數字 然後不斷輸入去猜那個數 不知道是不是函數部分有問題 不過ctrl enter後編譯器也沒說有問題 但是swf檔執行到一半就會當掉... 函數是要去測試我所輸入的數字是否符合 小於的話就把它放到左框中 大於就放右框 等於就跳到場景三 以下是小弟的程式碼 不好意思麻煩大大幫忙解惑了! 感恩 stop(); stage.focus=in_txt; var l:Number=1; var l2:Number=99; leftout_txt.text=String(l); rightout_txt.text=String(l2); ok_btn.addEventListener(MouseEvent.CLICK, findabs); var high:int=99; var low:int=1; var r:Number=Math.floor(Math.random()*(1+high-low)+low); var num:Number; num = Number(in_txt.text); function findabs(evt:MouseEvent):void{ do{ if (num==r){ r=Number(time.text); gotoAndStop(3);} if(num<r) num=Number(leftout_txt.text); if (num>r) num=Number(rightout_txt.text); }while(num!=r); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 115.43.33.38

12/06 00:28, , 1F
其實可以不用 do while,因為if就把所有事情都判斷完
12/06 00:28, 1F

12/06 00:29, , 2F
而且你這個寫法,如果你輸入的數字不等於隨機數字
12/06 00:29, 2F

12/06 00:29, , 3F
那迴圈就會不斷執行,不斷執行,不斷執行.....
12/06 00:29, 3F

12/06 00:33, , 4F
還有那個 var 1:Number = 1; 不建議使用
12/06 00:33, 4F

12/06 00:34, , 5F
可以直接 leftout_txt.text = "1"; 就好
12/06 00:34, 5F

12/06 00:35, , 6F
那個變數 r 跟 num 其實變數型態指定 int 即可
12/06 00:35, 6F

12/06 00:36, , 7F
因為這樣子隨機取完數目後它會自動把小數點忽略掉
12/06 00:36, 7F

12/06 00:36, , 8F
就可以少用 Math.floor,省一次功
12/06 00:36, 8F

12/06 00:37, , 9F
可能你之前有看過書上是用 Number
12/06 00:37, 9F

12/06 00:37, , 10F
但是那本書可能是用 as 2.0,沒有 int 這個變數型態
12/06 00:37, 10F

12/06 00:44, , 11F
num不改變然後一直執行無窮迴圈,也只能當掉了。
12/06 00:44, 11F
文章代碼(AID): #1C-wjXvL (Flash)
文章代碼(AID): #1C-wjXvL (Flash)