-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathJogo_da_adivinhacao.rb
140 lines (118 loc) · 3.75 KB
/
Jogo_da_adivinhacao.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
def da_boas_vindas
limpar_tela
puts
puts " P /_\\ P "
puts " /_\\_|_|_/_\\ "
puts " n_n | ||. .|| | n_n Bem vindo ao "
puts " |_|_|nnnn nnnn|_|_| Jogo de Adivinhação!"
puts " |' ' | |_| |' ' | "
puts " |_____| ' _ ' |_____| "
puts " \\__|_|__/ "
puts
puts "Qual seu Nome: "
nome = gets.strip
puts "O jogo começará agora #{ nome }! \nVocê terá 5 chances."
nome
end
def limpar_tela
puts "\n\n\n\n\n\n"
end
def pede_dificuldade
puts "Qual o nível de dificuldade?"
puts "(1) Muito fácil (2) Fácil (3) Normal (4) Difícil (5) Impossível"
puts "Escolha: "
dificuldade = gets.to_i
end
def sorteia_numero_secreto(dificuldade)
case dificuldade
when 1
maximo = 30
when 2
maximo = 60
when 3
maximo = 100
when 4
maximo = 150
else
maximo = 200
end
puts "Um numero secreto entre 1 e #{maximo} está sendo processado..."
numero_secreto = (rand maximo)+1
puts "Numero sorteado, Boa Sorte!"
numero_secreto
end
def pede_um_numero(numeros_tentados, tentativas, limite_de_tentativas)
puts "Tentativa #{ tentativas } de #{ limite_de_tentativas }"
puts "Numeros que você já tentou: #{ numeros_tentados }"
puts "Entre com um número: "
numero = gets.strip
numero.to_i
end
def ganhou
puts
puts " OOOOOOOOOOO "
puts " OOOOOOOOOOOOOOOOOOO "
puts " OOOOOO OOOOOOOOO OOOOOO "
puts " OOOOOO OOOOO OOOOOO "
puts " OOOOOOOO # OOOOO # OOOOOOOO "
puts " OOOOOOOOOO OOOOOOO OOOOOOOOOO "
puts "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO "
puts "OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO "
puts "OOOO OOOOOOOOOOOOOOOOOOOOOOOOO OOOO "
puts " OOOO OOOOOOOOOOOOOOOOOOOOOOO OOOO "
puts " OOOO OOOOOOOOOOOOOOOOOOOO OOOO "
puts " OOOOO OOOOOOOOOOOOOOO OOOO "
puts " OOOOOO OOOOOOOOO OOOOOO "
puts " OOOOOO OOOOOO "
puts " OOOOOOOOOOOO "
puts
puts " Acertou! "
puts
end
def verifica_se_acertou(numero, numero_secreto)
acertou = numero == numero_secreto
if acertou
limpar_tela
ganhou
return true
end
maior = numero_secreto > numero
if maior
limpar_tela
puts "Numero secreto é maior."
else
limpar_tela
puts "Numero secreto é menor."
end
false
end
def joga(nome, dificuldade)
limite_de_tentativas = 5
numeros_tentados = []
pontos_ate_agora = 1000
numero_secreto = sorteia_numero_secreto dificuldade
for tentativas in 1..limite_de_tentativas
numero = pede_um_numero numeros_tentados, tentativas, limite_de_tentativas
numeros_tentados << numero
if nome == "jose"
ganhou
break
end
pontos_a_perder = (numero - numero_secreto).abs / 2.0
pontos_ate_agora -= pontos_a_perder
break if verifica_se_acertou numero, numero_secreto
end
limpar_tela
puts "Game Over!!!\nTotal de pontos: #{pontos_ate_agora}"
end
def nao_quer_jogar
puts "Deseja jogar novamente? (S/N)"
quero_jogar = gets.strip
nao_quer_jogar = quero_jogar.upcase == "N"
end
dificuldade = pede_dificuldade
nome = da_boas_vindas
loop do
joga nome, dificuldade
break if nao_quer_jogar
end