2-APL UPC project.
0
fork

Configure Feed

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

playing phase ends when no one have cards

cyberslas 7545a2cf fa60cd3b

+24 -3
+24 -3
code/2apl_platform/briscola_chiamata/player.2apl
··· 4 4 { true } AddBidHistorical(Cantity, Who) { bidhistorical(Cantity, Who) } 5 5 { true } SetAsDealer(X) { dealer(X) } 6 6 { true } SetHand(X) { hand(X) } 7 + { hand(X) } RemoveHand(X) { not hand(X) } 7 8 { not lastbid(X) } AddLastBid(X) { lastbid(X) } 8 9 { lastbid(X) } RemoveLastBid(X) { not lastbid(X) } 9 10 ··· 23 24 iscard([], []). 24 25 iscard([Card1, Card2 | REST ], [Card1, Card2]). 25 26 iscard([ X, Y | REST ], Q) :- iscard(REST, Q). 27 + 28 + deletehandcard(R, S, [R, S|T], T). 29 + deletehandcard(R, S, [X, Y|T], [H|T1]):- deletehandcard(R, S, T, T1). 30 + 26 31 27 32 Plans: 28 33 [ B(gatekeeper(X)) ; send(X, request, register(me)) ] ··· 185 190 /** 186 191 * --- PLAY SCENARIO --- 187 192 */ 188 - message(n, inform, _, _, yourturn(Y)) <- true | 193 + message(n, inform, _, _, yourturn(Y)) <- hand(H) and not H = [] | 189 194 { 190 195 print("My turn!"); 191 - //B( getcard(H, 3, X ) ) 192 - @cardtable(playCard(clubs, ace)) 196 + B( getcard(H, 0, X ) ); //TODO Get a ramdom card. 197 + B( X = [S, R] ); 198 + @cardtable(playCard(S, R)); 199 + 200 + // Update hand 201 + B( deletehandcard(S, R, H, RES ) ); 202 + RemoveHand(H); 203 + SetHand(RES); 204 + 205 + // Check if hand is ended 206 + if B(RES = []) then 207 + { 208 + endhand() 209 + } 193 210 } 194 211 212 + endhand() <- hand([]) | 213 + { 214 + print("I don't have any cards!") 215 + } 195 216 196 217