class Sauvegarde
Auteur:: Brabant Mano Version:: 0.1 Date:: 09/04/2020
Cette classe permet de sauvegarder dans une base de données la progression d'un joueur sur une grille et de faire des recherches sur les sauvegardes
Public Class Methods
Cette méthode permet de creer une grille pour un compte
- param
-
compte Le compte auquel la sauvegarde est lié
-
grille La grille auquel la sauvegarde est lié
-
- return
-
raiseException Si le compte possède déjà une sauvegarde de cette grille
-
# File Core/Sauvegarde.rb, line 57 def Sauvegarde.creer(compte, grille) if(Sauvegarde.recuperer(compte, grille) == nil) begin temp = Marshal.dump(grille).force_encoding("ISO-8859-1").encode("UTF-8") Marshal.load(temp) new(:compte => compte, :grille => temp, :taille => grille.tailleX(), :difficulte => grille.difficulte(), :meilleurScore => 0) rescue temp = YAML.dump(grille).force_encoding("ISO-8859-1").encode("UTF-8") new(:compte => compte, :grille => temp, :taille => grille.tailleX(), :difficulte => grille.difficulte(), :meilleurScore => 0) end else raise("Le compte a déjà une sauvegarde de cette grille") end end
Cette méthode permet de créer un sauvegarde pour un ensemble de grille
- param
-
compte Le compte pour lequel on va créer les sauvegardes
-
grilles Un tableau qui contient les grilles à sauvegarder
-
# File Core/Sauvegarde.rb, line 39 def Sauvegarde.creerAll(compte, grilles) grilles.each do |g| Sauvegarde.creer(compte, g).sauvegarder() end end
Cette méthode permet de connaitre les sauvegardes d'un joueur pour les grilles d'une certaine taille et d'une certaine difficulté
- param
-
compte Le compte du joueur
-
taille La taille de la grille
-
difficulte La difficulte de la grille
-
- return
-
Le tableau des sauvegardes du compte de taille et difficulté données
-
# File Core/Sauvegarde.rb, line 112 def Sauvegarde.liste(compte, taille, difficulte) return Sauvegarde.where(compte: compte, taille: taille, difficulte: difficulte).to_a() end
Cette méthode permet de connaitre les sauvegardes d'un joueur
- param
-
compte Le compte du joueur
-
- return
-
Le tableau des sauvegardes du compte
-
# File Core/Sauvegarde.rb, line 100 def Sauvegarde.listeCompte(compte) return Sauvegarde.where(compte: compte).to_a() end
Cette méthode permet de supprimer toutes les sauvegardes dans la base de donnée
# File Core/Sauvegarde.rb, line 30 def Sauvegarde.razAllSauvegarde() Sauvegarde.delete_all() end
Cette méthode permet de recuperer la sauvegarde d'un compte pour une grille
- param
-
compte Le compte auquel la sauvegarde est lié
-
grille La grille auquel la sauvegarde est lié
-
- return
-
La sauvegarde si elle existe
-
nil Sinon
-
# File Core/Sauvegarde.rb, line 82 def Sauvegarde.recuperer(compte, grille) liste = Sauvegarde.listeCompte(compte) liste.each do |s| if(s.getGrille().memeSolution(grille)) return s end end return nil end
Public Instance Methods
Cette méthode permet de recupérer la grille de la sauvegarde
# File Core/Sauvegarde.rb, line 127 def getGrille() begin return Marshal.load(self.grille) rescue return YAML.load(self.grille) end end
Cette méthode permet de recupérer la grille de la sauvegarde
- return
-
Le score de la sauvegarde
-
# File Core/Sauvegarde.rb, line 159 def getScore() return self.meilleurScore end
Cette méthode permet d'enregistrer la sauvegarde
- return
-
true Si la sauvegarde est efféctué
-
false Sinon
-
# File Core/Sauvegarde.rb, line 121 def sauvegarder() return self.save() end
Cette méthode permet de modifier la grille enregistrée
- param
-
grille La nouvelle grille
-
# File Core/Sauvegarde.rb, line 141 def setGrille(grille) begin #Active record peut enregistrer du TEXT avec UTF-8 uniquement temp = Marshal.dump(grille).force_encoding("ISO-8859-1").encode("UTF-8") #on force donc la chaine en UTF-8 Marshal.load(temp) #à condition que l'on puisse la recharger sans exception self.grille = temp rescue temp = YAML.dump(grille) #Sinon on enregistre avec YAML qui est plus lent self.grille = temp end return self end
Cette méthode permet de modifier la grille enregistré
- param
-
score Le nouveau score
-
# File Core/Sauvegarde.rb, line 167 def setScore(score) self.meilleurScore = score return self end
Cette méthode permet d'afficher une sauvegarde
# File Core/Sauvegarde.rb, line 176 def to_s() return "#{self.compte} : #{self.getGrille()}" end