feat(js): m05 game and m06 view with fixtures and tests
Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
This commit is contained in:
co-authored by
Claude Sonnet 5.5
parent
08b462d5cc
commit
b83f94894e
@@ -0,0 +1,189 @@
|
||||
{
|
||||
"function": "tick",
|
||||
"cases": [
|
||||
{
|
||||
"name": "eat-then-respawn",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 1,
|
||||
"y": 0
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 1,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 1,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 1831565813,
|
||||
"score": 1,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "plain-move-no-respawn",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 1,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "wall-hit-is-game-over-no-spawn",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 2,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 2,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "GameOver",
|
||||
"frame": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "game-over-state-unchanged",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "GameOver",
|
||||
"frame": 0
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "GameOver",
|
||||
"frame": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"function": "history",
|
||||
"cases": [
|
||||
{
|
||||
"name": "no-actions-gives-just-the-start",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
[]
|
||||
],
|
||||
"expected": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "every-intermediate-state-is-kept",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
[
|
||||
{
|
||||
"tag": "Turn",
|
||||
"dir": "Down"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
}
|
||||
]
|
||||
],
|
||||
"expected": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Down",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 1
|
||||
}
|
||||
],
|
||||
"dir": "Down",
|
||||
"nextDir": "Down",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 1
|
||||
}
|
||||
],
|
||||
"dir": "Down",
|
||||
"nextDir": "Down",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "GameOver",
|
||||
"frame": 0
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
{
|
||||
"function": "replay",
|
||||
"cases": [
|
||||
{
|
||||
"name": "twelve-actions-eat-one-apple",
|
||||
"args": [
|
||||
{
|
||||
"width": 20,
|
||||
"height": 20,
|
||||
"snake": [
|
||||
{
|
||||
"x": 10,
|
||||
"y": 10
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 10
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 10
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 1,
|
||||
"y": 9
|
||||
},
|
||||
"seed": 1831565855,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
[
|
||||
{
|
||||
"tag": "Turn",
|
||||
"dir": "Up"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
},
|
||||
{
|
||||
"tag": "Turn",
|
||||
"dir": "Left"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
}
|
||||
]
|
||||
],
|
||||
"expected": {
|
||||
"width": 20,
|
||||
"height": 20,
|
||||
"snake": [
|
||||
{
|
||||
"x": 1,
|
||||
"y": 9
|
||||
},
|
||||
{
|
||||
"x": 2,
|
||||
"y": 9
|
||||
},
|
||||
{
|
||||
"x": 3,
|
||||
"y": 9
|
||||
},
|
||||
{
|
||||
"x": 4,
|
||||
"y": 9
|
||||
}
|
||||
],
|
||||
"dir": "Left",
|
||||
"nextDir": "Left",
|
||||
"apple": {
|
||||
"x": 6,
|
||||
"y": 5
|
||||
},
|
||||
"seed": 3663131668,
|
||||
"score": 1,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "no-actions-returns-the-start",
|
||||
"args": [
|
||||
{
|
||||
"width": 20,
|
||||
"height": 20,
|
||||
"snake": [
|
||||
{
|
||||
"x": 10,
|
||||
"y": 10
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 10
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 10
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 1,
|
||||
"y": 9
|
||||
},
|
||||
"seed": 1831565855,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
[]
|
||||
],
|
||||
"expected": {
|
||||
"width": 20,
|
||||
"height": 20,
|
||||
"snake": [
|
||||
{
|
||||
"x": 10,
|
||||
"y": 10
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 10
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 10
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 1,
|
||||
"y": 9
|
||||
},
|
||||
"seed": 1831565855,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,348 @@
|
||||
{
|
||||
"function": "update",
|
||||
"cases": [
|
||||
{
|
||||
"name": "tick-moves-the-snake",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 1,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tick-eating-respawns-apple",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 1,
|
||||
"y": 0
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 1,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 1,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 1831565813,
|
||||
"score": 1,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tick-into-wall-is-game-over",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 2,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 2,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 0,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "GameOver",
|
||||
"frame": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tick-while-paused-does-nothing",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Paused",
|
||||
"frame": 0
|
||||
},
|
||||
{
|
||||
"tag": "Tick"
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Paused",
|
||||
"frame": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "turn-sets-next-dir",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
{
|
||||
"tag": "Turn",
|
||||
"dir": "Down"
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Down",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "turn-against-direction-is-ignored",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
},
|
||||
{
|
||||
"tag": "Turn",
|
||||
"dir": "Left"
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "turn-while-paused-is-ignored",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Paused",
|
||||
"frame": 0
|
||||
},
|
||||
{
|
||||
"tag": "Turn",
|
||||
"dir": "Down"
|
||||
}
|
||||
],
|
||||
"expected": {
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 0,
|
||||
"status": "Paused",
|
||||
"frame": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,398 @@
|
||||
{
|
||||
"function": "view",
|
||||
"cases": [
|
||||
{
|
||||
"name": "playing-with-apple",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 1,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 5,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
],
|
||||
"expected": [
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 60,
|
||||
"h": 40,
|
||||
"color": "#111111"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 41,
|
||||
"y": 21,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#e53935"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 21,
|
||||
"y": 1,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#7cb342"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#43a047"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 6,
|
||||
"y": 18,
|
||||
"text": "Score: 5",
|
||||
"color": "#ffffff",
|
||||
"size": 16,
|
||||
"align": "left"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "playing-without-apple-has-no-apple-rect",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 1,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": null,
|
||||
"seed": 0,
|
||||
"score": 5,
|
||||
"status": "Playing",
|
||||
"frame": 0
|
||||
}
|
||||
],
|
||||
"expected": [
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 60,
|
||||
"h": 40,
|
||||
"color": "#111111"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 21,
|
||||
"y": 1,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#7cb342"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#43a047"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 6,
|
||||
"y": 18,
|
||||
"text": "Score: 5",
|
||||
"color": "#ffffff",
|
||||
"size": 16,
|
||||
"align": "left"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "paused-overlay",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 1,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": {
|
||||
"x": 2,
|
||||
"y": 1
|
||||
},
|
||||
"seed": 0,
|
||||
"score": 5,
|
||||
"status": "Paused",
|
||||
"frame": 0
|
||||
}
|
||||
],
|
||||
"expected": [
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 60,
|
||||
"h": 40,
|
||||
"color": "#111111"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 41,
|
||||
"y": 21,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#e53935"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 21,
|
||||
"y": 1,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#7cb342"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#43a047"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 6,
|
||||
"y": 18,
|
||||
"text": "Score: 5",
|
||||
"color": "#ffffff",
|
||||
"size": 16,
|
||||
"align": "left"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 30,
|
||||
"y": 20,
|
||||
"text": "Paused",
|
||||
"color": "#ffffff",
|
||||
"size": 32,
|
||||
"align": "center"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 30,
|
||||
"y": 50,
|
||||
"text": "Press Space to resume",
|
||||
"color": "#ffffff",
|
||||
"size": 16,
|
||||
"align": "center"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "game-over-overlay-on-20x20-board",
|
||||
"args": [
|
||||
{
|
||||
"width": 20,
|
||||
"height": 20,
|
||||
"snake": [
|
||||
{
|
||||
"x": 10,
|
||||
"y": 10
|
||||
},
|
||||
{
|
||||
"x": 9,
|
||||
"y": 10
|
||||
},
|
||||
{
|
||||
"x": 8,
|
||||
"y": 10
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": null,
|
||||
"seed": 1,
|
||||
"score": 0,
|
||||
"status": "GameOver",
|
||||
"frame": 0
|
||||
}
|
||||
],
|
||||
"expected": [
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 400,
|
||||
"h": 400,
|
||||
"color": "#111111"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 201,
|
||||
"y": 201,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#7cb342"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 181,
|
||||
"y": 201,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#43a047"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 161,
|
||||
"y": 201,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#43a047"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 6,
|
||||
"y": 18,
|
||||
"text": "Score: 0",
|
||||
"color": "#ffffff",
|
||||
"size": 16,
|
||||
"align": "left"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 200,
|
||||
"y": 200,
|
||||
"text": "Game Over",
|
||||
"color": "#ffffff",
|
||||
"size": 32,
|
||||
"align": "center"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 200,
|
||||
"y": 230,
|
||||
"text": "Press R to restart",
|
||||
"color": "#ffffff",
|
||||
"size": 16,
|
||||
"align": "center"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "won-overlay",
|
||||
"args": [
|
||||
{
|
||||
"width": 3,
|
||||
"height": 2,
|
||||
"snake": [
|
||||
{
|
||||
"x": 1,
|
||||
"y": 0
|
||||
},
|
||||
{
|
||||
"x": 0,
|
||||
"y": 0
|
||||
}
|
||||
],
|
||||
"dir": "Right",
|
||||
"nextDir": "Right",
|
||||
"apple": null,
|
||||
"seed": 0,
|
||||
"score": 5,
|
||||
"status": "Won",
|
||||
"frame": 0
|
||||
}
|
||||
],
|
||||
"expected": [
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 0,
|
||||
"y": 0,
|
||||
"w": 60,
|
||||
"h": 40,
|
||||
"color": "#111111"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 21,
|
||||
"y": 1,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#7cb342"
|
||||
},
|
||||
{
|
||||
"tag": "Rect",
|
||||
"x": 1,
|
||||
"y": 1,
|
||||
"w": 18,
|
||||
"h": 18,
|
||||
"color": "#43a047"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 6,
|
||||
"y": 18,
|
||||
"text": "Score: 5",
|
||||
"color": "#ffffff",
|
||||
"size": 16,
|
||||
"align": "left"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 30,
|
||||
"y": 20,
|
||||
"text": "You Win!",
|
||||
"color": "#ffffff",
|
||||
"size": 32,
|
||||
"align": "center"
|
||||
},
|
||||
{
|
||||
"tag": "Text",
|
||||
"x": 30,
|
||||
"y": 50,
|
||||
"text": "Press R to restart",
|
||||
"color": "#ffffff",
|
||||
"size": 16,
|
||||
"align": "center"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user