little tool for tournament cross-tables
Go to file
Kartik K. Agaram 09ee13e704 better demo 2023-10-18 19:34:42 -07:00
assets better demo 2023-10-18 19:34:42 -07:00
0000-freewheeling-start new file-system format for freewheeling apps 2023-04-16 11:16:47 -07:00
0001-on better comment 2023-04-20 23:39:36 -07:00
0002-on.draw buttons popping nicely now 2023-10-16 22:40:30 -07:00
0003-draw_data start writing results back to disk 2023-10-17 16:17:33 -07:00
0005-max_row_width switch representation to simpler table of tables 2023-10-16 19:41:14 -07:00
0006-total_row_width switch representation to simpler table of tables 2023-10-16 19:41:14 -07:00
0007-column_xs switch representation to simpler table of tables 2023-10-16 19:41:14 -07:00
0008-table.size switch representation to simpler table of tables 2023-10-16 19:41:14 -07:00
0009-ordered_keys show team scores and sort by them 2023-10-16 20:35:42 -07:00
0010-score show team scores and sort by them 2023-10-16 20:35:42 -07:00
0011-Global_state start writing results back to disk 2023-10-17 16:17:33 -07:00
0012-on.mouse_press toggle scores when clicking on cells 2023-10-16 21:25:43 -07:00
0013-Data comment 2023-10-17 16:17:33 -07:00
0014-on.initialize read data from commandline arg 2023-10-17 15:42:57 -07:00
0015-Rows update some comments 2023-10-18 17:37:02 -07:00
0017-make_button_pop update some comments 2023-10-18 17:37:02 -07:00
0018-on.keychord_press reorder rows on C-r 2023-10-16 22:42:55 -07:00
0019-on.code_change read data from commandline arg 2023-10-17 15:42:57 -07:00
0020-load_results start writing results back to disk 2023-10-17 16:17:33 -07:00
0021-Results_filename read data from commandline arg 2023-10-17 15:42:57 -07:00
0022-absolutize read data from commandline arg 2023-10-17 15:42:57 -07:00
0023-on.update start writing results back to disk 2023-10-17 16:17:33 -07:00
0024-save_results start writing results back to disk 2023-10-17 16:17:33 -07:00
0025-on.quit start writing results back to disk 2023-10-17 16:17:33 -07:00
0026-add_result start writing results back to disk 2023-10-17 16:17:33 -07:00
0027-delete_result start writing results back to disk 2023-10-17 16:17:33 -07:00
LICENSE.txt add a license 2022-05-16 18:51:28 -07:00
Manual_tests.md Merge lines.love 2023-06-08 01:24:34 -07:00
MemoryReferenceInfo.lua.0 remove some memory leaks from rendered fragments 2022-06-10 11:16:41 -07:00
MemoryReferenceInfo.lua.unused clean up memory leak experiments 2022-06-10 13:46:59 -07:00
README.md update mirrors and forks 2023-10-17 16:58:05 -07:00
app.lua Merge text0 2023-10-16 23:33:19 -07:00
button.lua use color alpha in button backgrounds 2023-10-16 22:59:04 -07:00
default_map default layout of code 2023-10-17 16:33:25 -07:00
edit.lua clearer API for drawing a button 2023-10-16 22:57:46 -07:00
file.lua Merge lines.love 2023-08-31 00:13:43 -07:00
json.lua forgot to add json.lua 2022-05-15 14:36:25 -07:00
keychord.lua support for num pad 2023-07-07 18:40:12 -07:00
live.lua start saving edits right in the source dir 2023-09-09 10:47:22 -07:00
main.lua new fork: sports cross-table 2023-10-16 15:34:25 -07:00
nativefs.lua cleaner API for file-system access 2023-08-30 19:04:06 -07:00
reference.md fix a bad merge 2023-08-31 07:23:45 -07:00
results read data from commandline arg 2023-10-17 15:42:57 -07:00
search.lua Merge text0 2023-10-15 14:46:50 -07:00
select.lua Merge lines.love 2023-06-04 15:11:24 -07:00
test.lua show another detail on test failure 2023-01-20 21:48:49 -08:00
text.lua delete an unused arg 2023-07-31 14:20:53 -07:00
text_tests bugfix: clear selection when clicking above or below lines 2023-09-20 13:39:29 -07:00
text_tests.lua Merge text0 2023-10-09 21:15:21 -07:00
undo.lua Merge lines.love 2023-04-02 09:22:32 -07:00

README.md

A little tool for sports cross-tables

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. I'll assume below that you can invoke it using the love command, but that might vary depending on your OS.

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 you run a .love file, your changes will go into the save directory. If you unzip the .love file into a new directory and run the directory instead, 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

  • Both freewheeling apps and the driver for them currently benefit from being launched in terminal windows rather than by being clicked on in a desktop OS. See the driver app for details.

  • No support yet for Unicode graphemes spanning multiple codepoints.

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

  • Undo/redo may be sluggish in editor windows containing large files. Large files may grow sluggish in other ways.

  • If you kill the process, say by force-quitting because things things get sluggish, you can lose data.

  • 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.