/*
 * test for haxe
 */
import Math;
class ShuffleBag{
 var data:Array<Int>;
 var cursor:Int;
 //c'tor
 public function new(){
 data=[];
 cursor=-1;
 //pointless preprocessor tests :)
 #if neko //nya :3
 trace("neko");
 #else flash9//no space
 trace("flash9");
 #end //foo
 
 #if flash8
 trace("flash8");
 #end//no space
 }
 //add one or several item(s)
 public function add(item:Int,?quantity:Int){
 if(quantity==null){
 data.push(item);
 }else{
 for(i in 0...quantity)
 data.push(item);
 }
 cursor=data.length-1;
 }
 //returns the next item in the bag
 public function next(){
 if(cursor<1){
 cursor=data.length-1;
 return data[0];
 }
 var grab:Int=Math.floor(Math.random()*(cursor+1));
 var temp:Int=data[grab];
 data[grab]=data[cursor];
 data[cursor]=temp;
 cursor--;
 return temp;
 }
}

AltStyle によって変換されたページ (->オリジナル) /