Class: Score

Inherits:
Model show all
Defined in:
app/model/Score.rb

Overview

Modèle pour le score

Instance Attribute Summary collapse

Attributes inherited from Model

#db

Instance Method Summary collapse

Methods inherited from Model

#connection, inherited, #insert, #mkDatabaseDir, #to_h

Constructor Details

#initializeScore

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

#difficulteObject

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

Parameters:

  • penalite

    Nombre de pénalités

  • tempsChrono

    L'état du chrono

Returns:

  • Score de l'utilisateur



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

Parameters:

  • pseudo

    Le pseudo utilisateur

  • niveau

    Niveau de difficulté de la partie

  • score

    Score

Returns:

  • Self



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

Parameters:

  • n

    Nombre de scores à récupérer

Returns:

  • Les scores (tableau de hash)



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

Parameters:

  • score_id

    Id du score

  • score

    Score



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

Parameters:

  • pseudo

    Pseudo de l'utilisateur

Returns:

  • Les scores (tableau de hash)



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