- ActionScript 誰かが物凄い勢いで解答するスレ29
787 :Now_loading...774KB[sage]:2011/11/11(金) 00:06:13.06 ID:JgQJhBwU - AS1.0よう知らんけど、その手の処理ならマスク方式ってのもありかもね。行数の関係で見にくくてすまん。
var baseScore=100, s=2, m=3;//0〜3の値らしいので2ビット確保 mask値:11=3 //好み&判定用マスク作成ヘルパ関数 function getKonomi(hot,cold, sweet,spicy, sour){ return hot | cold<<s | sweet<<s*2 | spicy<<s*3 | sour <<s*4; } //スコア計算関数 function getScore(kyaku, food){ var v = kyaku & food; //マスク使って被ってるところだけ取り出す var score = 0; for(i=0;i<5;i++)score += (v & m<<i*s)>>i*s; return score * baseScore; } //個人の好み作成 taro = getKonomi(1,1,1,1,1); jiro = getKonomi(1,1,1,1,0); sabu = getKonomi(1,1,2,1,1); siro = getKonomi(0,0,0,0,3); //判定用マスク作成 food1 = getKonomi(0,0,m,0,m); food2 = getKonomi(m,0,m,0,0); food3 = getKonomi(0,m,m,0,0); //けいさん trace(getScore(taro,food1)); trace(getScore(jiro,food1)); trace(getScore(sabu,food3));
|
|