Example #1
0
    void FixedUpdate()
    {
        if(!animationRunning && rotationQueue.Count > 0) {
            animationRunning = true;

            // something changed, win sound can be played again
            playedWinSound = false;

            currentItem = rotationQueue.Dequeue();

            doRotation(currentItem);
        }

        if (!playedWinSound && this.IsSolved() && rotationQueue.Count == 0) {
            playedWinSound = true;

            SoundManager.PlayWinSound();
        }
    }
Example #2
0
    private void enqueueItem(int axisNum, Rotation rotation)
    {
        this.backupSelections();

        RotationQueueItem item = new RotationQueueItem();

        item.axisNum = axisNum;
        item.rotation = rotation;

        rotationQueue.Enqueue(item);
    }
Example #3
0
    private void enqueueRandomAction()
    {
        int rnd = Random.Range(0, 6);

        int element = Random.Range(0, 100) > 50 ? 0 : 2;

        RotationQueueItem item = new RotationQueueItem();

        item.axisNum = element;

        switch(rnd) {
            case 0:
                item.rotation = Rotation.ROW_RIGHT;
                break;
            case 1:
                item.rotation = Rotation.COLUMN_UP;
                break;
            case 2:
                item.rotation = Rotation.LAYER_LEFT;
                break;
            case 3:
                item.rotation = Rotation.ROW_LEFT;
                break;
            case 4:
                item.rotation = Rotation.COLUMN_DOWN;
                break;
            case 5:
                item.rotation = Rotation.LAYER_RIGHT;
                break;
        }

        rotationQueue.Enqueue(item);
    }
Example #4
0
 private void doRotation(RotationQueueItem item)
 {
     switch(item.rotation) {
         case Rotation.ROW_LEFT:
             this.rotateRowToLeft(item.axisNum);
             break;
         case Rotation.ROW_RIGHT:
             this.rotateRowToRight(item.axisNum);
             break;
         case Rotation.COLUMN_UP:
             this.rotateColumnUp(item.axisNum);
             break;
         case Rotation.COLUMN_DOWN:
             this.rotateColumnDown(item.axisNum);
             break;
         case Rotation.LAYER_LEFT:
             this.rotateLayerToLeft(item.axisNum);
             break;
         case Rotation.LAYER_RIGHT:
             this.rotateLayerToRight(item.axisNum);
             break;
     }
 }