Untitled

 avatar
unknown
python
a year ago
1.9 kB
3
Indexable
import random

class SnakeAndLadderGame:
    def __init__(self):
        self.board = {}
        self.snakes = [(17, 7), (54, 34), (62, 19), (98, 79), (93, 73), (95, 75), (99, 78)]
        self.ladders = [(4, 14), (9, 31), (20, 38), (28, 84), (40, 59), (63, 81), (71, 91)]
        self.player_position = {"Player 1": 0, "Player 2": 0}

    def create_board(self):
        for start, end in self.snakes:
            self.board[start] = end
        for start, end in self.ladders:
            self.board[start] = end

    def roll_dice(self):
        return random.randint(1, 6)

    def move_player(self, player):
        dice_roll = self.roll_dice()
        print(f"{player} rolled a {dice_roll}.")
        self.player_position[player] += dice_roll

        if self.player_position[player] in self.board:
            new_position = self.board[self.player_position[player]]
            if new_position > self.player_position[player]:
                print(f"{player} encountered a ladder! Climbing from {self.player_position[player]} to {new_position}.")
            else:
                print(f"{player} encountered a snake! Sliding down from {self.player_position[player]} to {new_position}.")
            self.player_position[player] = new_position

        print(f"{player}'s new position: {self.player_position[player]}")

    def play_game(self):
        self.create_board()
        print("Welcome to Snake and Ladder Game!")
        current_player = "Player 1"
        while True:
            input(f"{current_player}, Press Enter to roll the dice...")
            self.move_player(current_player)
            if self.player_position[current_player] >= 100:
                print(f"Congratulations! {current_player} wins!")
                break
            current_player = "Player 2" if current_player == "Player 1" else "Player 1"

# Start the game
game = SnakeAndLadderGame()
game.play_game()
Editor is loading...
Leave a Comment