def metti_in_passate(self, giocatore, carta): Card.del_carta(giocatore.player_state.mano.val, carta) # tolgo la carta dalla mano giocatore.player_state.mano.rep_val() # non lo fa in automatico credo giocatore.player_state.scambiate.val.append( carta) # la metto in quelle scambiate giocatore.player_state.scambiate.rep_val() self.ceck_fine_passaggio()
def check_cappotto(self): for g_esaminato in self.lista_player: if GameMode.ha_preso_carta(g_esaminato, Card(Card.DONNA, Card.PICCHE)): # se ha cunegonda for val in Card.VALORI: if not GameMode.ha_preso_carta( g_esaminato, Card(val, Card.CUORI)): # manca un cuore return # se quello che ha la cune non ha un cuore allora niente cappotto # se arrivo qui allor aho cappotto quindi setto tutti a -20 tranne g a cui do 60 for g_da_cambiare in self.lista_player: if g_da_cambiare == g_esaminato: g_da_cambiare.punteggio = 60 else: g_da_cambiare.punteggio = -20
def metti_in_giocata(self, index, carta): Card.del_carta(self.lista_player[index].player_state.mano.val, carta) # tolgo la carta dalla mano self.lista_player[index].player_state.mano.rep_val( ) # non lo fa in automatico credo self.game_state.lista_player[ index].carta_giocata.val = carta # la metto nelle giocate self.questo_giro.append( carta) # mi salvo le carte giocate nella gamemode if self.game_state.turno.val == self.primo: self.seme_giro = carta.seme # il primo decide il seme del giro if self.game_state.turno.val == self.ultimo: self.risolvi_questo_giro() else: turno = (self.game_state.turno.val + 1) % 4 self.game_state.turno.val = turno
def carta_client( self, index_g, carta ): # controlla in che fase siamo e se si può adoperare la carta e poi faù giocatore = self.lista_player[ index_g] # giocatore è un private player type if Card.contiene_carta(giocatore.player_state.mano.val, carta): # se possiede davvero questa carta if self.game_state.fase_gioco.val == Fase.PASSAGGIO_CARTE: # se le stiamo passando la metto nelle scambiate if len(giocatore.player_state.scambiate.val ) < 3: # se non ne ho già scambiate 3 self.metti_in_passate(giocatore, carta) elif self.game_state.fase_gioco.val == Fase.GIOCO and ( not self.pausa): # se stiamo giocando e non è pausa if index_g == self.game_state.turno.val: # se è il suo turno if (index_g == self.primo or Card.carta_permessa( giocatore.player_state.mano.val, self.seme_giro, carta)): self.metti_in_giocata(index_g, carta)
def fine_turno(self): for g in self.game_state.lista_player: # svuoto giocate in ogni caso g.carta_giocata.val = Card() if len(self.lista_player[0].player_state.mano.val ) == 0: # se un giocatore non ha carte (tutti le hanno finite) self.check_cappotto() for i in range(len( self.lista_player)): # aggiorno punteggi totali per tutti g_privat = self.lista_player[i] g_public = self.game_state.lista_player[i] g_public.punteggio_tot.val = g_public.punteggio_tot.val + g_privat.punteggio g_privat.punteggio = 0 g_privat.carte_prese = [] self.game_state.fase_gioco.val = Fase.FINE_PARTITA # così gli HUD scrivono fine partita t = Timer(10, self.fine_partita) t.start() else: self.pausa = False self.game_state.turno.val = self.primo