Class: Score
Overview
Modèle pour le score
Instance Attribute Summary collapse
-
#difficulte ⇒ Object
Returns the value of attribute difficulte.
Attributes inherited from Model
Instance Method Summary collapse
-
#calcul(penalite, tempsChrono) ⇒ Object
Calcule le score du joueur.
-
#creer(pseudo, niveau, score) ⇒ Object
Crée un score dans la table score pour l'utilisateur.
-
#initialize ⇒ Score
constructor
Initialisation.
-
#meilleursScores(n) ⇒ Object
Récupère les n meilleures scores.
-
#mettreAJour(score_id, score) ⇒ Object
Met à jour le score d'un utilisateur.
-
#scoreUtilisateur(pseudo) ⇒ Object
Récupère les scores de l'utilisateur.
Methods inherited from Model
#connection, inherited, #insert, #mkDatabaseDir, #to_h
Constructor Details
#initialize ⇒ Score
Initialisation
16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/model/Score.rb', line 16 def initialize() ## Crée la table Score @@db.execute "CREATE TABLE IF NOT EXISTS score ( score_id integer primary key autoincrement, niveau integer NOT NULL, score integer NOT NULL, utilisateur integer, FOREIGN KEY(utilisateur) REFERENCES utilisateur(utilisateur_id) );" @difficulte = nil end |
Instance Attribute Details
#difficulte ⇒ Object
Returns the value of attribute difficulte
11 12 13 |
# File 'app/model/Score.rb', line 11 def difficulte @difficulte end |
Instance Method Details
#calcul(penalite, tempsChrono) ⇒ Object
Calcule le score du joueur
90 91 92 93 94 95 96 97 98 |
# File 'app/model/Score.rb', line 90 def calcul(penalite, tempsChrono) tempsResoluMoy = 3*60 evolutionScore = (tempsResoluMoy - tempsChrono) + ((tempsResoluMoy/10)*(20 - penalite)) scoreCourant = (@difficulte)*evolutionScore return scoreCourant end |
#creer(pseudo, niveau, score) ⇒ Object
Crée un score dans la table score pour l'utilisateur
63 64 65 66 67 68 69 70 |
# File 'app/model/Score.rb', line 63 def creer(pseudo, niveau, score) ## Récupère id utilisateur req = @@db.execute "SELECT utilisateur_id FROM utilisateur WHERE pseudo= ?", pseudo insert(:utilisateur => req[0], :niveau => niveau, :score => score) return self end |
#meilleursScores(n) ⇒ Object
Récupère les n meilleures scores
48 49 50 51 52 |
# File 'app/model/Score.rb', line 48 def meilleursScores(n) req = @@db.execute2 "SELECT * FROM utilisateur INNER JOIN score ON utilisateur=utilisateur_id ORDER BY score DESC LIMIT ?;", n return self.to_h(req) end |
#mettreAJour(score_id, score) ⇒ Object
Met à jour le score d'un utilisateur
78 79 80 |
# File 'app/model/Score.rb', line 78 def mettreAJour(score_id, score) @@db.execute "UPDATE score SET score= ? WHERE score_id = ?", score, score_id end |
#scoreUtilisateur(pseudo) ⇒ Object
Récupère les scores de l'utilisateur
36 37 38 39 |
# File 'app/model/Score.rb', line 36 def scoreUtilisateur(pseudo) req = @@db.execute2 "SELECT * FROM utilisateur INNER JOIN score ON utilisateur=utilisateur_id WHERE pseudo=?;", pseudo return self.to_h(req) end |