Skip to content

A terminal interface for fetching and playing daily cryptic crosswords

License

Notifications You must be signed in to change notification settings

apexatoll/cliptic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cliptic: Crosswords in your Terminal

  • A command-line interface for downloading and playing cryptic crosswords from within the terminal.
  • Puzzles are sourced from the free crosswords uploaded daily to Lovatt's.
  • cliptic is written in Ruby using the ncurses library

New to 0.1.3

Bug Fixes

  • Fix the ssl certificate bug that prevents fetching puzzles
  • Fix the "out of range" bug when moving to an undefined index using g

Features

  • Add manual redraw feature to the main puzzle view. Called with ^L (useful for terminal resize)
  • Add exit controls to the resize interface (q or ^C)

Features

  • VIM-like keybindings
  • Puzzles scraped daily from Lovatt's. Puzzles are cached locally to prevent excessive requests
  • Progress can be saved to continue puzzles at a later time
  • Time taken to complete the puzzle is logged on completion of puzzle. High scores can be viewed within cliptic
  • Track progress for puzzles released in the last week
  • Puzzle history is tracked, making it easy to pick up recently played puzzles
  • Select puzzles to play by date manually (puzzles are available for up to 9 months from release)
  • Customisation of cliptic's appearance

Dependencies

System

  • Ruby
  • Ncurses
  • Curl

Gems

  • curb
  • curses
  • sqlite3

Installing

As a Gem

  • cliptic is available as a Ruby Gem. To install, simply run:
gem install cliptic

Manually

  • Or, to install manually:
git clone https://github.com/apexatoll/cliptic
cd cliptic
rake build install

Running

  • To run cliptic after installation, simply run the command cliptic from within the terminal
  • When the program is first run it will ask the user whether they want cliptic to generate a default config file. This is located in ~/.config/cliptic/cliptic.rc
  • If the screen is too small to display cliptic, please resize until the prompt disappears

Other Commands

  • There are other commands that can be run from the command line

Today

  • The command cliptic today will play today's puzzle
  • This command can be followed with a negative number to play a puzzle n days before today
  • For example cliptic today -2 will play the puzzle from the day before yesterday

Resetting Progress

  • The command cliptic reset will allow the user to reset progress in cliptic.
  • The command can be followed with either all, states, scores or recents
  • all resets all progress
  • states resets all game progress
  • scores resets high scores
  • recents resets puzzle history

Main Menu

  • On the main menu there are several options
    • Play today's puzzle
    • Show this week's progress
    • Select a date manually
    • Display recent puzzles
    • Show high scores
    • Exit cliptic

Menu Navigation

Command Action
j/DOWN, k/UP Move cursor
q Back/quit
ENTER Make selection

Solving Puzzles

  • By default, cliptic uses vim-like keybindings for navigation and text manipulation. There are plans to release more "accessible" keybindings in the future.
  • Text manipulation is modal akin to vim. Vim-users will be familiar with insert and normal modes
  • The currently focussed clue is displayed within the window at the bottom of the screen. If you are on a cell that is an intersection of two clues (ie an across and a down) you can swap between them using TAB

Game Modes

  • There are 2 game modes that can be played. These can be changed in the cliptic config file.
  1. Auto_mark = 1 (default)
    • Each clue is marked once every cell is filled
    • The clue will be highlighted green or red depending on whether the attempt is correct
  2. Auto_mark = 0
    • No clues are marked automatically, similar to a paper crossword
    • Clues can be checked manually using the ^G command

Global Commands

Command Action
^S Save current progress (note that progress is saved when exiting puzzles by default)
^R Reveals solution for focussed clue (note that this forfeits adding this puzzle to high scores)
^C Exit puzzle
^E Resets timer and progress for puzzle
^G Mark current progress (only relevant if auto_mark is set to 0)
^P Pause game
^L Redraws the screen (useful on resizing terminal window)

Navigation (Normal Mode)

  • There are several ways to navigate the cells of the cliptic grid in NORMAL MODE.
Command Action
h, j, k, l Move cursor left, up, down, right. Arrow keys can also be used
(n)w Move to (nth) next unsolved clue
(n)b Move to (nth) previous unsolved clue
e Move to end of clue
<clue number>g Move to clue by number
<cell number>G Move to cell by number (not 0 indexed
TAB Swap from across to down clue (or vice versa)

Entering Text (Insert Mode)

Command Action
a-z Enter character to cell
BACKSPACE Delete one character
ESC Exit insert mode. Enter normal mode

Normal Mode

Command Action
I Move to the start of the clue and enter insert mode
a Advance one cell and enter insert mode
c(obj) calls d(obj) then enters insert mode
d(obj) delete the object provided after d (may be w for word or l for character)
i Enter insert mode
r(char) Replaces the character under the cursor with char
x deletes the character under the cursor

Configuration

  • Cliptic settings can be added to the cliptic.rc file found at ~/.config/cliptic/cliptic.rc

Interface

  • Affect how cliptic functions
  • Set using the format
set <setting> <0/1>

Settable Items

Item Description Default
auto_advance Move to next clue after solve 1
auto_mark Mark clues as they are entered 1
auto_save Save progress on exit 1

Colours

  • Colours are numbered 1-16.
    • 0 is default terminal color
    • 1-8 equates to your terminals 8 default colours.
    • 9-16 equate to same colours as the background and blank as the foreground
  • To set colour settings use the format
hi <obj> <colour>

Settable Items

Item Description Default
active_num Grid number of active clue 3
bar Top and bottom bars 16
block Grid blocks 8
box Box outlines 8
grid cliptic grids 8
incorrect Incorrect clue attempt 1
correct Correct clue attempt 2
prompt Menu prompt 3
default Default text color 0
meta Clue box metadata 3
num Inactive grid numbers 8
logo_text Logo text color 3
I Insert mode prompt 15
N Normal mode prompt 12
menu_active Active menu option 15
menu_inactive Inactive menu option 0

Feedback

  • Cliptic is still in development
  • If you have any feature requests or find any bugs please leave a new issue
  • Contributions welcome!

Dedicated to WES who passed on to me his love of crosswords

About

A terminal interface for fetching and playing daily cryptic crosswords

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published