void Start() { _moduleId = _moduleIdCounter++; for (int i = 0; i < 4; i++) { int j = i; DirectionalButtons [i].OnInteract += delegate() { HandleDirectionalButton(j); return(false); }; } for (int i = 0; i < 2; i++) { int j = i; RotationalButtons [i].OnInteract += delegate() { HandleRotationalButton(j); return(false); }; } for (int i = 0; i < 2; i++) { int j = i; ScrollerButtons [i].OnInteract += delegate() { HandleScrollerButton(j); return(false); }; } ButtonVerifySolution.OnInteract += HandleVerifySolution; int solution_index = Rnd.Range(0, solutionNames.Count); solutionState = solutionStates[solution_index]; solutionName = solutionNames[solution_index]; scroller = new Scroller(solutionNames, ScrollerText); displayboard = new Board_6x6(solutionState); UpdateGrid(displayboard.getBoardState()); FocusBox.transform.localPosition = displayboard.getFocusBoxCoords(); Debug.LogFormat("[Grid Matching #{0}] Seed Grid: {1} Seed Label: {2}", _moduleId, solutionStates[solution_index], solutionName); Board_6x6.printBoard(solutionStates[solution_index]); Debug.LogFormat("[Grid Matching #{0}] Solution Grid: {1} Solution Label: {2}", _moduleId, displayboard.getSolutionState(), solutionName); Board_6x6.printBoard(displayboard.getSolutionState()); Debug.LogFormat("[Grid Matching #{0}] Current Grid: {1} Current Label: {2}", _moduleId, displayboard.getBoardState(), scroller.getState()); Board_6x6.printBoard(displayboard.getBoardState()); }
private void HandleDirectionalButton(int i) { Audio.PlayGameSoundAtTransform(KMSoundOverride.SoundEffect.ButtonPress, DirectionalButtons[i].transform); DirectionalButtons[i].AddInteractionPunch(buttonbump); Vector3 currentposition = FocusBox.transform.localPosition; switch (i) { case 0: if (currentposition.z > -0.02f) { currentposition.z -= 0.02f; displayboard.translate(Direction.DOWN); } break; case 1: if (currentposition.x > 0.00f) { currentposition.x -= 0.02f; displayboard.translate(Direction.LEFT); } break; case 2: if (currentposition.z < 0.02f) { currentposition.z += 0.02f; displayboard.translate(Direction.UP); } break; case 3: if (currentposition.x < 0.04f) { currentposition.x += 0.02f; displayboard.translate(Direction.RIGHT); } break; } FocusBox.transform.localPosition = currentposition; UpdateGrid(displayboard.getBoardState()); }
public bool checkProposedSolution(Board_6x6 playboard) { return((playboard.getBoardState() ^ this.solution) == 0); }