Document Details

InspiringNephrite1908

Uploaded by InspiringNephrite1908

Universidad Estatal a Distancia

Tags

programación lenguaje de programación código fuente juego de tablero

Summary

Este código fuente es un programa en Python para un juego de tablero. Incluye funciones para colocar muros y mover a los jugadores. El programa solicita al usuario el tamaño del tablero y luego se crea un tablero con jugadores posicionados de manera estratégica. El programa permite una variedad de comandos de movimiento a los jugadores en el tablero, e incluye una funcionalidad de bomba para destruir muros.

Full Transcript

import random Tamano = int(input("Ingresa el tamaño del tablero: ")) if Tamano >= 6: Tablero = [["x" if i == 0 or i == Tamano - 1 or j == 0 or j == Tamano - 1 else "." for j in range(Tamano)] for i in range(Tamano)] zona_segura_p1 = [(1, 1), (1, 2), (2, 1), (2, 2)] zona_segura_p2 = [(...

import random Tamano = int(input("Ingresa el tamaño del tablero: ")) if Tamano >= 6: Tablero = [["x" if i == 0 or i == Tamano - 1 or j == 0 or j == Tamano - 1 else "." for j in range(Tamano)] for i in range(Tamano)] zona_segura_p1 = [(1, 1), (1, 2), (2, 1), (2, 2)] zona_segura_p2 = [(Tamano - 2, Tamano - 2), (Tamano - 2, Tamano - 3), (Tamano - 3, Tamano - 2), (Tamano - 3, Tamano - 3)] cant_ind = (Tamano * Tamano) // 10 cant_destr = (Tamano * Tamano) // 10 def colocar_muros(tamano, cant_ind, cant_destr): colocados = 0 while colocados < cant_ind + cant_destr: fila = random.randint(1, tamano - 2) col = random.randint(1, tamano - 2) if Tablero[fila][col] == "." and (fila, col) not in zona_segura_p1 and (fila, col) not in zona_segura_p2: if colocados < cant_ind: Tablero[fila][col] = "▧" else: Tablero[fila][col] = "#" colocados += 1 colocar_muros(Tamano, cant_ind, cant_destr) def mostrar_tablero(): for fila in Tablero: print(" ".join(fila)) p1, p2 = [1, 1], [Tamano - 2, Tamano - 2] Tablero[p1][p1], Tablero[p2][p2] = "P1", "P2" ultima_dir = {"P1": None, "P2": None} def mover_jugador(pos, direccion): Tablero[pos][pos] = "." if direccion == "arriba" and Tablero[pos - 1][pos] == ".": pos -= 1 elif direccion == "abajo" and Tablero[pos + 1][pos] == ".": pos += 1 elif direccion == "izquierda" and Tablero[pos][pos - 1] == ".": pos -= 1 elif direccion == "derecha" and Tablero[pos][pos + 1] == ".": pos += 1 Tablero[pos][pos] = "P1" if pos == p1 else "P2" def colocar_bomba(pos): d = ultima_dir["P1"] if pos == p1 else ultima_dir["P2"] if d == "arriba" and Tablero[pos - 1][pos] == ".": Tablero[pos - 1][pos] = "💣︎" elif d == "abajo" and Tablero[pos + 1][pos] == ".": Tablero[pos + 1][pos] = "💣︎" elif d == "izquierda" and Tablero[pos][pos - 1] == ".": Tablero[pos][pos - 1] = "💣︎" elif d == "derecha" and Tablero[pos][pos + 1] == ".": Tablero[pos][pos + 1] = "💣︎" controles = {"P1": {"W": "arriba", "S": "abajo", "A": "izquierda", "D": "derecha", "F": "bomba"}, "P2": {"I": "arriba", "K": "abajo", "J": "izquierda", "L": "derecha", "H": "bomba"}} while True: mostrar_tablero() comando = input("Jugador 1(WASD/F) o Jugador 2(IJKL/H): ").upper() jugador = "P1" if comando in controles["P1"] else "P2" if comando in controles["P2"] else None if comando == "F" and jugador == "P1" or comando == "H" and jugador == "P2": colocar_bomba(p1 if jugador == "P1" else p2) else: ultima_dir[jugador] = controles[jugador][comando] mover_jugador(p1 if jugador == "P1" else p2, ultima_dir[jugador]) else: print("Ingresar número mayor o igual a 6")

Use Quizgecko on...
Browser
Browser