-
Notifications
You must be signed in to change notification settings - Fork 0
/
script.js
221 lines (173 loc) · 8.04 KB
/
script.js
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
'use strict';
//Tahmin edilecek rastgele sayı (1-20 arasında)
//Değişken let ile oluşturulmalı ki again buttonuna basıldığında tekrar rastgele sayı üretmesi için
let rastgeleSayı = Math.trunc(Math.random() * 20 + 1);
//Oyuncunun yanlış tahminiyle düşecek puanın tutulduğu değişken
let score = 20;
//En yüksek skorun tutulması:
let yüksekSkor = 0;
//refactoring -
const ekranMesajı = function (girdi) {
document.querySelector('.message').textContent = girdi;
};
//Tahmin edilecek sayı ve oluşacak eventler
//HTML'de class'lara ulaşılacak
document.querySelector('.check').addEventListener('click', () => {
//guess HTML'de bir input olduğu için girilen değer tipi önemli. Bu yüzden bu değeri Number fonksiyonu ile bir sayıya çevirip, bu sayıyı (dğer/value) seçmeliyiz.
const guess = Number(document.querySelector('.guess').value);
//Sayının girilmesiyle oluşacak koşul bloğu
//Hiçbir değer girilmez ise:
if (!guess) {
//Değer girilmediği durumda !guess şeklinde boş değere cevap verecek koşul
ekranMesajı('⛔️ Insert a number ⛔️');
}
//oyuncunun tahmini doğru olup, kazandığı zaman gerçekleşecek koşul:
else if (guess === rastgeleSayı) {
ekranMesajı('🎉 Congratulations you find it ! 🎉');
document.querySelector('.number').textContent = rastgeleSayı;
//Kazandıktan sonra CSS'de gerçekleşecek olan değişiklikler
document.querySelector('body').style.backgroundColor = '#60b347';
document.querySelector('.number').style.width = '30rem';
if (score > yüksekSkor) {
yüksekSkor = score;
document.querySelector('.highscore').textContent = yüksekSkor;
}
}
//oyuncunun yanlış tahmin yaptığı koşullar:
else if (guess !== rastgeleSayı) {
//oyunun kaybedilebilmesi ve - değerlere inmemesi için puanın 1'den büyük olması gerekli
if(score > 1){
guess < rastgeleSayı ? ekranMesajı('Too low 📉') : ekranMesajı('Too high 📈');
//her yanlış tahminde tanımlanan başlangıç puanı olan 20'den bir puan düşmesi için
score--;
document.querySelector('.score').textContent = score;
}
//puan < 1 olduğunda kaybedilmesi
else{
ekranMesajı('👎 You Lost ! 👎')
document.querySelector('body').style.backgroundColor = '#990000'
document.querySelector('.main-heading').textContent = '🚬🚬 Başaramadık abi... 🚬🚬';
document.querySelector('.number').textContent = rastgeleSayı;
document.querySelector('.score').textContent = '0'
document.querySelector('.guess').value = ''
}
}
});
//Again button'u
document.querySelector('.again').addEventListener('click', () => {
//tekrar oynanacağı zaman puanın tekrar 20 olması ve rastgele sayının yenilenmesi gerekli:
score = 20;
document.querySelector('.score').textContent = score;
rastgeleSayı = Math.trunc(Math.random() * 20 + 1);
//css özelliklerinin ve yazıların ilk haline dönmesi
document.querySelector('body').style.backgroundColor = '#555';
document.querySelector('.number').style.width = '15rem';
ekranMesajı('Start guessing...')
document.querySelector('.number').textContent = '?';
document.querySelector('.main-heading').textContent = 'Guess My Number!'
document.querySelector('.guess').value = ''
});
//Dil seçeneği:
//Türkçe dil seçeneği
document.querySelector('.tr').addEventListener("click", () => {
document.querySelector('.between').textContent = '(1 ile 20 Arasında)';
document.querySelector('.again').textContent = 'Tekrar!';
document.querySelector('.again').style.left = '1.25rem';
document.querySelector('.main-heading').textContent = 'Sayımı Tahmin Et!';
document.querySelector('.check').textContent = 'Kontrol et!';
document.querySelector('.message').textContent = 'Tahmine başla...';
document.querySelector('#label-score').textContent = '💯 Puan:';
document.querySelector('#label-highscore').textContent = '🥇 En yüksek puan:';
//Koşul bloğu zaten tanımlandığı için TR dil seçeneğinde gerçekleşecek olan koşullar şu şekildedir:
document.querySelector('.check').addEventListener('click', () => {
const guess = Number(document.querySelector('.guess').value);
//oyuncu hiçbir değer girmeden tahmin yaparsa:
if (!guess) {
ekranMesajı('⛔️ Sayı giriniz ! ⛔️');
}
//oyuncunun tahmini doğru olduğu zaman:
else if (guess === rastgeleSayı) {
ekranMesajı('🎉Tebrikler Buldun ! 🎉');
document.querySelector('.number').textContent = rastgeleSayı;
if (score > yüksekSkor) {
yüksekSkor = score;
document.querySelector('.highscore').textContent = yüksekSkor;
}
}
//oyuncunun yanlış tahmin yaptığı koşullar
else if (guess !== rastgeleSayı) {
if(score > 1){
guess < rastgeleSayı ? ekranMesajı('Çok düşük 📉') : ekranMesajı('Çok yüksek 📈');
document.querySelector('.score').textContent = score;
}
else{
ekranMesajı('👎 Kaybettin ! 👎')
}
}
}
);
//Tr dil seçeneği aktifken oyunu tekrar etmek için:
document.querySelector('.again').addEventListener('click', () => {
score = 20;
document.querySelector('.score').textContent = score;
rastgeleSayı = Math.trunc(Math.random() * 20 + 1);
document.querySelector('body').style.backgroundColor = '#555';
document.querySelector('.number').style.width = '15rem';
ekranMesajı('Tahmine başla...')
document.querySelector('.number').textContent = '?';
document.querySelector('.main-heading').textContent = 'Sayımı Tahmin Et!'
document.querySelector('.guess').value = ''
});
})
//Ingilizce dil seçeneği
//Sayfayı yenileyerek default değer olan ingilizceye dönmek için
document.querySelector('.en').addEventListener("click", () => {
document.querySelector('.between').textContent = '(Between 1 and 20)';
document.querySelector('.again').textContent = 'Again!';
document.querySelector('.again').style.left = '1.25rem';
document.querySelector('.main-heading').textContent = 'Guess My Number!';
document.querySelector('.check').textContent = 'Check!';
document.querySelector('.message').textContent = 'Start guessing...';
document.querySelector('#label-score').textContent = '💯 Score:';
document.querySelector('#label-highscore').textContent = '🥇 High Score:';
//Koşul bloğu zaten tanımlandığı için TR dil seçeneğinde gerçekleşecek olan koşullar şu şekildedir:
document.querySelector('.check').addEventListener('click', () => {
const guess = Number(document.querySelector('.guess').value);
//oyuncu hiçbir değer girmeden tahmin yaparsa:
if (!guess) {
ekranMesajı('⛔️ Insert a number ! ⛔️');
}
//oyuncunun tahmini doğru olduğu zaman:
else if (guess === rastgeleSayı) {
ekranMesajı('🎉Congratulations you find it ! ! 🎉');
document.querySelector('.number').textContent = rastgeleSayı;
if (score > yüksekSkor) {
yüksekSkor = score;
document.querySelector('.highscore').textContent = yüksekSkor;
}
}
//oyuncunun yanlış tahmin yaptığı koşullar
else if (guess !== rastgeleSayı) {
if(score > 1){
guess < rastgeleSayı ? ekranMesajı('Too low 📉') : ekranMesajı('Too high 📈');
document.querySelector('.score').textContent = score;
}
else{
ekranMesajı('👎 You lost ! 👎')
}
}
}
);
//En dil seçeneği aktifken oyunu tekrar etmek için:
document.querySelector('.again').addEventListener('click', () => {
score = 20;
document.querySelector('.score').textContent = score;
rastgeleSayı = Math.trunc(Math.random() * 20 + 1);
document.querySelector('body').style.backgroundColor = '#555';
document.querySelector('.number').style.width = '15rem';
ekranMesajı('Tahmine başla...')
document.querySelector('.number').textContent = '?';
document.querySelector('.main-heading').textContent = 'Guess My Number!'
document.querySelector('.guess').value = ''
});
})