2-APL UPC project.
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

fixed issue 10

cyberslas 5b41fa3c e0543da2

+45 -13
+44 -12
code/2apl_platform/briscola_chiamata/notary.2apl
··· 6 6 { currentturn(X) } RemoveTrun(X) { not currentturn(X) } 7 7 { true } PlayerPass(X) { playerpass(X) } 8 8 { true } AddCardPlayed(S, R, X) { cardontable(S, R, X) } 9 + { true } AddBriscola(S, R) { briscola(S, R) } 10 + { true } RemoveCardPlayed(S, R, X) { not cardontable(S, R, X) } 9 11 10 12 Beliefs: 11 13 gatekeeper(gk). /* we know who the gatekeeper is, for simplicity */ ··· 18 20 getpoints(three, X) :- X is 10. 19 21 getpoints(ace, X) :- X is 11. 20 22 getpoints(Y, X) :- X is 0. 23 + 24 + //Get The Winner 25 + getwinner(Winner) :- cardontable(_, ace, Winner), !. 26 + getwinner(Winner) :- cardontable(_, three, Winner), !. 27 + getwinner(Winner) :- cardontable(_, king, Winner), !. 28 + getwinner(Winner) :- cardontable(_, queen, Winner), !. 29 + getwinner(Winner) :- cardontable(_, jack, Winner), !. 30 + getwinner(Winner) :- cardontable(_, seven, Winner), !. 31 + getwinner(Winner) :- cardontable(_, six, Winner), !. 32 + getwinner(Winner) :- cardontable(_, five, Winner), !. 33 + getwinner(Winner) :- cardontable(_, four, Winner), !. 34 + getwinner(Winner) :- cardontable(_, two, Winner), !. 21 35 22 36 Plans: 23 37 @cardtable(enterAsNotary()) /* join the game as notary */ ··· 63 77 */ 64 78 message(X, inform, _, _, declarebriscola(Briscola)) <- true | 65 79 { 80 + B( Briscola = [S, R] ); 81 + AddBriscola(S, R); 66 82 B( assigned(Pos, X) ); 67 83 if B( Pos = 0 ) then 68 84 { ··· 134 150 RemoveTrun(X); 135 151 UpdateTrun(0); 136 152 B( assigned(0, P)); 137 - print("Hands over!"); 153 + print("Round over!"); 138 154 countpoints() 139 155 } 140 156 else ··· 154 170 } 155 171 156 172 countpoints() <- true | 157 - { 173 + { 158 174 B( assigned(0, P0)); 159 175 B( cardontable(S0, R0, P0)); 160 176 B( getpoints(R0, X0)); 161 - send(P0, inform, yourscore(X0)); 162 - @cardtable(updateScore(P0, X0)); 163 177 B( assigned(1, P1)); 164 178 B( cardontable(S1, R1, P1)); 165 179 B( getpoints(R1, X1)); 166 - send(P1, inform, yourscore(X1)); 167 - @cardtable(updateScore(P1, X1)); 168 180 B( assigned(2, P2)); 169 181 B( cardontable(S2, R2, P2)); 170 182 B( getpoints(R2, X2)); 171 - send(P2, inform, yourscore(X2)); 172 - @cardtable(updateScore(P2, X2)); 173 183 B( assigned(3, P3)); 174 184 B( cardontable(S3, R3, P3)); 175 185 B( getpoints(R3, X3)); 176 - send(P3, inform, yourscore(X3)); 177 - @cardtable(updateScore(P3, X3)); 178 186 B( assigned(4, P4)); 179 187 B( cardontable(S4, R4, P4)); 180 188 B( getpoints(R4, X4)); 181 - send(P4, inform, yourscore(X4)); 182 - @cardtable(updateScore(P4, X4)) 189 + 190 + 191 + //Send point to the winner 192 + B( getwinner(W) ); 193 + send(W, inform, yourscore( X0 + X1 + X2 + X3 + X4)); 194 + @cardtable(updateScore(W, X0 + X1 + X2 + X3 + X4)); 195 + 196 + //Clean table 197 + B( assigned(0, P0)); 198 + B( cardontable(S0, R0, P0)); 199 + RemoveCardPlayed(S0, R0, P0); 200 + B( assigned(1, P1)); 201 + B( cardontable(S1, R1, P1)); 202 + RemoveCardPlayed(S1, R1, P1); 203 + B( assigned(2, P2)); 204 + B( cardontable(S2, R2, P2)); 205 + RemoveCardPlayed(S2, R2, P2); 206 + B( assigned(3, P3)); 207 + B( cardontable(S3, R3, P3)); 208 + RemoveCardPlayed(S3, R3, P3); 209 + B( assigned(4, P4)); 210 + B( cardontable(S4, R4, P4)); 211 + RemoveCardPlayed(S4, R4, P4); 212 + 213 + //New round 214 + selectturn() 183 215 }
+1 -1
code/2apl_platform/briscola_chiamata/player.2apl
··· 224 224 225 225 endround() <- hand([]) | 226 226 { 227 - print("I don't have any cards!") 227 + print("I finish my hand!") 228 228 } 229 229 230 230