コード例 #1
0
        public bool ExecuteCommand(string command, Stacker stack)
        {
            //"ClassicTetris", "RowMode", "SClusterMode", "BClusterMode", "MCluster Mode", "FlashlightMode", "WinGame", "EndGame", "ClearBoard"
            if(command == "ClassicTetris")
            {
                game.SetClassicMode();
            }
            else if (command == "RowMode")
            {
                game.SetRowMode();
            } else if(command == "UsePentaPieces")
            {
                game.AddPentonimoes();
            }
            else if (command == "SClusterMode")
            {
                game.SetClusterMode(9, 100);
            }
            else if (command == "MClusterMode")
            {
                game.SetClusterMode(16, 100);
            }
            else if (command == "BClusterMode")
            {
                game.SetClusterMode(20, 100);
            }
            else if (command == "FlashlightMode")
            {
                //flashlight
                flashLight = true;
                game.SetFlashLight(true);
            }
            else if (command == "WinGame")
            {
                GameEnded = true;
                GameLost = false;
                if(pack != null)
                pack.UnlockNext();
                //win
            }
            else if (command == "SetText")
            {

                if(stack.Peek() is StackObjectString)
                {
                    text = ((StackObjectString)stack.Pop()).GetValue();
                }
                //win
            }
            else if (command == "EndGame")
            {
                GameEnded = GameLost = true;
                //lose
            }
            else if (command == "ClearBoard")
            {
                game.SetBoard(new ByteBoard());
            }

            return false;
        }
コード例 #2
0
 private void Multiply(Stacker stack)
 {
     stack.Pop();
     ((StackObjectNumber)stack.Peek()).MultiplyValue(this.value);
 }
コード例 #3
0
 private void Subtract(Stacker stack)
 {
     stack.Pop();
     ((StackObjectNumber)stack.Peek()).ModifyValue(-this.value);
 }
コード例 #4
0
        private void LessThanOrEqualTo(Stacker stack)
        {
            stack.Pop();
            bool e = ((StackObjectNumber)stack.Peek()).value  <= this.value;
            //push it
            stack.Pop();

            stack.InsertTop(new StackObjectBoolean(e));
        }
コード例 #5
0
 private void Modulo(Stacker stack)
 {
     stack.Pop();
     ((StackObjectNumber)stack.Peek()).ModuloValue(this.value);
 }
コード例 #6
0
        private void EqualValueCheck(Stacker stack)
        {
            stack.Pop();
            bool e = ((StackObjectNumber)stack.Peek()).EqualsValue(this.value);
            //push it
            stack.Pop();

            stack.InsertTop(new StackObjectBoolean(e));
        }
コード例 #7
0
        private void GreaterThan(Stacker stack)
        {
            stack.Pop();
            bool e = ((StackObjectNumber)stack.Peek()).value  > this.value ;
            //push it
            stack.Pop();

            stack.InsertTop(new StackObjectBoolean(e));
        }
コード例 #8
0
 private void Add(Stacker stack)
 {
     stack.Pop();
     ((StackObjectNumber)stack.Peek()).ModifyValue(this.value);
 }
コード例 #9
0
 private void Divide(Stacker stack)
 {
     stack.Pop();
     ((StackObjectNumber)stack.Peek()).DivideValue(this.value);
 }
コード例 #10
0
 private void OR(Stacker stack)
 {
     stack.Pop();
     ((StackObjectBoolean)stack.Peek()).OrValue(this.value);
 }
コード例 #11
0
 private void EE(Stacker stack)
 {
     stack.Pop();
     ((StackObjectBoolean)stack.Peek()).EqualsValue(this.value);
 }
コード例 #12
0
 private void AND(Stacker stack)
 {
     stack.Pop();
     ((StackObjectBoolean)stack.Peek()).AndValue(this.value);
 }
コード例 #13
0
 private void Add(Stacker stack)
 {
     stack.Pop();
     ((StackObjectString)stack.Peek()).AddValue(this.value);
 }
コード例 #14
0
 private void CheckEquals(Stacker stack)
 {
     stack.Pop();
     bool a = ((StackObjectString)stack.Peek()).GetValue() == this.value;
     stack.InsertTop(new StackObjectBoolean(a));
 }