From 6835d5850b1ca80e6126f3cd1fb42afa416d344c Mon Sep 17 00:00:00 2001 From: Christian Clausen Date: Sun, 5 Apr 2020 22:36:37 +0200 Subject: [PATCH] Initial commit --- .gitignore | 3 + README.md | 28 +++++++++ frontpage.png | Bin 0 -> 96642 bytes game.png | Bin 0 -> 808 bytes goal.png | Bin 0 -> 744 bytes index.html | 85 +++++++++++++++++++++++++ index.ts | 171 ++++++++++++++++++++++++++++++++++++++++++++++++++ tsconfig.json | 8 +++ 8 files changed, 295 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 frontpage.png create mode 100644 game.png create mode 100644 goal.png create mode 100644 index.html create mode 100644 index.ts create mode 100644 tsconfig.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..de0817c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +*.js +*.sh +.vscode diff --git a/README.md b/README.md new file mode 100644 index 0000000..09a2f43 --- /dev/null +++ b/README.md @@ -0,0 +1,28 @@ +# five-lines + +In this kata your task is to refactor the code for a small game. When finished it should be easy to add new tile types, or make the key draw as a circle, so we can easily distinguish it from the lock. + +The code already abides by the most common principles "Don't Repeat Yourself", "Keep It Simple, Stupid", and there are only very few magic literals. There are no poorly structured nor deeply nested `if`s. + +This is *not* an easy exercise. + +# About the Game +In the game, you are a red square and have to get the box (brown) to the lower right corner. Obstacles include falling stones (blue), walls (gray), and a lock (yellow, right) that can be unlocked with the key (yellow, left). You can push one stone or box at a time, and only if it is not falling. The flux (greenish) holds up boxes and stones but can be 'eaten' by the player. + +![Screenshot of the game](game.png) + +# How to Build It +Assuming that you have the Typescript compiler installed: Open a terminal in this directory, then run `tsc`. There should now be a `index.js` file in this directory. + +# How to Run It +To run the game you need to first build it, see above. Then simply open `index.html` in a browser. Use the arrows to move the player. + +# Thank You! +If you like this kata please consider giving the repo a star. You might also consider purchasing a copy of my book where I show a simple way to tackle code like this: [Five Lines of Code](https://www.manning.com/books/five-lines-of-code), available through the Manning Early Access Program. + +[![Five Lines of Code](frontpage.png)](https://www.manning.com/books/five-lines-of-code) + +If you have feedback or comments on this repo don't hesitate to write me a message or send me a pull request. + +Thank you for checking it out. + diff --git a/frontpage.png b/frontpage.png new file mode 100644 index 0000000000000000000000000000000000000000..66520762a9721830eca849608f4af182468bc0d1 GIT binary patch literal 96642 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 M+vUCBDUU#MQ#`@+ekx&QpX>L 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
    7IwCQvMN-E?j-i5ZI;IDj;uwWS(s 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 ZgfU5ai+RD}2L$*}QC3x^R_bfm{{hdf_Y434 literal 0 HcmV?d00001 diff --git a/game.png b/game.png new file mode 100644 index 0000000000000000000000000000000000000000..ea5ff1046420190fd8ffb08d7bdbaae0211a89ae GIT binary patch literal 808 zcmeAS@N?(olHy`uVBq!ia0vp^AAooZ2OE%FHD}=qAjMc5RtvY3H^?+6GpPSxg*?YcQW5v|?#9g7ff8+jHwD5akCb+N z;hhb;9q~=^vl< z`o=nzbwzdchSy@=+v)wZ-tEWn$DSIohHPte*<67NYkhJP0J2f2spwkTXRgD!*7DQ- Sulfp1-3*?telF{r5}E+C`U^_{ literal 0 HcmV?d00001 diff --git a/goal.png b/goal.png new file mode 100644 index 0000000000000000000000000000000000000000..ac5eaceadc9dc24ed6087e08cd45e88841ee8e8f GIT binary patch literal 744 zcmeAS@N?(olHy`uVBq!ia0vp^AAooZ2OE%FHD}=qAjMc5RtvY3H^?+6GpPSxglFzsfc@fccbqS2LXqR#;g+pxJ)lF zn*Oj-T*SCLGJcb+!rNDmzYF=NMSi;8vRU?cp>4yG?H^g1Sa=ed+6)+-XEZ4K91u`T z;1D)w;gmQ;ws6kP(nGcPj~}TonfH9gv#77}Yk$Q_Q(ztrN4+V#&iTH~G+*>O=kpDX z)NwkpRnubCYwYZgn_MqlTlxO(4nK=_UMdF^(6+MOuUl5%d8hSgTW{jJ`|JA+&wl;) z*Lc~^9ExKB*(>0v+>m;mvvL1s>W9=OxqfkBH9h%6+2`MZsguFe)z4*}Q$iB}vpeQ? literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..d05ce48 --- /dev/null +++ b/index.html @@ -0,0 +1,85 @@ + + + + + + + Gatherer + + + + + + + +

    How to play

    +

    + The user controls the player square using the arrow keys. +

    + +
      +
    • The red square is the player.
    • +
    • Brown squares are boxes.
    • +
    • Blue squares are stones.
    • +
    • Yellow squares are keys or locks + -- we fix + this + in the book.
    • +
    • Greenish squares are called flux.
    • +
    • Gray squares are walls.
    • +
    • White squares are air (empty).
    • +
    + +

    + If a box or stone is not supported by anything, it falls. The player can push one stone or box at a time, provided + it + is not obstructed or falling. The path between the box and the lower-right corner is initially obstructed by a lock, + so the player has to get a key to remove it. Flux can be "eaten" (removed) by the player by stepping on it. +

    + +

    How to win

    +

    + The objective of the game is to get the box to the lower-right corner, like this: +

    + + +

    + Solution (put your cursor here): + +   + → → → ↓     + ↓ ↓ ← ↑     + ↓ ← → ↑     + ← ← → →     + ↓ → → +   + +

    + + + \ No newline at end of file diff --git a/index.ts b/index.ts new file mode 100644 index 0000000..a3e2008 --- /dev/null +++ b/index.ts @@ -0,0 +1,171 @@ + +const TILE_SIZE = 30; +const FPS = 30; +const SLEEP = 1000 / FPS; + +enum Tile { + AIR, + FLUX, + UNBREAKABLE, + PLAYER, + STONE, FALLING_STONE, + BOX, FALLING_BOX, + KEY1, LOCK1, + KEY2, LOCK2 +} + +enum Input { + UP, DOWN, LEFT, RIGHT +} + +let playerx = 1; +let playery = 1; +let map: Tile[][] = [ + [2, 2, 2, 2, 2, 2, 2, 2], + [2, 3, 0, 1, 1, 2, 0, 2], + [2, 4, 2, 6, 1, 2, 0, 2], + [2, 8, 4, 1, 1, 2, 0, 2], + [2, 4, 1, 1, 1, 9, 0, 2], + [2, 2, 2, 2, 2, 2, 2, 2], +]; + +let inputs: Input[] = []; + +function remove(tile: Tile) { + for (let y = 0; y < map.length; y++) { + for (let x = 0; x < map[y].length; x++) { + if (map[y][x] === tile) { + map[y][x] = Tile.AIR; + } + } + } +} + +function moveToTile(newx: number, newy: number) { + map[playery][playerx] = Tile.AIR; + map[newy][newx] = Tile.PLAYER; + playerx = newx; + playery = newy; +} + +function moveHorizontal(dx: number) { + if (map[playery][playerx + dx] === Tile.FLUX + || map[playery][playerx + dx] === Tile.AIR) { + moveToTile(playerx + dx, playery); + } else if ((map[playery][playerx + dx] === Tile.STONE + || map[playery][playerx + dx] === Tile.BOX) + && map[playery][playerx + dx + dx] === Tile.AIR + && map[playery + 1][playerx + dx] !== Tile.AIR) { + map[playery][playerx + dx + dx] = map[playery][playerx + dx]; + moveToTile(playerx + dx, playery); + } else if (map[playery][playerx + dx] === Tile.KEY1) { + remove(Tile.LOCK1); + moveToTile(playerx + dx, playery); + } else if (map[playery][playerx + dx] === Tile.KEY2) { + remove(Tile.LOCK2); + moveToTile(playerx + dx, playery); + } +} + +function moveVertical(dy: number) { + if (map[playery + dy][playerx] === Tile.FLUX + || map[playery + dy][playerx] === Tile.AIR) { + moveToTile(playerx, playery + dy); + } else if (map[playery + dy][playerx] === Tile.KEY1) { + remove(Tile.LOCK1); + moveToTile(playerx, playery + dy); + } else if (map[playery + dy][playerx] === Tile.KEY2) { + remove(Tile.LOCK2); + moveToTile(playerx, playery + dy); + } +} + +function update() { + while (inputs.length > 0) { + let current = inputs.pop(); + if (current === Input.LEFT) + moveHorizontal(-1); + else if (current === Input.RIGHT) + moveHorizontal(1); + else if (current === Input.UP) + moveVertical(-1); + else if (current === Input.DOWN) + moveVertical(1); + } + + for (let y = map.length - 1; y >= 0; y--) { + for (let x = 0; x < map[y].length; x++) { + if ((map[y][x] === Tile.STONE || map[y][x] === Tile.FALLING_STONE) + && map[y + 1][x] === Tile.AIR) { + map[y + 1][x] = Tile.FALLING_STONE; + map[y][x] = Tile.AIR; + } else if ((map[y][x] === Tile.BOX || map[y][x] === Tile.FALLING_BOX) + && map[y + 1][x] === Tile.AIR) { + map[y + 1][x] = Tile.FALLING_BOX; + map[y][x] = Tile.AIR; + } else if (map[y][x] === Tile.FALLING_STONE) { + map[y][x] = Tile.STONE; + } else if (map[y][x] === Tile.FALLING_BOX) { + map[y][x] = Tile.BOX; + } + } + } +} + +function draw() { + let canvas = document.getElementById("GameCanvas") as HTMLCanvasElement; + let g = canvas.getContext("2d"); + + g.clearRect(0, 0, canvas.width, canvas.height); + + // Draw map + for (let y = 0; y < map.length; y++) { + for (let x = 0; x < map[y].length; x++) { + if (map[y][x] === Tile.FLUX) + g.fillStyle = "#ccffcc"; + else if (map[y][x] === Tile.UNBREAKABLE) + g.fillStyle = "#999999"; + else if (map[y][x] === Tile.STONE || map[y][x] === Tile.FALLING_STONE) + g.fillStyle = "#0000cc"; + else if (map[y][x] === Tile.BOX || map[y][x] === Tile.FALLING_BOX) + g.fillStyle = "#8b4513"; + else if (map[y][x] === Tile.KEY1 || map[y][x] === Tile.LOCK1) + g.fillStyle = "#ffcc00"; + else if (map[y][x] === Tile.KEY2 || map[y][x] === Tile.LOCK2) + g.fillStyle = "#00ccff"; + + if (map[y][x] !== Tile.AIR && map[y][x] !== Tile.PLAYER) + g.fillRect(x * TILE_SIZE, y * TILE_SIZE, TILE_SIZE, TILE_SIZE); + } + } + + // Draw player + g.fillStyle = "#ff0000"; + g.fillRect(playerx * TILE_SIZE, playery * TILE_SIZE, TILE_SIZE, TILE_SIZE); +} + +function gameLoop() { + let before = Date.now(); + update(); + draw(); + let after = Date.now(); + let frameTime = after - before; + let sleep = SLEEP - frameTime; + setTimeout(() => gameLoop(), sleep); +} + +window.onload = () => { + gameLoop(); +} + +const LEFT_KEY = "ArrowLeft"; +const UP_KEY = "ArrowUp"; +const RIGHT_KEY = "ArrowRight"; +const DOWN_KEY = "ArrowDown"; +window.addEventListener("keydown", e => { + if (e.key === LEFT_KEY || e.key === "a") inputs.push(Input.LEFT); + else if (e.key === UP_KEY || e.key === "w") inputs.push(Input.UP); + else if (e.key === RIGHT_KEY || e.key === "d") inputs.push(Input.RIGHT); + else if (e.key === DOWN_KEY || e.key === "s") inputs.push(Input.DOWN); +}); + diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..4e55206 --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "noImplicitAny": true, + "sourceMap": false + } +} \ No newline at end of file