Install & first game
You'll need Rust 1.75 or newer. Everything else comes from
cargo.
1. Install Rust
If you don't already have it:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # or: brew install rustup-init && rustup-init
2. Clone and build
git clone https://github.com/jakenherman/full-count.git cd full-count cargo build --release # want the opt-in stats? use: # cargo build --release --features advanced-stats
The binary ends up at target/release/full-count. Symlink or move it onto your PATH if you like.
During development, cargo run --release works fine. The release profile
matters: a debug build will feel sluggish on every keystroke.
3. Start a new game
full-count
You'll land on the title screen. Use ↑/↓ (or j/k) to move the cursor, Enter to select. Choose New game to jump into setup.
Setup
Fill in the away and home team names, pick a color for each (←/→),
then type the lineup for both teams. Tab moves forward, Shift+Tab
moves back. With the advanced-stats feature you'll also be prompted for a
season batting average per hitter — see Advanced stats.
Once every field is filled, F3 starts the game.
4. Your first at-bat
The scoring screen shows five panels: the scoreboard, the current at-bat, batter/pitcher lines, the play log, and a prompt bar. You type keystrokes; the prompt bar tells you what's legal at any moment. Here's a line-off homerun and an easy strikeout:
# Leadoff batter takes a ball, then a strike, then yanks one over the wall. B # 1-0 S # 1-1 H # home run — RBI prompt appears 1 Enter # 1 RBI (nobody on base) # Next batter watches three go by. S S L # strike, strike, strikeout looking
After every play the scoreboard, stat lines, and play log update. If you made a mistake, press U to undo — you can walk backward up to 100 steps.
Any prompt that accepts typed input — fielder positions, RBI, batter names, save filenames — can be cancelled with Esc, which returns you to the normal at-bat state without changing anything.
5. Save and quit
Press F2 at any point to open the save prompt. Type a name (or accept the
suggestion) and Enter. The game is written to
~/.full-count/saves/<name>.json.
Q quits at any point. X ends the game and jumps to the summary screen where you can export the paper-style scorecard.
6. Resume a game
full-count --load cubs-vs-sox # resume scoring full-count --load cubs-vs-sox --replay # walk through it pitch-by-pitch
--load accepts a bare name (cubs-vs-sox), a file name with
extension (cubs-vs-sox.json), or an absolute/relative path. Bare names are
looked up inside ~/.full-count/saves/.
That's the whole loop. For the full set of keystrokes, see the scoring reference.