Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
160 changes: 160 additions & 0 deletions games/Guide-The-Sheep-to-the-Shepherd.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@

/*
@title: maze_game_starter
@description: A simple template to help you get started with making a maze game.
@author: Cheru Berhanu
@tags: []
@addedOn: 2023-08-08
*/

const player = "p"
const fence = "f"
const goal = "g"
const enemy = "e"
const enemy_path = "_"

const bg = "b"
setLegend(
[bg, bitmap`
4444444444444444
444D444444444444
4D4D4D44444D4444
4D4D4D444D4DD444
444444444D44D444
4444444444444444
4444444444444444
44444444D4444444
44444444DD444444
4444444DDD444444
44D4444444444444
44D4444444444D44
44DD4444444D4D44
44444444444D4D44
4444444444444444
4444444444444444`],
[ player, bitmap`
................
................
....000222222...
...00000222222..
.00000000022222.
0000202000022222
0..0000022022222
...0000022222222
...0000022222222
...0000022222222
....00022222222.
.....222222222..
.....022222222..
.....0.0..0.0...
.......0....0...
................` ],
[ fence, bitmap`
................
...CC......CC...
...CC......CC...
CCCFCCCCCCCCFCCC
CCCCCCCCCCCCCCCC
...CC.....CCC...
...CC....CCCC...
...CC...CC.CC...
...CC..CC..CC...
...CC.CC...CC...
...CCCC....CC...
CCCCCCCCCCCCCCCC
CCCFCCCCCCCCFCCC
...CC......CC...
...CC......CC...
...CC......CC...`],
[ goal, bitmap`
................
...CC....111....
..CCCC..16661...
..C..C..16661...
.....C..11611...
.....60001110...
.....C0000100...
.....C.0000000..
.....C..000000..
.....C..CCCC00..
.....C..0C006...
.....C..00000...
.....C..00000...
.....C..00000...
.....C..00000...
.....C..00000...` ],
[ enemy, bitmap`
................
......3...3.3...
..33333...333...
...333333.33....
....339999933...
...3999999993...
...3399699993...
..399996699333..
..339996699333..
..339966699339..
..933966639333..
..999966669399..
.999996666999...
...9996666699...
....9666666699..
..999966666999..`]
)

setSolids([player, fence])
setBackground(bg)

let level = 0
const levels = [
map`
p......
.fffff.
..e.f..
....f.g`, map`
p......
ffffff.
....gf.
.fffff.
.......`
]

setMap(levels[level])

setPushables({
[ player ]: []
})

onInput("w", () => {
getFirst(player).y -= 1
})
onInput("s", () => {
getFirst(player).y += 1
})
onInput("a", () => {
getFirst(player).x -= 1
})
onInput("d", () => {
getFirst(player).x += 1
})

afterInput(() => {
const numberOfGoalsCovered = tilesWith(player, goal);
console.log(tilesWith(player, goal));
if (numberOfGoalsCovered.length > 0) {
level = level + 1;
console.log("win");
if (level < levels.length) {
setMap(levels[level]);
} else {
const win_text = "You Win!"
const xp = 3
const yp = 3
addText(win_text, options = { x:xp-1, y:yp, color:color`0` })
addText(win_text, options = { x:xp+1, y:yp, color:color`0` })
addText(win_text, options = { x:xp, y:yp+1, color:color`0` })
addText(win_text, options = { x:xp, y:yp-1, color:color`0` })
addText(win_text, {y:4, color: color`2`});
}
}
});
Loading