作者wss50427 (米拉)
看板Flash
标题[问题] 有关於猜数字的程式码
时间Sun Dec 5 23:10:22 2010
经过好几天的摧残...
脑细胞不知道死了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
1F:推 sextitanic:其实可以不用 do while,因为if就把所有事情都判断完 12/06 00:28
2F:→ sextitanic:而且你这个写法,如果你输入的数字不等於随机数字 12/06 00:29
3F:→ sextitanic:那回圈就会不断执行,不断执行,不断执行..... 12/06 00:29
4F:→ sextitanic:还有那个 var 1:Number = 1; 不建议使用 12/06 00:33
5F:→ sextitanic:可以直接 leftout_txt.text = "1"; 就好 12/06 00:34
6F:→ sextitanic:那个变数 r 跟 num 其实变数型态指定 int 即可 12/06 00:35
7F:→ sextitanic:因为这样子随机取完数目後它会自动把小数点忽略掉 12/06 00:36
8F:→ sextitanic:就可以少用 Math.floor,省一次功 12/06 00:36
9F:→ sextitanic:可能你之前有看过书上是用 Number 12/06 00:37
10F:→ sextitanic:但是那本书可能是用 as 2.0,没有 int 这个变数型态 12/06 00:37
11F:→ dsmwang:num不改变然後一直执行无穷回圈,也只能当掉了。 12/06 00:44