Re: [wizs] 限制型的亂序 及其它問題..
看板mud_sanc (Sanctuary - 聖殿)作者laechan (小太保)時間15年前 (2010/08/22 09:02)推噓0(0推 0噓 0→)留言0則, 0人參與討論串2/3 (看更多)
※ 引述《justinj (闇冥)》之銘言:
: 問題一..之前有一個random_sort的來作亂序..如果限制有條件某幾格不參加的話
: 要怎麼寫
: 例如a=({0,0,3,4,0,5,0,6,0})
: 限制>0的幾格要亂序
: 現在想到的方法是
: ----------------------------------------------------------------------
: b=a-({0});
: b=sort_array(b,"random_sort",this_object());
: tmp=allocate(9);
: for(i=0;i<9;i++)
: if(a[i]==0) tmp[i]=0;
: else
: {
: tmp[i]=b[m];
: m++;
: }
: a=tmp....
mixed b=({});
int m;
b=a;
b-=({0}); // 它會把 b 裡面只要有 0 都扣掉
b=sort_array(b,"random_sort",this_object());
m=sizeof(b);
這樣 b 就是「沒有 0 且亂數排序過」的陣列,m 就是
你要的 m。實測結果..
b=({ 6, 3, 5, 4 }), m=4
: -----------------------------------------------------------------------
: sort_array應該有更簡易的寫法吧..看不懂它的說明.....
: 問題二..
: foreach(num in da)
: {
: k=num+1;//往東
: if(member_array(k,da)==-1 && now[k]=tmp) da+=({k});
: k=num-1;//往西
: if(member_array(k,da)==-1 && now[k]=tmp) da+=({k});
: k=num+n;//往南
: if(member_array(k,da)==-1 && now[k]=tmp) da+=({k});
: k=num-n;//往北
: if(member_array(k,da)==-1 && now[k]=tmp) da+=({k});
: }
: 這樣感覺會出問題...
: 這個是說在某點(例如:紅色的)相連的附近點只要是紅色的都加進去
: 001-002-003 例:有數字(因為紅色相連)的都加進去
: | | | 左下角不加進去(雖然是紅色但不相連)
: xxx-xxx-004
: | | |
: xxx-xxx-005
: 這個要怎麼寫...
一、你在哪一點發動指令去做上述的程式段?
二、你想要讓 da 在那一點時,最後會得到什麼結果
三、圖說時請盡量不要有 xxx 的。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.117.3.82
※ 編輯: laechan 來自: 122.117.3.82 (08/22 09:04)
討論串 (同標題文章)
mud_sanc 近期熱門文章
PTT遊戲區 即時熱門文章
18
25
6
15
4
12
21
33