ActionScript 誰かが物凄い勢いで解答するスレ 17at SWF
ActionScript 誰かが物凄い勢いで解答するスレ 17 - 暇つぶし2ch278:Now_loading...774KB
07/09/11 23:28:26 x8I9fL8z
>>273
逆ポーランド記法にできれば結構楽よ

// 変数は自分で管理
var MyVariables = {a: 1, b: 100, name: "foo"};
// 変数と数値と文字列の区別は適当に目印つける
var MyCondition = ["V:a", "N:1", "==", "V:b", "N:250", "<", "V:name", "S:Dave", "==", "||", "&&"];

var _stack = new Array();
for(i=0;i<MyCondition.length;i++){
  var t = MyCondition[i];
  switch(t){
  case "==": var wk = _stack.pop() == _stack.pop(); _stack.push(wk); break;
  case "&&": var wk = _stack.pop() && _stack.pop(); _stack.push(wk); break;
  case "||": var wk = _stack.pop() || _stack.pop(); _stack.push(wk); break;
  case "<": var wk = _stack.pop() > _stack.pop(); _stack.push(wk); break;
  default: // 演算子以外は項である
    var type = substring(t, 1, 2);
    var term = substring(t, 3, t.length-2);
    switch(type){
    case "S:": _stack.push(term); break;
    case "N:":_stack.push(parseInt(term)); break;
    case "V:":_stack.push(MyVariables[term]); break;
    }
    break;
  }
  trace("「"+t+"」を処理した後のスタックの状態");
  for(n=0; n<_stack.length;n++) trace("["+n+"] "+_stack[n]);
}
trace("result:" + _stack[0]); // 演算結果が[0]に残る



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch