/* * 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; } }