1 /********************************************************************** 2 * 3 * FreeDoko a Doppelkopf-Game 4 * 5 * Copyright (C) 2001 – 2018 by Diether Knof and Borg Enders 6 * 7 * This program is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU General Public License as 9 * published by the Free Software Foundation; either version 2 of 10 * the License, or (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * You can find this license in the file 'gpl.txt'. 17 * 18 * You should have received a copy of the GNU General Public License 19 * along with this program; if not, write to the Free Software 20 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 21 * MA 02111-1307 USA 22 * 23 * Contact: 24 * Diether Knof dknof@posteo.de 25 * 26 *********************************************************************/ 27 28 #pragma once 29 30 #include "../../card/hand.h" 31 #include "ai.h" 32 33 class VirtualGamesInterface; 34 class Player; 35 36 37 struct TrickWeighting { 38 public: 39 // returns the weighting of the trick for 'team' 40 static int modi(VirtualGamesInterface const& vgi, 41 Trick const& trick, 42 Team const team, 43 HandCard const& card); 44 static int backhand(VirtualGamesInterface const& vgi, 45 HandCard const& c, 46 Game const& game_virt); 47 private: 48 static int modi_dulle_swines(VirtualGamesInterface const& vgi, 49 Trick const& trick, 50 Team const team, 51 HandCard const& card, Team winnerteam, Ai const& ai); 52 static int modi_queen(VirtualGamesInterface const& vgi, 53 Trick const& trick, 54 Team const team, 55 HandCard const& card, Team winnerteam, Ai const& ai); 56 static int modi_jack(VirtualGamesInterface const& vgi, 57 Trick const& trick, 58 Team const team, 59 HandCard const& card, Team winnerteam, Ai const& ai); 60 61 static int modi_soli_meat_less(VirtualGamesInterface const& vgi, 62 Trick const& trick, 63 Team const team, 64 HandCard const& card, Team winnerteam, Ai const& ai); 65 66 static int modi_marriage(VirtualGamesInterface const& vgi, 67 Trick const& trick, 68 Team const team, 69 HandCard const& card, Team winnerteam, Ai const& ai); 70 71 72 static int modi_fox(VirtualGamesInterface const& vgi, 73 Trick const& trick, 74 Team const team, 75 HandCard const& card, Team winnerteam, Ai const& ai); 76 77 static int modi_special_points(VirtualGamesInterface const& vgi, 78 Trick const& trick, 79 Team const team, 80 HandCard const& card, Team winnerteam, Ai const& ai); 81 82 static int modi_no_trump(VirtualGamesInterface const& vgi, 83 Trick const& trick, 84 Team const team, 85 HandCard const& card, Team winnerteam, Ai const& ai); 86 87 88 static int modi_picture_soli(VirtualGamesInterface const& vgi, 89 Trick const& trick, 90 Team const team, 91 HandCard const& card, Team winnerteam, Ai const& ai); 92 93 static int modi_other_trumps(VirtualGamesInterface const& vgi, 94 Trick const& trick, 95 Team const team, 96 HandCard const& card, Team winnerteam, Ai const& ai); 97 98 static int modi_force_trump(VirtualGamesInterface const& vgi, 99 Trick const& trick, 100 Team const team, 101 HandCard const& card, Team winnerteam, Ai const& ai); 102 103 static int modi_poverty(VirtualGamesInterface const& vgi, 104 Trick const& trick, 105 Team const team, 106 HandCard const& card, Team winnerteam, Ai const& ai); 107 108 }; // struct TrickWeighting 109