little tool for tournament cross-tables
Go to file
Kartik K. Agaram c74e3f1bf1 Merge template-live-editor 2024-09-05 14:17:24 -07:00
assets
0000-freewheeling-start
0001-on
0002-Debug_animations_in_progress
0002-on.draw
0003-draw_data
0003-refresh_debug_animations
0004-on.update
0005-animate
0005-max_row_width switch representation to simpler table of tables 2023-10-16 19:41:14 -07:00
0006-loiter
0006-total_row_width
0007-column_xs
0007-save_callstack
0008-Debug_animation_period
0008-table.size
0009-ordered_keys
0010-score bugfix: ignore count column in total score 2024-04-25 21:45:37 -07:00
0011-Global_state
0012-on.mouse_press
0013-Data
0014-on.initialize
0015-Rows update some comments 2023-10-18 17:37:02 -07:00
0017-make_button_pop
0018-on.keychord_press
0019-on.code_change
0020-load_results
0021-Results_filename
0022-absolutize
0023-on.update
0024-save_results
0025-on.quit start writing results back to disk 2023-10-17 16:17:33 -07:00
0026-add_result
0027-delete_result
0029-do_if_match
0031-Font_size
LICENSE.txt
Manual_tests.md
MemoryReferenceInfo.lua.0
MemoryReferenceInfo.lua.unused
README.md
app.lua
button.lua
default_map
edit.lua
file.lua
json.lua
keychord.lua support for num pad 2023-07-07 18:40:12 -07:00
live.lua
main.lua
nativefs.lua
reference.md
results
search.lua
select.lua
test.lua show another detail on test failure 2023-01-20 21:48:49 -08:00
text.lua
text_tests
text_tests.lua
undo.lua

README.md

A little tool for sports cross-tables

0 dependencies!

All-play-all tournaments often summarize results using a simplistic table of wins/losses/points. It is all you need at the end when you're picking the qualifiers for the next stage, but it's not very useful while a tournament is in progress. Some examples of questions it can't answer:

  • Have their been any upsets?
  • Are there any differences in opponents so far? If team A has already played all its lower-seeded opponents but team B has not, that's important.

For questions like these, and also for running what-if scenarios, the ideal format is a cross-table that shows each team along both the rows and the columns, and summarizes the outcome of each encounter.

The big challenge to maintaining a cross-table by hand is re-sorting it. When the rows move around, the columns must do so as well. This tool automates the sorting.

demo showing how to add new results and how to re-sort the cross-table

This repo is an example of a Freewheeling App, designed above all to be easy to run, easy to modify and easy to share.

Getting started

Install LÖVE. It's just a 5MB download, open-source and extremely well-behaved.

Run this app from the terminal, passing its directory to LÖVE, passing in a file containing results to show. The file results demonstrates the expected format. To try it out from this directory:

$ love . results

Try clicking around. Your changes will be saved back to results.

If you don't pass in a file you'll see some example data. You can still modify it, but it won't be persisted.

Hacking

To modify it live without restarting the app each time, download the driver app. Here's an example session using a fork of this repo:

making changes without restarting the app

If the app being modified by the driver lives in a .love file, your changes will go into the save directory. If it lives in a directory (like this repo), your changes will go straight into the same directory.

Keyboard shortcuts

Up to you! But within the included editor widget if you use it:

  • ctrl+f to find patterns within a file
  • ctrl+c to copy, ctrl+x to cut, ctrl+v to paste
  • ctrl+z to undo, ctrl+y to redo
  • ctrl+= to zoom in, ctrl+- to zoom out, ctrl+0 to reset zoom
  • alt+right/alt+left to jump to the next/previous word, respectively
  • mouse drag or shift + movement to select text, ctrl+a to select all

Exclusively tested so far with a US keyboard layout. If you use a different layout, please let me know if things worked, or if you found anything amiss: http://akkartik.name/contact

Known issues

  • No support yet for Unicode graphemes spanning multiple codepoints.

  • No support yet for right-to-left languages.

  • Can't scroll while selecting text with mouse.

  • No scrollbars yet. That stuff is hard.

Mirrors and Forks

This repo is a fork of lines.love, an editor for plain text where you can also seamlessly insert line drawings. Its immediate upstream is the template repo for freewheeling apps. Updates to it can be downloaded from:

Further forks are encouraged. If you show me your fork, I'll link to it here.

Feedback

Most appreciated. Messages, PRs, patches, forks, it's all good.