作者rockfuture (沒人知道....)
看板Flash
標題Re: [問題] 請問氣泡排序法的製作
時間Wed May 5 21:28:24 2010
原文恕刪~
根據原PO的原始碼
小弟稍微改寫了一下
供原PO參考看看:
var a:Array= [6,5,4,7];//給ball的值
var b:Array= [6,5,4,7];//
_btn.addEventListener(MouseEvent.CLICK,onClick);
//產生泡泡
for(var i:int=0;i<4;i++) //選擇幾個泡泡
{
var ball:MovieClip=this;//new bobble()
ball['b'+i].num_txt.text=a[i];
}
//移動泡泡
function onClick(e:MouseEvent):void
{
for(var i:int=0;i<(a.length-1);i++)
{
//由於外層迴圈每執行一次,會確認一個泡泡的位置,因此內層迴圈
//不必每次都執行a.length-1次
for(var j:int=0;j<(a.length-1-i);j++)
{
//泡泡前後比較數值大小,如果前者大於後者,交換數值
if(a[j]>a[j+1])
{
var temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
//更新泡泡的數值
ball['b'+j].num_txt.text=a[j];
ball['b'+(j+1)].num_txt.text=a[j+1];
}
}
}
}
由於原始檔裡的泡泡長得都一樣
所以泡泡交換位置的功能以交換泡泡文字方塊的數值達成
以上是個人淺見
希望對原po有幫助
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.193.22.175
推 titidoby:謝謝rock大的修改,真的可以正確排序耶XD....(灑花) 05/06 04:53
推 titidoby:若小妹想要每次變動一次泡泡就暫停,再按一次按鈕就繼續 05/06 15:28
→ titidoby:執行,這樣的話小妹我該用甚麼方法讓他暫停?><... 05/06 15:29