private GameObject infos; // Référence à l'object Infos pour afficher dans son élément texte les informations de la partie void Start() { grille = new GrilleSudoku(9, 9); // Définition de la grille de 9 par 9 grille.initVal(0); // Toutes les cases sont à 0 GameObject diffManager = GameObject.Find("DifficultyManager"); if (diffManager) // Vérification que la scène SudokuMenu a fait son travail { if (diffManager.GetComponent <sceneManager>().resumeGame) { // Cas où l'on veut reprendre la partie du fichier sauvegardeSudoku var loadedData = JSON.Parse(File.ReadAllText(defineSudoku.cheminSauvegarde)); numGrille = loadedData["num"].ToString(); difficulte = loadedData["difficulte"]; temps = float.Parse(loadedData["timer"]); affichageTemps = loadedData["timerString"]; grille.chargementGrilleSauvegarde(); Destroy(diffManager); } else { difficulte = diffManager.GetComponent <sceneManager>().difficulty; // Récupération de la difficulté choisit dans la scène SudokuMenu Destroy(diffManager); //Choix d'un niveau au hasard selon la difficulté précedement choisie int cpt = 0; string directoryPath = defineSudoku.getCheminDifficulte(difficulte); var info = new DirectoryInfo(directoryPath); var fileInfo = info.GetFiles(); foreach (FileInfo f in fileInfo) { if (f.Extension == ".json") { cpt++; } } int level = UnityEngine.Random.Range(1, cpt + 1); numGrille = level.ToString(); } } else // Afin de pouvoir lancer la scène Sudoku sans problème { string[] level = SelectionNiveauAleatoire(); // Chaine de caractères avec la difficulté et le numéro de grille difficulte = level[0]; numGrille = level[1]; // Numéro de grille choisit au hasard } infos = GameObject.Find("Infos"); infos.GetComponent <TextMeshProUGUI>().text = "Difficulty : " + difficulte + " Level : " + numGrille + "\nTimer : " + affichageTemps; // Changement du texte des infos grille.chargementGrille(numGrille, difficulte); // Chargement de la grille avec la difficulté et son numéro de grille UIManager = GameObject.Find("Jeu").GetComponent <UIManager>(); UIManager.Init(); // Initialisation des objets visuels parent = GameObject.Find("GridManager").transform; UIManager.GenerateGrid(0f, 0f, parent); // Génération de la grille sur la scène grille.sauvegardeGrille(); // Sauvegarde de la grille dès le lancement }
// Méthode qui met à jour notre timer private void Update() { if (GameObject.Find("Infos")) { int secondes, minutes; temps += Time.deltaTime; if ((int)temps % 2 == 0) { grille.sauvegardeGrille(); // Sauvegarde de la grille toutes les 2 secondes } secondes = (int)temps % 60; minutes = (int)temps / 60; if (secondes < 10) { if (minutes < 10) { affichageTemps = "0" + minutes + ":0" + secondes; } else { affichageTemps = minutes + ":0" + secondes; } } else { if (minutes < 10) { affichageTemps = "0" + minutes + ":" + secondes; } else { affichageTemps = minutes + ":" + secondes; } } UIManager.tempsFin = affichageTemps; GameObject.Find("Infos").GetComponent <TextMeshProUGUI>().text = "Difficulté : " + difficulte + " Grille n° : " + numGrille + "\nTemps : " + affichageTemps; // Raccourci de débug if (Input.GetKeyDown(KeyCode.A)) { Debug.Log("remplirGrille()"); grille.remplirGrille(numGrille, difficulte); UIManager.UpdateGrid(); if (grille.verifGrille()) { UIManager.finishGame(); } } } }
// Méthode qui permet de mettre à jour toutes la grille sur le jeu et de vérifier la possibilité de toucher aux boutons en bas ou pas public void UpdateGrid() { grille.sauvegardeGrille(); cpt1 = 0; cpt2 = 0; cpt3 = 0; cpt4 = 0; cpt5 = 0; cpt6 = 0; cpt7 = 0; cpt8 = 0; cpt9 = 0; for (int i = 0; i < this.ligne; i++) { for (int j = 0; j < this.colonne; j++) { if (grille.getVal(i, j).valeur != 0) { switch (grille.getVal(i, j).valeur) { case 1: cpt1++; break; case 2: cpt2++; break; case 3: cpt3++; break; case 4: cpt4++; break; case 5: cpt5++; break; case 6: cpt6++; break; case 7: cpt7++; break; case 8: cpt8++; break; case 9: cpt9++; break; default: break; } if (cpt1 == 9) { switchBouton(1, false); } else { switchBouton(1, true); } if (cpt2 == 9) { switchBouton(2, false); } else { switchBouton(2, true); } if (cpt3 == 9) { switchBouton(3, false); } else { switchBouton(3, true); } if (cpt4 == 9) { switchBouton(4, false); } else { switchBouton(4, true); } if (cpt5 == 9) { switchBouton(5, false); } else { switchBouton(5, true); } if (cpt6 == 9) { switchBouton(6, false); } else { switchBouton(6, true); } if (cpt7 == 9) { switchBouton(7, false); } else { switchBouton(7, true); } if (cpt8 == 9) { switchBouton(8, false); } else { switchBouton(8, true); } if (cpt9 == 9) { switchBouton(9, false); } else { switchBouton(9, true); } //Debug.Log(cpt1 + " " + cpt2 + " " + cpt3 + " " + cpt4 + " " + cpt5 + " " + cpt6 + " " + cpt7 + " " + cpt8 + " " + cpt9); } GameObject tile = GameObject.Find("Case" + i + "_" + j); afficher(i, j, tile); } } }