public void ChooseGrid(GameObject g) { int tempRow = -1, tempCol = -1; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { if (grids[i, j] == g) { tempRow = i; tempCol = j; } } } if (!SudokuDataManagement.GetExistedInQues(difficulty, sudokuIndex, tempRow, tempCol)) { if (chosenGridPosRow != -1) { grids[chosenGridPosRow, chosenGridPosCol].transform.parent.GetChild(0).gameObject.SetActive(false); } g.transform.parent.GetChild(0).gameObject.SetActive(true); chosenGridPosRow = tempRow; chosenGridPosCol = tempCol; } }
// Update is called once per frame void Update() { if (start) { start = false; ClearAllGrids(); sudokuIndex = SudokuDataManagement.GetQuestionIndex(difficulty); AssignQuestion(); } }
private void AssignQuestion() { for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { int number = SudokuDataManagement.GetNumber(difficulty, sudokuIndex, i, j); if (SudokuDataManagement.GetExistedInQues(difficulty, sudokuIndex, i, j)) { images[i, j].sprite = 一到九圖案[number - 1]; GameObject tempG = images[i, j].transform.parent.GetChild(0).gameObject; tempG.SetActive(true); tempG.GetComponent <Image>().sprite = QuestionPanel; recordedNumbers[i, j] = number; } else { recordedNumbers[i, j] = 0; } } } }
public void ClickConfirm() { if (chosenGridPosRow != -1) { grids[chosenGridPosRow, chosenGridPosCol].transform.parent.GetChild(0).gameObject.SetActive(false); } chosenGridPosRow = -1; chosenGridPosCol = -1; for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { if (recordedNumbers[i, j] != SudokuDataManagement.GetNumber(difficulty, sudokuIndex, i, j)) { EndImage.sprite = 失敗; EndPanel.SetActive(true); return; } } } EndImage.sprite = 正確; EndPanel.SetActive(true); SudokuDataManagement.SetIndexPlayed(sudokuIndex, difficulty); }
// Start is called before the first frame update void Start() { string text; if (匯入難度 == SudokuDifficulty.Easy) { text = File.ReadAllText(Application.dataPath + "\\素材\\SudokuData\\easy.txt"); } else { text = File.ReadAllText(Application.dataPath + "\\素材\\SudokuData\\normal.txt"); } bool putAnswerTime = true; int rowNum = 0; Sudoku sudoku = new Sudoku { sudoku = new SudokuRow[9], played = false }; SudokuRow row = new SudokuRow { row = new OneNumber[9] }; int columnIndex = 0; for (int i = 0; i < text.Length; i++) { if (text[i] == '\r') { i++; if (putAnswerTime) { sudoku.sudoku[rowNum] = row; row = new SudokuRow { row = new OneNumber[9] }; } else { if (columnIndex != 9) { for (int j = columnIndex; j < 9; j++) { sudoku.sudoku[rowNum].row[j].existedInQues = false; } } columnIndex = 0; } rowNum++; if (rowNum == 9) { rowNum = 0; if (!putAnswerTime) { //put final sudoku into data SudokuDataManagement.AddSudoku(sudoku, 匯入難度); sudoku = new Sudoku { sudoku = new SudokuRow[9], played = false }; } putAnswerTime = !putAnswerTime; } } else { if (putAnswerTime) //put answer { row.row[columnIndex] = new OneNumber { number = text[i] - 48, existedInQues = false }; columnIndex = (columnIndex == 8) ? 0 : columnIndex + 1; } else //indicate the question { int checkIndex = columnIndex; while (/*text[i] != '\n' && */ sudoku.sudoku[rowNum].row[checkIndex].number != text[i] - 48) { sudoku.sudoku[rowNum].row[checkIndex].existedInQues = false; checkIndex++; } sudoku.sudoku[rowNum].row[checkIndex].existedInQues = true; columnIndex = checkIndex + 1; } } } }