Wrong calculation of an overbidden game
simfann opened this issue · comments
I have bidden a game against two AI players until 24 and got the game to play. I wanted to play Hearts Solo without 4 (no Jack). But then I have found Clubs Jack in the skat. So I had overbidden and tried to play a tailor game (With 1 - play 2 - tailor 3 x Hearts Solo = 30). I lost the hand game and got from JSkat minus points -40. As far as I interpret the skat rules, this is a wrong calculation: The lost game value should be calculated by this: At least the bidden value 24 has to be reached. Then you take a multiplier of Hearts Solo (10) to reach at least 24: With 1 - play 2 - tailor 3 x Hearts Solo = 30 (> 24). Overbidden this is -60! This is my interpretation of rule 5.1.4 of official skat rules!
Thanks for reporting this bug. I think you are referring to section 5.4.1 of the official rules?
I had a look into the code and the implementation of the game value calculation does not take overbidding into account currently. This needs to be fixed!
The implementation should do the following:
- Find a multiplier of the game base value so that the bid value is covered. In your case this would be 3, in the examples of the official rules it would be 5 for the Hearts game in the first example and 5 for the Clubs game and 6 for the Hearts game in the second example. Counting the multipliers like "with 1 - play 2 - tailor 3" does not apply here as I understand the rule book.
- The game value calculates with the formula "multiplier * game base value * -2" for overbidding. In your case JSkat should have calculated -60 (3 * 10 * -2) instead of -40 as you reported correctly. The calculation from the rule book would be -100 (5 * 10 * -2) for the first example and -120 (5 * 12 * -2) and -120 (6 * 10 * -2) respectively.
You write: "Counting the multipliers like "with 1 - play 2 - tailor 3" does not apply here as I understand the rule book." This is totally correct. I only took a practical example of adding 1 more to "with 1 - play 2". The rule along to 5.4.1 of official rules really says, that you multiply the assigned value for the played colour (here 10) with a factor 1, 2, 3, ... until you reach at least the bidden value. The bidden value was here 24, so you have to take here factor 3, to get the nearest value equal or above 24.