Skip to content
Snippets Groups Projects
Commit 40b1bb16 authored by Sofiane Lasri's avatar Sofiane Lasri
Browse files

Merge remote-tracking branch 'refs/remotes/origin/main'

parents 647f6755 edfa895f
Branches
No related tags found
No related merge requests found
...@@ -30,9 +30,6 @@ extension UIView { ...@@ -30,9 +30,6 @@ extension UIView {
class GameViewController: UIViewController { class GameViewController: UIViewController {
let mainstoryboard = UIStoryboard(name: "Game", bundle: nil)
var wordToGuess : String = ""
@IBOutlet weak var wordLabel: UILabel! @IBOutlet weak var wordLabel: UILabel!
@IBOutlet weak var A_Button: UIButton! @IBOutlet weak var A_Button: UIButton!
...@@ -141,22 +138,23 @@ class GameViewController: UIViewController { ...@@ -141,22 +138,23 @@ class GameViewController: UIViewController {
InputButton(inputButton: N_Button) InputButton(inputButton: N_Button)
} }
func InputButton(inputButton: UIButton) { func InputButton(inputButton: UIButton) {
guard let letter = inputButton.titleLabel?.text else { guard let letter = inputButton.titleLabel?.text else {
return return
} }
guessLetter(Character(letter)) guessLetter(String(letter))
inputButton.isEnabled = false inputButton.isEnabled = false
} }
func penduImage(nameFile: String) {
let image = UIImage(named: nameFile)
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: 50, y: 250, width: 250, height: 250)
view.addSubview(imageView)
}
var currentWordState = "" var currentWordState: [String] = []
var wordToGuess : String = ""
var isWordFound = false
var incorrectGuesses = 0
override func viewDidLoad() { override func viewDidLoad() {
view.addBackground() view.addBackground()
...@@ -164,8 +162,8 @@ class GameViewController: UIViewController { ...@@ -164,8 +162,8 @@ class GameViewController: UIViewController {
print(wordToGuess) print(wordToGuess)
initializeWordState() initializeWordState()
updateWordLabel() updateWordLabel()
updateImage()
penduImage(nameFile: "humain8")
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 40)) let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 40))
label.center = CGPoint(x: 170, y: 230) label.center = CGPoint(x: 170, y: 230)
label.font = UIFont(name: "whatever it takes", size: 40) label.font = UIFont(name: "whatever it takes", size: 40)
...@@ -176,30 +174,140 @@ class GameViewController: UIViewController { ...@@ -176,30 +174,140 @@ class GameViewController: UIViewController {
} }
func initializeWordState() { func initializeWordState() {
for _ in wordToGuess { let words = wordToGuess.components(separatedBy: " ")
currentWordState += "_" print(words)
for word in words {
var wordState = ""
for _ in word {
wordState += "_"
}
currentWordState.append(wordState)
} }
} }
func updateWordLabel() { func updateWordLabel() {
wordLabel.text = currentWordState let wordString = currentWordState.joined(separator: " ")
wordLabel.text = wordString
} }
func guessLetter(_ letter:Character) { func checkIfWordFound() {
let guessedLetter = letter.uppercased() if currentWordState.joined() == wordToGuess {
guard wordToGuess.contains(guessedLetter) isWordFound = true
else { wordLabel.textColor = UIColor.green
return A_Button.isHidden = true
Z_Button.isHidden = true
E_Button.isHidden = true
R_Button.isHidden = true
T_Button.isHidden = true
Y_Button.isHidden = true
U_Button.isHidden = true
I_Button.isHidden = true
O_Button.isHidden = true
P_Button.isHidden = true
Q_Button.isHidden = true
S_Button.isHidden = true
D_Button.isHidden = true
F_Button.isHidden = true
G_Button.isHidden = true
H_Button.isHidden = true
J_Button.isHidden = true
K_Button.isHidden = true
L_Button.isHidden = true
M_Button.isHidden = true
W_Button.isHidden = true
X_Button.isHidden = true
C_Button.isHidden = true
V_Button.isHidden = true
B_Button.isHidden = true
N_Button.isHidden = true
}
} }
for (index, char) in wordToGuess.enumerated() {
if char.uppercased() == guessedLetter {
let startIndex = currentWordState.startIndex
let offsetIndex = currentWordState.index(startIndex, offsetBy: index)
currentWordState.replaceSubrange(offsetIndex...offsetIndex, with: String(char)) func guessLetter(_ letter:String) {
let guessedLetter = letter.uppercased()
var updateWordState = currentWordState
var guessedCorrectly = false
for (wordIndex, word) in wordToGuess.components(separatedBy: " ").enumerated() {
var updateWord = ""
let wordCharacters = Array(currentWordState[wordIndex])
for (charIndex, char) in word.enumerated() {
let currentChar = String(char)
if currentChar.uppercased() == guessedLetter {
updateWord += currentChar
guessedCorrectly = true
} else {
let currentWordStateChar = String(wordCharacters[charIndex])
updateWord += currentWordStateChar
} }
} }
updateWordState[wordIndex] = updateWord
}
currentWordState = updateWordState
updateWordLabel() updateWordLabel()
checkIfWordFound()
if !guessedCorrectly {
updateImage()
}
}
func updateImage() {
let maxIncorrectGuesses = 8
let imageName: String
incorrectGuesses += 1
if incorrectGuesses <= maxIncorrectGuesses - 1 {
imageName = "humain\(incorrectGuesses)"
} else {
imageName = "humain8"
wordLabel.textColor = UIColor.red
wordLabel.text = "Perdu"
A_Button.isHidden = true
Z_Button.isHidden = true
E_Button.isHidden = true
R_Button.isHidden = true
T_Button.isHidden = true
Y_Button.isHidden = true
U_Button.isHidden = true
I_Button.isHidden = true
O_Button.isHidden = true
P_Button.isHidden = true
Q_Button.isHidden = true
S_Button.isHidden = true
D_Button.isHidden = true
F_Button.isHidden = true
G_Button.isHidden = true
H_Button.isHidden = true
J_Button.isHidden = true
K_Button.isHidden = true
L_Button.isHidden = true
M_Button.isHidden = true
W_Button.isHidden = true
X_Button.isHidden = true
C_Button.isHidden = true
V_Button.isHidden = true
B_Button.isHidden = true
N_Button.isHidden = true
} }
let image = UIImage(named: imageName)
let imageView = UIImageView(image: image!)
imageView.frame = CGRect(x: 50, y: 250, width: 250, height: 250)
view.addSubview(imageView)
if let image = UIImage(named: imageName) {
imageView.image = image
}
}
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment