Beispiel #1
0
    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
    }
Beispiel #2
0
 // 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();
             }
         }
     }
 }
Beispiel #3
0
    // 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);
            }
        }
    }