Untitled
unknown
python
a year ago
2.7 kB
9
Indexable
import random class SnakeAndLadderGame: def __init__(self, num_players, board_size=10): self.num_players = num_players self.board_size = board_size self.players = {} self.board = [0] * (board_size * board_size) self.snakes = {} self.ladders = {} self.create_board() self.place_snakes_and_ladders() def create_board(self): for i in range(self.board_size * self.board_size): self.board[i] = i + 1 def place_snakes_and_ladders(self): num_snakes = random.randint(self.board_size // 2, self.board_size) num_ladders = random.randint(self.board_size // 2, self.board_size) positions = random.sample(range(1, self.board_size * self.board_size + 1), num_snakes + num_ladders) snake_positions = positions[:num_snakes] ladder_positions = positions[num_snakes:] for i in range(num_snakes): start = snake_positions[i] end = random.randint(1, start - 1) self.snakes[start] = end for i in range(num_ladders): start = ladder_positions[i] end = random.randint(start + 1, self.board_size * self.board_size) self.ladders[start] = end def move_player(self, player): current_position = self.players[player] dice_roll = random.randint(1, 6) new_position = current_position + dice_roll if new_position in self.snakes: print(f"Oops! {player} encountered a snake from {new_position} to {self.snakes[new_position]}") new_position = self.snakes[new_position] if new_position in self.ladders: print(f"Wow! {player} found a ladder from {new_position} to {self.ladders[new_position]}") new_position = self.ladders[new_position] if new_position >= self.board_size * self.board_size: print(f"{player} reached the final position and won the game!") return True self.players[player] = new_position print(f"{player} rolled a {dice_roll} and moved to position {new_position}") return False def play(self): print("Welcome to Snake and Ladder Game!") for i in range(self.num_players): self.players[f"Player {i+1}"] = 1 while True: for player in self.players: input(f"{player}, Press Enter to roll the dice...") if self.move_player(player): return # Start the game num_players = int(input("Enter the number of players: ")) board_size = int(input("Enter the board size: ")) game = SnakeAndLadderGame(num_players, board_size) game.play()
Editor is loading...
Leave a Comment