A terminal clock played as an endless game of Pong
Project description
Pong Clock
A terminal clock played as an endless game of Pong, built with Textual.
The left paddle plays for the hours, the right paddle plays for the minutes, and the scoreboard is the current time. Both paddles play perfect defense — until the clock is about to tick. When a minute passes, the hours player deliberately misses so the minutes side scores. When the hour rolls over, the minutes player misses, the hours side scores, and the minutes score resets to 00. The ball's speed is quietly adjusted mid-rally so it crosses the goal line right on the minute boundary.
Rendering uses half-block characters (▀) for double vertical resolution,
redrawn at 60 fps with a tiny framebuffer, so the animation stays fluid.
Install
Install Pong Clock with pipx:
pipx install pongclock
Then run:
pongclock
| Key | Action |
|---|---|
q |
Quit |
space |
Pause |
Develop from source
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/pongclock
Test
.venv/bin/python smoke_test.py
Runs the app headless, verifies the ball animates, forces a scoring event, and checks the pause toggle.
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 pongclock-0.1.0.tar.gz.
File metadata
- Download URL: pongclock-0.1.0.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5baf59c486e17c3508d8361cd2e0c2e757763d38b88146c8d18fde9c414f9e61
|
|
| MD5 |
6c6f8d0c5183efb48cd61b3271f16dfc
|
|
| BLAKE2b-256 |
8da629d5bceb4fe0ab394e68e0883b30374a55126d2517885439ce9e64131f54
|
Provenance
The following attestation bundles were made for pongclock-0.1.0.tar.gz:
Publisher:
publish.yml on ChomChomp/pongclock
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pongclock-0.1.0.tar.gz -
Subject digest:
5baf59c486e17c3508d8361cd2e0c2e757763d38b88146c8d18fde9c414f9e61 - Sigstore transparency entry: 1805655307
- Sigstore integration time:
-
Permalink:
ChomChomp/pongclock@5c8280f8103ff831600e2562611261f6e4dd63e3 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ChomChomp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5c8280f8103ff831600e2562611261f6e4dd63e3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file pongclock-0.1.0-py3-none-any.whl.
File metadata
- Download URL: pongclock-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb0d73406c02c56b90236c4147111873ad896d304972c58d530e59caa6c418f6
|
|
| MD5 |
add684232c89b2e52d1627675286f8a1
|
|
| BLAKE2b-256 |
cb30f4f1ff3a1da1deaba0aa65dc2c0e9523abef8bc432ecd8da03674b78b7fd
|
Provenance
The following attestation bundles were made for pongclock-0.1.0-py3-none-any.whl:
Publisher:
publish.yml on ChomChomp/pongclock
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
pongclock-0.1.0-py3-none-any.whl -
Subject digest:
cb0d73406c02c56b90236c4147111873ad896d304972c58d530e59caa6c418f6 - Sigstore transparency entry: 1805655337
- Sigstore integration time:
-
Permalink:
ChomChomp/pongclock@5c8280f8103ff831600e2562611261f6e4dd63e3 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ChomChomp
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5c8280f8103ff831600e2562611261f6e4dd63e3 -
Trigger Event:
push
-
Statement type: