Skip to content

Commit 9e35738

Browse files
author
Brigit Murtaugh
committed
build stages
1 parent 98a5b9f commit 9e35738

1 file changed

Lines changed: 58 additions & 5 deletions

File tree

frogger-game.html

Lines changed: 58 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,50 @@ <h2 class="mb-4"><a href="#frogger-game" id="frogger-game">Frogger Game</a></h2>
2121
const rows = 10;
2222
const cols = 8;
2323
let frog, cars, gameOver, win, level, maxLevel;
24+
let levelTheme;
25+
26+
const levelThemes = [
27+
{
28+
name: 'Setup',
29+
bg: '#1e1e2f',
30+
road: '#252540',
31+
safe: '#222c37',
32+
line: '#0078D4',
33+
desc: 'Setting up your dev container...'
34+
},
35+
{
36+
name: 'Install',
37+
bg: '#1e2f1e',
38+
road: '#2a4025',
39+
safe: '#234022',
40+
line: '#4CAF50',
41+
desc: 'Installing dependencies...'
42+
},
43+
{
44+
name: 'Build',
45+
bg: '#2f1e1e',
46+
road: '#402525',
47+
safe: '#402222',
48+
line: '#FF9800',
49+
desc: 'Building your project...'
50+
},
51+
{
52+
name: 'Test',
53+
bg: '#1e2f2f',
54+
road: '#254040',
55+
safe: '#224040',
56+
line: '#00BCD4',
57+
desc: 'Running tests...'
58+
},
59+
{
60+
name: 'Deploy',
61+
bg: '#2f2f1e',
62+
road: '#404025',
63+
safe: '#404022',
64+
line: '#FFC107',
65+
desc: 'Deploying to production!'
66+
}
67+
];
2468

2569

2670
function getCarsForLevel(lvl) {
@@ -72,13 +116,18 @@ <h2 class="mb-4"><a href="#frogger-game" id="frogger-game">Frogger Game</a></h2>
72116
return config;
73117
}
74118

119+
75120
function resetGame(newLevel) {
76121
frog = { x: 3, y: 9 };
77122
level = typeof newLevel === 'number' ? newLevel : 1;
78123
maxLevel = 5;
79124
cars = getCarsForLevel(level);
80125
gameOver = false;
81126
win = false;
127+
// Set theme for this level
128+
levelTheme = levelThemes[(level - 1) % levelThemes.length];
129+
// Set background color
130+
canvas.style.background = levelTheme.bg;
82131
}
83132

84133
resetGame(1);
@@ -185,6 +234,7 @@ <h2 class="mb-4"><a href="#frogger-game" id="frogger-game">Frogger Game</a></h2>
185234
}
186235
}
187236

237+
188238
function draw() {
189239
ctx.clearRect(0, 0, canvas.width, canvas.height);
190240
// Draw code editor background (lines)
@@ -209,24 +259,27 @@ <h2 class="mb-4"><a href="#frogger-game" id="frogger-game">Frogger Game</a></h2>
209259
}
210260
ctx.restore();
211261
// Draw safe zones (as terminal/code header/footer)
212-
ctx.fillStyle = '#222c37';
262+
ctx.fillStyle = levelTheme.safe;
213263
ctx.fillRect(0, 0, canvas.width, grid);
214264
ctx.fillRect(0, canvas.height - grid, canvas.width, grid);
215265
// Draw road (pipeline)
216-
ctx.fillStyle = '#252540';
266+
ctx.fillStyle = levelTheme.road;
217267
ctx.fillRect(36, grid, canvas.width - 36, canvas.height - 2 * grid);
218268
// Draw a pipeline line
219-
ctx.strokeStyle = '#0078D4';
269+
ctx.strokeStyle = levelTheme.line;
220270
ctx.lineWidth = 4;
221271
ctx.beginPath();
222272
ctx.moveTo(36, canvas.height/2);
223273
ctx.lineTo(canvas.width, canvas.height/2);
224274
ctx.stroke();
225-
// Draw level indicator
275+
// Draw level indicator and theme name
226276
ctx.fillStyle = '#fff';
227277
ctx.font = 'bold 18px sans-serif';
228278
ctx.textAlign = 'left';
229-
ctx.fillText('Level: ' + level + ' / ' + maxLevel, 48, 32);
279+
ctx.fillText('Level: ' + level + ' / ' + maxLevel + ' - ' + levelTheme.name, 48, 32);
280+
// Draw theme description
281+
ctx.font = 'italic 14px sans-serif';
282+
ctx.fillText(levelTheme.desc, 48, 54);
230283
drawFrog();
231284
drawCars();
232285
if (gameOver) {

0 commit comments

Comments
 (0)