A terminal arcade collection: 18 games to play while you wait, including Wordplay and a virtual-chip casino
Project description
arcade
Eighteen terminal games, and a friend to beat.
One command. No setup. Runs on Linux, macOS, WSL, and Windows.
The hardest part of vibe coding is the waiting. Your agents are off doing their thing, you have nothing to do, and the office laptop is locked down. So run a game in the terminal you already have open, and pull in a coworker over the LAN.
Quick start
pip install arcade-games
arcade # open the menu
arcade snake # jump straight into a game
arcade mp # play a friend over the network
arcade list # every game, with your high scores
That is the whole story. The games use Python's built-in curses; on Windows
the install adds windows-curses for you. Nothing else to install.
play still works too, as an alias for arcade, kept around for anyone
already used to it.
Play with a friend
Three games go two-player over a local network, one hosts and the other joins by IP. No account, no server, no configuration.
The same Pong rally, from each player's screen
arcade mp # or press M in the menu
Pick Reversi, Connect Four, or Pong, then Host or Join. The
host reads out an address like 192.168.1.5 : 8765; the other player types it
in. Reversi and Connect Four are turn-based and rock-solid at any latency; Pong
is real-time and best on the same Wi-Fi.
The games
Arcade
Snake · arcade snakeEat, grow, and don't bite your tail. |
Pac-Man · arcade pacmanClear the dots, dodge four hunting ghosts. |
Dino Runner · arcade dinoJump the cacti, run forever. |
Breakout · arcade breakoutBounce the ball, break every brick. |
Space Shooter · arcade shooterWaves, power-ups, and bosses. |
Flappy Bird · arcade flappyFlap through the gaps. |
Frogger · arcade froggerCross the traffic and the river to the home bays. |
|
Puzzle
Tetris · arcade tetrisStack, clear lines, level up. Ghost piece included. |
2048 · arcade 2048Slide and merge to the big tile. |
Minesweeper · arcade minesRead the numbers, flag the mines. Three sizes. |
Sokoban · arcade sokobanPush each box onto a target. Undo freely. |
Head to head (vs AI or a friend)
Pong · arcade pong |
Reversi · arcade reversi |
Connect Four · arcade connect4 |
Word & casino
Wordplay · arcade wordplay (also word, wp)One 5-letter word a day. 6 guesses, a keyboard that remembers, and a streak to protect. |
Blackjack · arcade blackjack (also bj, 21)6-deck shoe, dealer stands on soft 17, blackjack pays 3:2, split up to 3 times. |
Roulette · arcade rouletteThe European wheel (single zero, 2.70% house edge). Straight up, splits, dozens, and every even-money bet. |
Slots · arcade slots (also slot)3 reels, a real paytable, and a computed payout rate in the 92-96% band. |
The chips are not real money. Blackjack, Roulette, and Slots share a virtual, in-app points balance (starts at 1000, with a small once-a-day top-up if you ever hit zero). There is no purchase, no deposit, no cash-out, and no way to turn a chip into anything of real-world value, anywhere in this codebase. It is a toy, on purpose.
Controls
WASD / Arrows Move, aim, navigate
Space Jump · Hard drop · Launch · Fire · Serve · Place · Reveal
W Rotate (Tetris)
F Flag a cell (Minesweeper)
U Undo (Sokoban)
R Reset level (Sokoban) · Retry after game over
P Pause
? / H In-game controls
M Multiplayer (menu) · T Theme (menu)
ESC / Q Quit (progress is saved)
Space Shooter, Pong, and Minesweeper ask for a difficulty. Snake, Dino, and Flappy speed up as you go; Tetris levels up. Quit any game and it resumes next time you open it.
Wordplay and the casino games are turn-based and use their own keys instead of
WASD: type letters and press Enter in Wordplay; H)it, S)tand, D)ouble, and
X)split in Blackjack; arrows to pick a bet and F to spin in Roulette; Left/
Right to set your bet and Space to pull the lever in Slots. Press ? in any
game for the full list.
Turn-based mode
For playing a move at a time in a chat or an editor, arcade cli runs the
games as plain text, no full-screen UI and no curses required.
arcade cli start connect4 # also: snake, 2048, minesweeper
arcade 4 # drop a disc in column 4
arcade show # reprint the board
arcade quit # end the game
Built honestly
A small shared core plus one file per game, with a dependency-free test suite you can run yourself:
arcade_games/
├── game.py # the Game base class every game subclasses
├── config.py # save files, high scores, config migration
├── currency.py # the shared virtual chip balance (casino games only)
├── menu.py # the curses main menu
├── cli.py # the plain-text `arcade cli` front-end
├── net.py # LAN multiplayer
├── render.py, theme.py, terminal.py # drawing, color themes, terminal launch
└── games/
├── snake.py, tetris.py, g2048.py, dino.py, breakout.py,
│ shooter.py, pong.py, flappy.py, minesweeper.py, pacman.py,
│ sokoban.py, reversi.py, frogger.py, connect4.py,
│ wordplay.py, blackjack.py, roulette.py, slots.py
python tests/test_games.py # a headless fuzz, save/load, network, and a
# regression test behind every fix
Every GIF in this README is rendered straight from the game code, so what you see is what you get.
Contributing
Pull requests welcome. A new game is a subclass of Game in its own file
under arcade_games/games/, added to _GAMES in arcade_games/registry.py;
a new level or theme is a few lines. Please run the tests first.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file arcade_games-3.1.0.tar.gz.
File metadata
- Download URL: arcade_games-3.1.0.tar.gz
- Upload date:
- Size: 214.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fd3a707090380b2f56ffd9cd0b8e883217125f707fa75974c6fd03f605ecd52
|
|
| MD5 |
0dbfabb23f44eeccd37e233d9908b709
|
|
| BLAKE2b-256 |
f40999295a5487c6ae7faf9363aadb6df63ab085eec90905165a9b29637f0bb9
|
File details
Details for the file arcade_games-3.1.0-py3-none-any.whl.
File metadata
- Download URL: arcade_games-3.1.0-py3-none-any.whl
- Upload date:
- Size: 216.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.15
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9bb39e2e198d6d71cce6a7c49a87e43ae259f073981d89bd3091022cb06b6644
|
|
| MD5 |
7e2752a433819ebffefd5bf8523f6596
|
|
| BLAKE2b-256 |
6eb2a287fd51c0ec952da780379c0434f5573b8447e8544aec3c6f33c867b998
|