Skip to content

Commit ce5c576

Browse files
author
Brigit Murtaugh
committed
fixed levels
1 parent 108bf47 commit ce5c576

1 file changed

Lines changed: 43 additions & 13 deletions

File tree

frogger-game.html

Lines changed: 43 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,40 @@ <h2 class="mb-4"><a href="#frogger-game" id="frogger-game">Frogger Game</a></h2>
2020
const grid = 50;
2121
const rows = 10;
2222
const cols = 8;
23-
let frog, cars, gameOver, win;
23+
let frog, cars, gameOver, win, level, maxLevel;
2424

25-
function resetGame() {
26-
frog = { x: 3, y: 9 };
27-
cars = [
28-
{ y: 7, speed: 2, dir: 1, positions: [0, 4] },
29-
{ y: 6, speed: 3, dir: -1, positions: [2, 6] },
30-
{ y: 5, speed: 2, dir: 1, positions: [1, 5] },
31-
{ y: 3, speed: 3, dir: -1, positions: [3, 7] }
25+
26+
function getCarsForLevel(lvl) {
27+
// Increase number of cars and speed with each level
28+
const baseCars = [
29+
{ y: 7, speed: 2 + lvl, dir: 1, positions: [0, 4] },
30+
{ y: 6, speed: 3 + Math.floor(lvl/2), dir: -1, positions: [2, 6] },
31+
{ y: 5, speed: 2 + Math.floor(lvl/2), dir: 1, positions: [1, 5] },
32+
{ y: 3, speed: 3 + lvl, dir: -1, positions: [3, 7] }
3233
];
34+
if (lvl > 1) {
35+
// Add more cars for higher levels
36+
baseCars.push({ y: 4, speed: 2 + lvl, dir: lvl % 2 === 0 ? 1 : -1, positions: [0, 6] });
37+
}
38+
if (lvl > 2) {
39+
baseCars.push({ y: 2, speed: 3 + lvl, dir: lvl % 2 === 1 ? 1 : -1, positions: [2, 5] });
40+
}
41+
return baseCars;
42+
}
43+
44+
function resetGame(newLevel) {
45+
frog = { x: 3, y: 9 };
46+
level = typeof newLevel === 'number' ? newLevel : 1;
47+
maxLevel = 5;
48+
cars = getCarsForLevel(level);
3349
gameOver = false;
3450
win = false;
3551
}
3652

37-
resetGame();
53+
resetGame(1);
3854
// Restart button handler
3955
document.getElementById('restartBtn').addEventListener('click', function() {
40-
resetGame();
56+
resetGame(level);
4157
});
4258

4359
function drawFrog() {
@@ -117,10 +133,19 @@ <h2 class="mb-4"><a href="#frogger-game" id="frogger-game">Frogger Game</a></h2>
117133
}
118134
}
119135

136+
let advancingLevel = false;
120137
function checkWin() {
121-
if (frog.y === 0) {
122-
win = true;
123-
gameOver = true;
138+
if (frog.y === 0 && !advancingLevel) {
139+
if (level < maxLevel) {
140+
advancingLevel = true;
141+
setTimeout(() => {
142+
resetGame(level + 1);
143+
advancingLevel = false;
144+
}, 800);
145+
} else {
146+
win = true;
147+
gameOver = true;
148+
}
124149
}
125150
}
126151

@@ -161,6 +186,11 @@ <h2 class="mb-4"><a href="#frogger-game" id="frogger-game">Frogger Game</a></h2>
161186
ctx.moveTo(36, canvas.height/2);
162187
ctx.lineTo(canvas.width, canvas.height/2);
163188
ctx.stroke();
189+
// Draw level indicator
190+
ctx.fillStyle = '#fff';
191+
ctx.font = 'bold 18px sans-serif';
192+
ctx.textAlign = 'left';
193+
ctx.fillText('Level: ' + level + ' / ' + maxLevel, 48, 32);
164194
drawFrog();
165195
drawCars();
166196
if (gameOver) {

0 commit comments

Comments
 (0)