Jungla

Co my właściwie mamy zrobić :?. Ja zrozumiałem to w ten sposób:
Za każdym razem , gdy mam zdecydować o wyborze ruchu mogę rozgrywać losowe gry, z tymże w sumie mogę zrobić około 20000 ruchów.

def runGame(board):
    steps = 0
    while not board.isEnd():
        moves = board.aviableMoves()
        m = random.choice(moves)
        board.executeMove(m)
        steps += 1
    return board.getWinner(), steps


def randomAgent(board):
    moves = board.aviableMoves()
    d = {i: 0 for i in range(len(moves))}
    steps, i = 0, 0
    while steps < 20000:
        newBoard = Board(fromBoard=board)
        newBoard.executeMove(moves[i])
        winner, gameTook = runGame(newBoard)
        d[i] += 1 if winner == board.player else -1
        i = (i + 1) % len(moves)
        steps += gameTook
    choosenIndex = max([(v, k) for k, v in d.items()])
    return moves[choosenIndex[1]]

Działa to strasznie wolno (kilkadziesiąt sekund na ruch) i jest w dodatku beznadziejne…

Wydaje mi się że tak top powinno działać.
A próbowałeś po przegranej grze zamiast ustawiać -1, po prostu odjąć jeden?

Znaczy, nie działa w tym sensie że Agent bazujący na losowych grach jest bardzo słabym graczem. Dzisiaj się dowiedzialem, że nie tylko u mnie.

Ale tak ma być?

Do takiego wniosku doszliśmy.

1 polubienie

Trochę bez sensu ten pół losowy agent. Nastawiałem się na pisanie nie wiadomo jakiej heury, a tu zwykły rush B działa powalająco :stuck_out_tongue:

Jak to jest z tygrysem/lwem i skakaniem nad jeziorem?
Bez%C2%A0tytu%C5%82u
Czy w takiej sytuacji tygrys może wejść na wodę? I czy tylko wrogi szczur blokuje tygrysa (tak jak na liście), czy przyjazny też (tak jest np. na wiki)?

Myśle że przynależność szczura do drużyny nie ma znaczenia. Jako że tygrys nie wchodzi na wodę tylko ja przeskakuje, tygrys z obrazka nie może przeskoczyc przez staw.

Ale dobrze rozumiem, że tygrys w jednym ruchu może poruszyć się tylko o 1 pole? Czy w takiej sytuacji jak na obrazku, gdyby nie było szczura, to tygrys się rusza od razu o 3 pola?

O 3 pola. Przeskakuje cały staw.

1 polubienie

Tygrys i lew mogą skakać przez stawy (aby wykonać skok bierka musi “tak jakby” wejść na staw i następnie poruszać się w tym samym kierunku aż do osiągnięcia pola niebędącego stawem)

To moim zdaniem bezpośrednio oznacza, że tygrys i lew mogą jednym ruchem przeskoczyć staw.

Zmyliło mnie to:

bierka musi “tak jakby” wejść na staw i następnie poruszać się w tym samym kierunku

Myślałem, że skok może trwać kilka tur.