def whose_turn(self): if self.winner in [1, 2]: return 3 - self.winner if self.words.my().count() < self.words.him().count(): return get_player() if self.words.my().count() > self.words.him().count(): return 3 - get_player() return self.first_move
def guess_word(self, word): if not self.player_turn(word): return if self.comp: if self.winner == 3 - get_player(): return # комп уже выиграл, ходить не нужно self.comp_turn()
def check_winning(self, score1, score2, last_player): if last_player == get_player(): word = self.him_word() else: word = self.my_word() if score1 == score2 == len(word): if self.winner == -1: self.winner = last_player self.save() else: if self.words.my().count() < self.words.him().count(): self.winner = get_player() elif self.words.my().count() > self.words.him().count(): self.winner = 3 - get_player() else: self.winner = WINNER_DRAW self.finished = True self.save()
def player_turn(self, word): player = get_player() word = process_word(word) him_word = self.him_word() if len(word) != len(him_word): return # todo: message! score1 = self.get_score1(word, him_word) score2 = self.get_score2(word, him_word) WordOld.objects.create(game=self, player=player, word=word, score1=score1, score2=score2) self.check_winning(score1, score2, player) return True
def comp_turn(self): player = 3 - get_player() word = ComputerLogic(self, player, len(self.my_word())).guess() if not word: return word = process_word(word) my_word = self.my_word() score1 = self.get_score1(word, my_word) score2 = self.get_score2(word, my_word) WordOld.objects.create(game=self, player=player, word=word, score1=score1, score2=score2) ComputerLogic(self, player, len(self.my_word())) self.check_winning(score1, score2, player)
def my_turns(self): player = get_player() return self.get_turns(player)
def him_word(self, value=None): player = 3 - get_player() if value: self.set_word(player, value) return self.get_word(player)
def him_win(self): return self.winner == 3 - get_player()
def my_win(self): return self.winner == get_player()
def him_turn(self): return self.ready() and self.whose_turn() == 3 - get_player()
def my_turn(self): return self.ready() and self.whose_turn() == get_player()
def him_turns(self): player = 3 - get_player() return self.get_turns(player)
def him(self): return self.player(3 - get_player())
def my(self): return self.player(get_player())