Foosball result prediction

Posted by Wolf on Stack Overflow See other posts from Stack Overflow or by Wolf
Published on 2008-11-04T13:26:32Z Indexed on 2010/03/24 2:53 UTC
Read the original article Hit count: 327

Filed under:
|
|

In our office, we regularly enjoy some rounds of foosball / table football after work. I have put together a small java program that generates random 2vs2 lineups from the available players and stores the match results in a database afterwards.

The current prediction of the outcome uses a simple average of all previous match results from the 4 involved players. This gives a very rough estimation, but I'd like to replace it with something more sophisticated, taking into account things like:

  • players may be good playing as attacker but bad as defender (or vice versa)
  • players do well against a specific opponent / bad against others
  • some teams work well together, others don't
  • skills change over time

What would be the best algorithm to predict the game outcome as accurately as possible?

Someone suggested using a neural network for this, which sounds quite interesting... but I do not have enough knowledge on the topic to say if that could work, and I also suspect it might take too many games to be reasonably trained.

EDIT:
Had to take a longer break from this due to some project deadlines. To make the question more specific:

Given the following mysql table containing all matches played so far:

table match_result

match_id      int pk
match_start   datetime
duration      int (match length in seconds)
blue_defense  int fk to table player
blue_attack   int fk to table player
red_defense   int fk to table player
red_attack    int fk to table player
score_blue    int
score_red     int

How would you write a function predictResult(blueDef, blueAtk, redDef, redAtk) {...}
to estimate the outcome as closely as possible, executing any sql, doing calculations or using external libraries?

© Stack Overflow or respective owner

Related posts about java

Related posts about mysql