from abc import ABCMeta, abstractmethod
from game.gameboard import GameBoard

class Player(object):
    __metaclass__ = ABCMeta

    def __init__(self, color):
        self._color = color.lower()

    def color(self):
        return self._color

    def is_winner(self, board):
        if board.game_over() and board.winner_color() == self._color:
            return True
        return False

    @abstractmethod
    def play(self):
        """This method must be overridden"""
        pass

class PlayerWithStrategyOne(Player):
    def play(self, board):
        board.put_chip(board.retrieve_first_non_full_column(), self._color)

class PlayerWithStrategyTwo(Player):
    def play(self, board):
        board.put_chip(board.retrieve_emptiest_column(), self._color)

from abc import ABCMeta, abstractmethod
from game.gameboard import GameBoard

class Player(object):
    __metaclass__ = ABCMeta

    def __init__(self, color):
        self._color = color.lower()

    def color(self):
        return self._color

    def is_winner(self, board):
        return board.game_over() and board.winner_color() == self._color

    @abstractmethod
    def play(self):
        """This method must be overridden"""
        pass

class PlayerWithStrategyOne(Player):
    def play(self, board):
        board.put_chip(board.retrieve_first_non_full_column(), self._color)

class PlayerWithStrategyTwo(Player):
    def play(self, board):
        board.put_chip(board.retrieve_emptiest_column(), self._color)

Replace the particular boolean returns with a boolean expression on is_winner
Replace the particular boolean returns with a boolean expression on is_winner

  from abc import ABCMeta, abstractmethod
  from game.gameboard import GameBoard
  
  class Player(object):
      __metaclass__ = ABCMeta
  
      def __init__(self, color):
          self._color = color.lower()
  
      def color(self):
          return self._color
  
      def is_winner(self, board):
-         if board.game_over() and board.winner_color() == self._color:
+         return board.game_over() and board.winner_color() == self._color
-             return True
-         return False
  
      @abstractmethod
      def play(self):
          """This method must be overridden"""
          pass
  
  class PlayerWithStrategyOne(Player):
      def play(self, board):
          board.put_chip(board.retrieve_first_non_full_column(), self._color)
  
  class PlayerWithStrategyTwo(Player):
      def play(self, board):
          board.put_chip(board.retrieve_emptiest_column(), self._color)
  
Replace the particular boolean returns with a boolean expression on is_winner
## Code Before:
from abc import ABCMeta, abstractmethod
from game.gameboard import GameBoard

class Player(object):
    __metaclass__ = ABCMeta

    def __init__(self, color):
        self._color = color.lower()

    def color(self):
        return self._color

    def is_winner(self, board):
        if board.game_over() and board.winner_color() == self._color:
            return True
        return False

    @abstractmethod
    def play(self):
        """This method must be overridden"""
        pass

class PlayerWithStrategyOne(Player):
    def play(self, board):
        board.put_chip(board.retrieve_first_non_full_column(), self._color)

class PlayerWithStrategyTwo(Player):
    def play(self, board):
        board.put_chip(board.retrieve_emptiest_column(), self._color)

## Instruction:
Replace the particular boolean returns with a boolean expression on is_winner
## Code After:
from abc import ABCMeta, abstractmethod
from game.gameboard import GameBoard

class Player(object):
    __metaclass__ = ABCMeta

    def __init__(self, color):
        self._color = color.lower()

    def color(self):
        return self._color

    def is_winner(self, board):
        return board.game_over() and board.winner_color() == self._color

    @abstractmethod
    def play(self):
        """This method must be overridden"""
        pass

class PlayerWithStrategyOne(Player):
    def play(self, board):
        board.put_chip(board.retrieve_first_non_full_column(), self._color)

class PlayerWithStrategyTwo(Player):
    def play(self, board):
        board.put_chip(board.retrieve_emptiest_column(), self._color)
