Skip to content
hsgarn edited this page Sep 13, 2020 · 10 revisions

Welcome to the foosobsplus wiki!

The following code scheme will allow you to record every possession in a game by just learning what each position in the code designates and learning only a handful of codes. Using these codes, the score and timers can be automatically maintained throughout the match. Each position in the code has from 2 to 10 possible mostly intuitive values. Below is the breakdown of the code.

1st position - team: which team has the ball.

  • y - yellow team
  • b - black team
  • x - command trigger (see below for list of commands)

2nd position - rod: where is the ball:

  • 2 - 2 bar or 3 bar goalie rod. These rods are treated as one rod.
  • 3 - 3 bar forward rod.
  • 5 - 5 bar forward rod.
  • g - goal (someone scored)
  • o - off table
  • d - dead ball

3rd position - action: how did the ball get here:

  • c - clear
  • p - pass
  • s - shot
  • d - drop (serving ball after a score or being knocked off the table or after time out called)
  • t - time out
  • r - reset
  • w - reset warning
  • x - penalty (see 4th position for penalty modifiers)
  • y - ball placement after a technical foul shot has been taken
  • e - error (turnover)

4th position - detail: provides more detail for the action if needed.

  • b - break - used with pass or shot to designate that the attempt was successful, but only because of a lucky break
  • f - stuff - used with shot or pass to indicate shot/pass was stuffed into shooters/passers goal (y3p, ygsf)
  • w - 3 walls 5 bar violation - used with 3rd position set to x
  • s - spin violation - used with 3rd position set to x
  • j - jarring violation - used with 3rd position set to x
  • d - distraction - used with 3rd position set to x
  • t - too many time outs - used with 3rd position set to x
  • p - illegal pass - used with 3rd position set to x
  • x - technical foul - used with 3rd position set to x
  • r - ready protocol violation - used with 3rd position set to x
  • o - other violation - future rules or ones just overlooked - used with 3rd position set to

Examples (this is laid out in the form of an actual game taking place):

  • y5d - ball is on the 5 bar of the yellow team who "has the drop" either due to winning the coin toss, ball off the table, or oppenent scored.
  • y5d or b5d will always be how a new point, game, and match start out.
  • y3p - ball is passed to the 3 bar
  • bgs - ball shot into black team's goal (score y=1, b=0)
  • b5d - now black team has ball on the 5 from the drop.
  • y5xw - ball on yellow 5 man because black team hit 3 walls on their 5 bar possession.
  • y3p - ball successfully passed from 5 bar to 3 bar.
  • y2s - ball was shot, but missed and landed on yellow 2 bar.
  • y5p - ball passed to yellow 5 bar successfully.
  • ygp - yellow tried to pass to 3 but was blocked into their own goal (score y=1, b=1)
  • y5d - yellow has ball on 5 bar after black scored.
  • y5t - yellow called time out, ball still on the 5 bar
  • y5d - yellow starts play again from 5 bar
  • b3p - pass to 3 bar successful
  • b3r - yellow blocking agressively and reset is called
  • ygs - ball shot into yellow goal (score y=1, b=2)

Commands: (These are just like hitting the corrsponding buttons in the UI)

  • xu - push undo button
  • xr - push redo button
  • xpsm - push Start Match button
  • xppm - push Pause Match button
  • xpsg - push Start Game button
  • xsst - start shot timer
  • xspt - start pass timer
  • xsgt - start game timer
  • xstt - start timeout timer
  • xsrt - start recall timer
  • xprt - push reset timer
  • xist1 - increase score team 1
  • xist2 - increase score team 2
  • xdst1 - decrease score team 1
  • xdst2 - decrease score team 2
  • xigt1 - increase game count team 1
  • xigt2 - increase game count team 2
  • xdgt1 - decrease game count team 1
  • xdgt2 - decrease game count team 2
  • xutt1 - use timeout for team 1
  • xutt2 - use timeout for team 2
  • xrtt1 - return timeout for team 1
  • xrtt2 - return timeout for team 2
  • xprt1 - push reset button for team 1
  • xprt2 - push reset button for team 2
  • xpwt1 - push warn button for team 1
  • xpwt2 - push warn button for team 2
  • xxpt1 - switch positions team 1
  • xxpt2 - switch positions team 2
  • xpss - push switch sides button
  • xpst - switch teams
  • xpssc - switch scores
  • xpsgc - switch game counts
  • xpsto - switch time outs
  • xpsr - switch reset/warns
  • xpca - clear all (switch)
  • xpct1 - push clear team 1
  • xpct2 - push clear team 2
  • xprn - push reset names
  • xprs - push reset scores
  • xprg - push reset game counts
  • xprto - push reset time outs
  • xprr - push reset reset/warns
  • xpra - push reset all

To Do:

-Bugs:

  • Undo past a XPSM works, but does not show the history. May need to make memento for statsentrypanel
  • How to handle an informal timeout (e.g. was that legal discussion)
  • Reset All, reset game counts should reset currentGameNumber and repaint game tables. Same with Clear button in team panels

-Impactful:

  • Handle Penalties (too many timeouts, 3 walls, etc) - no clue what to do here. Penalty window? or add to Team panels?
  • Put Clear stats in Stat History and make undo work for it.
  • Write Game Scores
  • Add Game Scores file names to files window (maybe make one file to hold entire game table for use in reloading/saving)
  • Make Start Match button alternate to End Match and when pressed, it logs match info to database.
  • Database??? - https://www.oracle.com/technical-resources/articles/java/db-desktop-apps.html
  • #10 Show who took time out for parameter number of seconds or until ball back in play

-Beneficial:

  • Need 4th character for TimeOut??? (so far no)
  • Allow Action Position vs Position Action - paramaterize?
  • Settings - Prevent same letter for two mnemonics
  • Add legend to Help
  • Add Win by last game only parameter and logic
  • Incrementing score should unpause match??? since it restarts and unpauses the last score timer. maybe it should not unpause the last score timer???

-Undecided:

  • Split out 5 bar passing?
  • Aces Stats - how to determine aces - what is an ace?
  • Match winner show team name or forward/goalie name - or parameter so user decides - if team names blank, show f/g names and vice versa
  • Code Settings Page (allow setting of stat codes if they don't like the default)
  • Add handicap match checkbox parameter and Points to win for each team (team 1 - 9 points, team 2 - 5 points)
  • change statsDisplayPanel to a table??

-Rejected:

  • Add match time to game Table Window Panel - already have match time as separate file and not a nice way to add to table.
  • Time since last score - each team: (Reject since already have times as windows)
  • c. Write times to files - not wanting to do this - concerns of speed/io issues - but can let filename control (if empty - do not write)
  • d. Add filesnames in files settings screen
  • Add game winner pointer (similar to LastScored) - game table shows game winners
  • Add match winner pointer (similar to LastScored) - game table shows match winner
  • Game Time Start/Stop/Reset - Maybe make minutes only for match/game timers?? - Start Game already resets Game time. Pause Match pauses game timer.
Clone this wiki locally