private void ButtonC_Click(object sender, EventArgs e)
 {
     operatorState             = OperatorState.Single;
     numberClass.NumberValue   = 0;
     numberClass.PreviousValue = 0;
     UpdateDisplay();
 }
Exemple #2
0
 private void ButtonC_Click(object sender, EventArgs e)
 {
     operatorState             = OperatorState.None;
     displayNumber.NumberValue = 0;
     previousNumber            = 0;
     UpdateDisplay();
 }
        private void WrapHelper <TKey>(PartitionedStream <TResult, TKey> inputStream, IPartitionedStreamRecipient <TResult> recipient, QuerySettings settings)
        {
            int partitionCount = inputStream.PartitionCount;

            if (ParallelEnumerable.SinglePartitionMode)
            {
                Debug.Assert(partitionCount == 1);
            }

            // Create shared data.
            OperatorState <TKey> operatorState = new OperatorState <TKey>();
            CountdownEvent       sharedBarrier = new CountdownEvent(partitionCount);

            Debug.Assert(_indexedPredicate == null || typeof(TKey) == typeof(int));
            Func <TResult, TKey, bool>?convertedIndexedPredicate = (Func <TResult, TKey, bool>?)(object?) _indexedPredicate;

            PartitionedStream <TResult, TKey> partitionedStream =
                new PartitionedStream <TResult, TKey>(partitionCount, inputStream.KeyComparer, OrdinalIndexState);

            for (int i = 0; i < partitionCount; i++)
            {
                partitionedStream[i] = new TakeOrSkipWhileQueryOperatorEnumerator <TKey>(
                    inputStream[i], _predicate, convertedIndexedPredicate, _take, operatorState, sharedBarrier,
                    settings.CancellationState.MergedCancellationToken, inputStream.KeyComparer);
            }

            recipient.Receive(partitionedStream);
        }
        private void MemoryPressed(MemoryFunction memoryFunction)
        {
            operatorState = OperatorState.Single;
            switch (memoryFunction)
            {
            case MemoryFunction.MS:
                memoryClass.MemoryValue = numberClass.NumberValue;
                break;

            case MemoryFunction.MC:
                memoryClass.ClearMemory = 0;
                break;

            case MemoryFunction.MR:
                memoryClass.RevertMemory = 0;
                break;

            case MemoryFunction.Mplus:
                memoryClass.PlusMemory = 0;
                break;

            case MemoryFunction.Mminus:
                memoryClass.MinusMemory = 0;
                break;
            }

            label2.Text = memoryClass.MemoryValue.ToString(CultureInfo.InvariantCulture);
        }
Exemple #5
0
        public Lexer()
        {
            EmptyState    = new EmptyState(this);
            NumberState   = new NumberState(this);
            OperatorState = new OperatorState(this);


            CurrentState = EmptyState;
        }
 public static void ChangeState <T>() where T : OperatorState
 {
     // Leave the current state if it is valid
     if (_state != null)
     {
         _state.OnExit();
     }
     // Change the state
     _state = Activator.CreateInstance <T>();
     _state.OnEnter();
 }
 /// <summary>
 /// 开始执行
 /// </summary>
 public void Execute()
 {
     mState = OperatorState.OperatorState_Execute;
     try
     {
         // 执行操作
         this.OnExecute();
     }
     catch (System.Exception ex)
     {
         Console.WriteLine(ex.ToString());
     }
 }
 /// <summary>
 /// 开始执行
 /// </summary>
 public void Execute()
 {
     mState = OperatorState.OperatorState_Execute;
     try
     {
         // 执行操作
         this.OnExecute();
     }
     catch (System.Exception ex)
     {
         Console.WriteLine(ex.ToString());
     }
 }
        private void ButtonDelete_Click(object sender, EventArgs e)
        {
            operatorState = OperatorState.Single;
            var displayLength = numberClass.StringValue.Length - 1;

            if (displayLength == 0)
            {
                numberClass.NumberValue = 0;
            }
            else
            {
                numberClass.StringValue = numberClass.StringValue.Substring(0, displayLength);
            }
            UpdateDisplay();
        }
Exemple #10
0
        public ActionResult DeleteMember(string Account)
        {
            AjaxResult ar = new Globals.AjaxResult();

            if (Account == string.Empty || Account == null)
            {
                ar.state   = ResultType.error.ToString();
                ar.message = "提交的賬號爲空";

                return(Json(ar, JsonRequestBehavior.AllowGet));
            }

            try
            {
                var member = _memberBLL.GetUserByAccount(Account);
                if (member == null)
                {
                    ar.state   = ResultType.error.ToString();
                    ar.message = "要刪除的賬戶不存在";

                    return(Json(ar, JsonRequestBehavior.AllowGet));
                }

                OperatorState result = _memberBLL.DeleteMember(member);
                if (result == OperatorState.error)
                {
                    ar.state   = ResultType.error.ToString();
                    ar.message = "刪除賬號失敗";
                }
                else if (result == OperatorState.success)
                {
                    ar.state   = ResultType.success.ToString();
                    ar.message = "刪除賬號成功";
                    _underlingManager.SubUnderlingList(member);
                }
            }
            catch (Exception ex)
            {
                LogHelper.writeLog_error(ex.Message);
                LogHelper.writeLog_error(ex.StackTrace);

                ar.state   = ResultType.error;
                ar.message = "系統錯誤,刪除賬號失敗";
            }

            return(Json(ar, JsonRequestBehavior.AllowGet));
        }
Exemple #11
0
            private TKey _currentLowKey = default !;               // The lowest key rejected by one of the other enumerators.


            //---------------------------------------------------------------------------------------
            // Instantiates a new select enumerator.
            //

            internal TakeOrSkipWhileQueryOperatorEnumerator(
                QueryOperatorEnumerator <TResult, TKey> source, Func <TResult, bool>?predicate, Func <TResult, TKey, bool>?indexedPredicate, bool take,
                OperatorState <TKey> operatorState, CountdownEvent sharedBarrier, CancellationToken cancelToken, IComparer <TKey> keyComparer)
            {
                Debug.Assert(source != null);
                Debug.Assert(predicate != null || indexedPredicate != null);
                Debug.Assert(operatorState != null);
                Debug.Assert(sharedBarrier != null);
                Debug.Assert(keyComparer != null);

                _source            = source;
                _predicate         = predicate;
                _indexedPredicate  = indexedPredicate;
                _take              = take;
                _operatorState     = operatorState;
                _sharedBarrier     = sharedBarrier;
                _cancellationToken = cancelToken;
                _keyComparer       = keyComparer;
            }
    void Update()
    {
        if (playerScript.HP == 0)
        {
            mState = OperatorState.Quit;
            Debug.Log("play lose");
        }
        else if (enemyScript.HP == 0)
        {
            mState = OperatorState.Quit;
            Debug.Log("play win");
        }
        else
        {
            switch (mState)
            {
            case OperatorState.Player:

                if (!playerScript.isWaitPlayer)
                {
                    StartCoroutine("UpdateLater");

                    StartCoroutine("WaitUI");
                    mState = OperatorState.Enemy;
                }
                break;

            case OperatorState.Enemy:

                if (enemyScript.isWaitPlayer)
                {
                    playerScript.isWaitPlayer = true;
                    StartCoroutine("WaitUI");

                    StartCoroutine("WaitAI");
                    mState = OperatorState.Player;
                }
                break;
            }
        }
    }
Exemple #13
0
    // Update is called once per frame
    void Update()
    {
        //如果敌我双方有一方生命值为0,则游戏结束
        if (playerScript.HP == 0)
        {
            mState = OperatorState.Quit;
            Debug.Log("游戏失败");
        }
        else if (enemyScript.HP == 0)
        {
            mState = OperatorState.Quit;
            Debug.Log("游戏胜利");
        }
        else
        {
            switch (mState)
            {
            case OperatorState.Player:
                if (!playerScript.isWaitPlayer)
                {
                    StartCoroutine("UpdateLater");
                    StartCoroutine("WaitUI");
                    mState = OperatorState.EnemyAI;
                }
                break;

            case OperatorState.EnemyAI:
                if (enemyScript.isWaitPlayer)
                {
                    StartCoroutine("WaitAI");
                    playerScript.isWaitPlayer = true;
                    mState = OperatorState.Player;

                    mAnim.SetBool("Attack", false);
                    mAnim.SetBool("Idle", true);
                }
                break;
            }
        }
    }
Exemple #14
0
 void Update()
 {
     switch(mState)
         {
         case OperatorState.Player:
            if(PlayerState==false)
             {
                 GameObject.Find("Rover").SendMessage("SetRoverState");
                 PlayerState=true;
                 mState=OperatorState.RoverAI;
             }
             break;
         case OperatorState.RoverAI:
            if(RoverState==false)
             {
                 GameObject.Find("rock1").SendMessage("SetPlayerState");
                 GameObject.Find("rock2").SendMessage("SetPlayerState");
                 RoverState=true;
                 mState=OperatorState.Player;
             }
             break;
         }
 }
Exemple #15
0
        private void NumberPressed(ButtonNumberType numberType)
        {
            string numberString = "";

            switch (numberType)
            {
            case ButtonNumberType.Zero:
                numberString = "0";
                break;

            case ButtonNumberType.One:
                numberString = "1";
                break;

            case ButtonNumberType.Two:
                numberString = "2";
                break;

            case ButtonNumberType.Three:
                numberString = "3";
                break;

            case ButtonNumberType.Four:
                numberString = "4";
                break;

            case ButtonNumberType.Five:
                numberString = "5";
                break;

            case ButtonNumberType.Six:
                numberString = "6";
                break;

            case ButtonNumberType.Seven:
                numberString = "7";
                break;

            case ButtonNumberType.Eight:
                numberString = "8";
                break;

            case ButtonNumberType.Nine:
                numberString = "9";
                break;

            case ButtonNumberType.Dot:
                if (displayNumber.StringValue.Contains(","))
                {
                    return;
                }
                numberString = ",";
                break;

            default:
                Debug.Assert(false, "Fiks det");
                break;
            }
            if (operatorState == OperatorState.Double)
            {
                previousNumber            = displayNumber.NumberValue;
                displayNumber.StringValue = numberString;
            }
            else if (operatorState == OperatorState.Single)
            {
                displayNumber.StringValue = numberString;
            }
            else
            {
                if (displayNumber.StringValue == "0" && numberString == "0")
                {
                    return;
                }
                displayNumber.StringValue += numberString;
            }
            operatorState = OperatorState.None;
            UpdateDisplay();
        }
        private void OperatorPressed(OperatorType type)
        {
            switch (type)
            {
            case OperatorType.Multiply:
                if (operatorState == OperatorState.Double)
                {
                    return;
                }
                operatorState           = OperatorState.Double;
                numberClass.NumberValue = CalculatorLogic.Multiplication(numberClass.NumberValue, numberClass.PreviousValue);
                break;

            case OperatorType.Minus:
                if (operatorState == OperatorState.Double)
                {
                    return;
                }
                operatorState           = OperatorState.Double;
                numberClass.NumberValue = CalculatorLogic.Substitution(numberClass.PreviousValue, numberClass.NumberValue);
                break;

            case OperatorType.Plus:
                if (operatorState == OperatorState.Double)
                {
                    return;
                }
                operatorState           = OperatorState.Double;
                numberClass.NumberValue = CalculatorLogic.Addition(numberClass.NumberValue, numberClass.PreviousValue);
                break;

            case OperatorType.Divide:
                if (operatorState == OperatorState.Double)
                {
                    return;
                }
                operatorState           = OperatorState.Double;
                numberClass.NumberValue = CalculatorLogic.Division(numberClass.PreviousValue, numberClass.NumberValue);
                break;

            case OperatorType.Percentage:
                if (operatorState == OperatorState.Double)
                {
                    return;
                }
                operatorState           = OperatorState.Double;
                numberClass.NumberValue = CalculatorLogic.Percentage(numberClass.PreviousValue, numberClass.NumberValue);
                break;

            case OperatorType.X2:
                operatorState           = OperatorState.Single;
                numberClass.NumberValue = CalculatorLogic.XSquared(numberClass.NumberValue);
                break;

            case OperatorType.Half:
                operatorState           = OperatorState.Single;
                numberClass.NumberValue = CalculatorLogic.XSquared(numberClass.NumberValue);
                break;

            case OperatorType.Squareroot:
                operatorState           = OperatorState.Single;
                numberClass.NumberValue = CalculatorLogic.SquareRoot(numberClass.NumberValue);
                break;

            case OperatorType.PlusMinus:
                operatorState           = OperatorState.Single;
                numberClass.NumberValue = CalculatorLogic.PlusMinus(numberClass.NumberValue);
                break;

            case OperatorType.Pi:
                operatorState           = OperatorState.Single;
                numberClass.NumberValue = CalculatorLogic.Pi();
                break;

            case OperatorType.Tan:
                operatorState           = OperatorState.Single;
                numberClass.NumberValue = CalculatorLogic.Tan(numberClass.NumberValue);
                break;

            case OperatorType.Cos:
                operatorState           = OperatorState.Single;
                numberClass.NumberValue = CalculatorLogic.Cos(numberClass.NumberValue);
                break;

            case OperatorType.Sin:
                operatorState           = OperatorState.Single;
                numberClass.NumberValue = CalculatorLogic.Sin(numberClass.NumberValue);
                break;

            case OperatorType.Log:
                operatorState           = OperatorState.Single;
                numberClass.NumberValue = CalculatorLogic.Log(numberClass.NumberValue);
                break;

            case OperatorType.TenSquared:
                operatorState           = OperatorState.Single;
                numberClass.NumberValue = CalculatorLogic.TenSquared(numberClass.NumberValue);
                break;

            default:
                Debug.Assert(false, "Fiks det");
                break;
            }

            numberClass.PreviousValue = numberClass.NumberValue;
            UpdateDisplay();
        }
        private void NumberPressed(ButtonNumberType numberType)
        {
            var numberString = "0";

            switch (numberType)
            {
            case ButtonNumberType.Zero:
                numberString = "0";
                break;

            case ButtonNumberType.One:
                numberString = "1";
                break;

            case ButtonNumberType.Two:
                numberString = "2";
                break;

            case ButtonNumberType.Three:
                numberString = "3";
                break;

            case ButtonNumberType.Four:
                numberString = "4";
                break;

            case ButtonNumberType.Five:
                numberString = "5";
                break;

            case ButtonNumberType.Six:
                numberString = "6";
                break;

            case ButtonNumberType.Seven:
                numberString = "7";
                break;

            case ButtonNumberType.Eight:
                numberString = "8";
                break;

            case ButtonNumberType.Nine:
                numberString = "9";
                break;

            case ButtonNumberType.Dot:
                if (numberClass.StringValue == "0")
                {
                    numberClass.StringValue += "0.";
                }
                if (numberClass.StringValue.Contains("."))
                {
                    return;
                }
                else
                {
                    numberString = ".";
                }
                break;

            default:
                Debug.Assert(false, "Fiks det");
                break;
            }

            switch (operatorState)
            {
            case OperatorState.None:
                if (numberClass.StringValue == "0" || Math.Abs(numberClass.NumberValue) < 0)
                {
                    return;
                }
                numberClass.StringValue += numberString;
                break;

            case OperatorState.Single:
                numberClass.StringValue = numberString;
                break;

            case OperatorState.Double:
                numberClass.PreviousValue = numberClass.NumberValue;
                numberClass.StringValue   = numberString;
                break;

            default:
                Debug.Assert(false, "Fiks det");
                break;
            }

            operatorState = OperatorState.None;
            UpdateDisplay();
        }
Exemple #18
0
        private void OperatorPressed(OperatorType type)
        {
            switch (type)
            {
            case OperatorType.Multiply:
                if (operatorState == OperatorState.Double)
                {
                    return;
                }
                operatorState             = OperatorState.Double;
                displayNumber.NumberValue = displayNumber.NumberValue * previousNumber;
                break;

            case OperatorType.Minus:
                if (operatorState == OperatorState.Double)
                {
                    return;
                }
                operatorState             = OperatorState.Double;
                displayNumber.NumberValue = previousNumber - displayNumber.NumberValue;
                break;

            case OperatorType.Plus:
                if (operatorState == OperatorState.Double)
                {
                    return;
                }
                operatorState             = OperatorState.Double;
                displayNumber.NumberValue = displayNumber.NumberValue + previousNumber;
                break;

            case OperatorType.Divide:
                if (operatorState == OperatorState.Double)
                {
                    return;
                }
                operatorState             = OperatorState.Double;
                displayNumber.NumberValue = previousNumber / displayNumber.NumberValue;
                break;

            case OperatorType.Percentage:
                if (operatorState == OperatorState.Double)
                {
                    return;
                }
                operatorState             = OperatorState.Double;
                displayNumber.NumberValue = previousNumber / 100 * displayNumber.NumberValue;
                break;

            case OperatorType.X2:
                operatorState             = OperatorState.Single;
                displayNumber.NumberValue = displayNumber.NumberValue * displayNumber.NumberValue;
                break;

            case OperatorType.Half:
                operatorState             = OperatorState.Single;
                displayNumber.NumberValue = 1 / displayNumber.NumberValue;
                break;

            case OperatorType.Squareroot:
                operatorState             = OperatorState.Single;
                displayNumber.NumberValue = Math.Sqrt(displayNumber.NumberValue);
                break;

            case OperatorType.PlusMinus:
                operatorState = OperatorState.Single;
                if (displayNumber.NumberValue < 0)
                {
                    displayNumber.NumberValue = displayNumber.NumberValue + displayNumber.NumberValue;
                }
                else
                {
                    displayNumber.NumberValue = (displayNumber.NumberValue - displayNumber.NumberValue) - displayNumber.NumberValue;
                }
                break;

            default:
                Debug.Assert(false, "Fiks det");
                break;
            }
            UpdateDisplay();
        }
 /// <summary>
 /// 结束
 /// </summary>
 public void Finish()
 {
     // 结束
     mState = OperatorState.OperatorState_Finish;
     this.OnFinish();
 }
    // Update is called once per frame
    void Update()
    {
        /***
         * 监听到回合结束
         *
         *从队列里获取下一个角色
         * 设置回合开始
         * 判定是否是用户回合
         * 如果是用户回合
         * 黑屏取消
         * 如果是npc回合
         * 设置黑屏
         */

        if (isRoundEnd)
        {
            playChara = this.getNextCharecter();
            playChara.setActionPointrolled(true);

            //  Debug.Log(playChara.getName() + " round this game");
            isRoundEnd = false;
            if (playChara.isPlayer())
            {
                if (this.roundList.Count == 0)
                {
                    //    Debug.Log("世界安静了。。。你是唯一的幸存者。。游戏结束");
                }

                mState = OperatorState.Player;
                //解除黑屏
                //解锁roll点
                roundCount++;
                StartCoroutine("charaMove");
            }
            else
            {
                if (playChara.isDead())
                {
                    Debug.Log(playChara.getName() + " :  死了");
                    isRoundEnd = true;
                }
                else
                {
                    StartCoroutine("charaMove");
                }
            }
        }



        if (!playChara.isDead())
        {
            switch (mState)
            {
            //玩家回合
            case OperatorState.Player:
                if (playChara.isRoundOver())
                {
                    this.setEndRound(playChara);
                    isRoundEnd = true;
                    mState     = OperatorState.EnemyAI;
                    //  Debug.Log("wait ai move");
                    //开始黑屏
                }

                break;

            //NPC 怪物回合
            case OperatorState.EnemyAI:
                if (playChara.isWaitPlayer())
                {
                    // mState = OperatorState.Player;
                    //解除黑屏
                    // Debug.Log("wait player Action");
                }
                else
                {
                    //开始黑屏
                }
                if (playChara.isRoundOver())
                {
                    //  Debug.Log("NPC 行动完毕了,");
                    this.setEndRound(playChara);
                    isRoundEnd = true;
                    //  Debug.Log("ai done,wait next ai move");
                }
                break;
            }
        }
        else
        {
            if (playChara.isPlayer())
            {
                //game over
                Debug.Log("你已经死了, 不要怕这只是一个梦");
            }
            else
            {
                Debug.Log("npc 死了");
                isRoundEnd = true;
            }
        }
    }
 /// <summary>
 /// 开始执行
 /// </summary>
 public void Start()
 {
     mState = OperatorState.OperatorState_Start;
     this.OnStart();
 }
Exemple #22
0
    // Update is called once per frame
    void Update()
    {
        /***
         * 监听到回合结束
         *
         *从队列里获取下一个角色
         * 设置回合开始
         * 判定是否是用户回合
         * 如果是用户回合
         * 黑屏取消
         * 如果是npc回合
         * 设置黑屏
         */

        if (isRoundEnd)
        {
            playChara = this.getNextCharecter();
            Debug.Log(playChara.getName() + " round this game");
            isRoundEnd = false;
            if (playChara.isPlayer())
            {
                mState = OperatorState.Player;
                //解除黑屏
                //解锁roll点
            }
            else
            {
                StartCoroutine("charaMove");
            }
        }



        if (!playChara.isDead())
        {
            switch (mState)
            {
            //玩家回合
            case OperatorState.Player:
                if (playChara.isRoundOver())
                {
                    this.setEndRound(playChara);
                    isRoundEnd = true;
                    mState     = OperatorState.EnemyAI;
                    Debug.Log("wait ai move");
                    //开始黑屏
                }

                break;

            //NPC 怪物回合
            case OperatorState.EnemyAI:
                if (playChara.isWaitPlayer())
                {
                    // mState = OperatorState.Player;
                    //解除黑屏
                    Debug.Log("wait player Action");
                }
                else
                {
                    //开始黑屏
                }
                if (playChara.isRoundOver())
                {
                    this.setEndRound(playChara);
                    isRoundEnd = true;
                    Debug.Log("ai done,wait next ai move");
                }
                break;
            }
        }
        else
        {
            if (playChara.isPlayer())
            {
                //game over
            }
            else
            {
                isRoundEnd = true;
            }
        }
    }
 /// <summary>
 /// 开始执行
 /// </summary>
 public void Start()
 {
     mState = OperatorState.OperatorState_Start;
     this.OnStart();
 }
 /// <summary>
 /// 结束
 /// </summary>
 public void Finish()
 {
     // 结束
     mState = OperatorState.OperatorState_Finish;
     this.OnFinish();
 }
    // Update is called once per frame
    void Update()
    {
        switch (currentState)
        {
        case OperatorState.InActivated:

            transform.forward = Vector3.right;
            if (isActivated)
            {
                currentState = OperatorState.Attacking;
                //ShowAttackRange();
            }

            break;

        case OperatorState.Idle:



            break;

        case OperatorState.Attacking:

            Vector3 AttackRange = new Vector3(AttackLength, BasicLength, AttackWidth);

            EnemiesInRange = Physics.OverlapBox(AttackMiddlePos, AttackRange / 2, Quaternion.Euler(0, RotateYAngle, 0), WhatIsEnemy);
            BlockNumber    = EnemiesInRange.Length;
            if (EnemiesInRange.Length != 0)
            {
                OperatorAni.SetBool("isAttacking", true);
                LeastDistance = 1000;
                for (int i = 0; i < EnemiesInRange.Length; i++)
                {
                    float RemainDist = EnemiesInRange[i].GetComponent <EnemyController>().RemainDistance;

                    if (RemainDist < LeastDistance)
                    {
                        LeastDistance = RemainDist;
                        targetEnemy   = EnemiesInRange[i];
                    }
                }
            }
            else
            {
                OperatorAni.SetBool("isAttacking", false);
                targetEnemy = null;
            }


            if (canAttack && targetEnemy != null)
            {
                canAttack = false;
                Attack();
                StartCoroutine(AttackCD_Count());
            }

            break;

        case OperatorState.Die:
            break;
        }
    }