#Aqui insertamos el codigo
# -*- coding: utf-8 -*-
import random
import textwrap
if __name__ == '__main__':
seguir_jugando = 1
ocupantes = ['enemigo','amigo','no ocupada']
ancho_linea = 72 #variable de tamano 72
linea_punteada = ancho_linea * '-'
print(linea_punteada)
print("\033[1m"+ "Ataca a los Orcos V0.0.1" + "\033[0m") #033,1m,0m se utiliza para letras negritas
#Aqui narra la historia del juego y en que consiste...
msg = ("La guerra entre los humanos y sus arqueros enemigos, los Orcos, estaba en el aire."
"Un enorme ejército de orcos se dirigía hacia los territos de los humanos. Destruían"
"prácticamente todo en su camino. Los grandes reyes de la raza humana, se unieron para"
" derrotar a su peor enemigo, era la gran batalla de su tiempo. Sir Gandorel, uno de los "
"valientes caballeros que guardan las llanuras meridionales, inició un largo viaje hacia el este"
", a través de un desconocido bosque espeso. Durante dos días y dos noches, se movió con cautela "
"a través del grueso bosque. En su camino, vio un pequeño asentamiento aislado. Cansado y con "
"la esperanza de reponer su stock de alimentos, decidió tomar un desvío. Cuando se acercó al pueblo,"
"vio cinco chozas. No había nadie alrededor. En ese instante, decidió entrar en un choza...")
print(textwrap.fill(msg, width = ancho_linea)) #para respetar las lineas punteadas y que el texto se encuentre en el
#con el mismo ancho de las lineas punteadas
print("\033[1m"+"Misión:"+"\033[0m")
print("Elige una choza donde poder descansar...")
print("\033[1m"+"NOTA:"+"\033[0m")
print("¡Cuidado! Hay enemigos rondando la zona")
print(linea_punteada)
while seguir_jugando == 1:
chozas = [] #definimos un vector vacio en donde se estaran llenando las chozas
while len(chozas) < 5: #Definimos un número de asentamiento para establecerlo como amigo o enemigo
eleccion_aleatoria = random.choice(ocupantes) #random.choice toma uno de los elementos del vector
chozas.append(eleccion_aleatoria) #lo agrega al vector
msg = "\033[1m" + "Elige una choza, introduce un número entre 1 y 5: " + "\033[0m"
decision_usuario = input("\n"+msg)
idx = int(decision_usuario)
#Pasamos a descubrir cuales son los ocupantes del emplazamiento
print("Descubriendo los ocupantes...")
msg=""
for i in range(len(chozas)):
ocupantes_info = "<%d:%s>"%(i+1, chozas[i])
if i+1 == idx:
ocupantes_info = "\033[1m" + ocupantes_info + "\033[0m"
msg += ocupantes_info + " "
print("\t" + msg)
print(linea_punteada)
print("\033[1m" + "Entrando en la choza %d..." %idx + "\033[0m")
if chozas[idx-1] == 'enemigo':
print("\033[1m" + "Sir Gandorel ha muerto asesinado por una manada de orcos (Mucha suerte la próxima vez)" + "\033[0m")
else:
print("\033[1m" + "¡Felicidades! Sir Gandorel ha podido descansar con éxito" + "\033[0m")
print(linea_punteada)
seguir_jugando = input("¿Quieres jugar de nuevo? Si(1)/No(0):")
#Aqui insertamos el codigo
# -*- coding: utf-8 -*-
import sys
import random
if sys.version_info < (3, 0):
from Tkinter import Tk, Label, Radiobutton, PhotoImage, IntVar
import tkMessageBox as messagebox
else:
from Tkinter import Tk, Label, Radiobutton, PhotoImage, IntVar
from Tkinter import messagebox
class JuegoChozas:
def __init__(self, parent):
self.imagen_fondo = PhotoImage(file="Jungle_small_2.gif")
self.imagen_choza = PhotoImage(file="Hut_small_2.gif")
self.ancho_choza = 60
self.alto_choza = 140
self.container = parent
self.Chozas = []
self.result = ""
self.ocupar_chozas()
self.setup()
def ocupar_chozas(self):
ocupantes = ['enemigo', 'amigo', 'vacia']
while len(self.Chozas) < 5:
computer_choice = random.choice(ocupantes)
self.Chozas.append(computer_choice)
print("Los ocupantes de las chozas son:", self.Chozas)
def entrar_choza(self, numero_choza):
print("Entrando en la choza #:", numero_choza)
ocupante_choza = self.Chozas[numero_choza-1]
print("El ocupante de la choza es: ", ocupante_choza)
if ocupante_choza == 'enemigo':
self.result = "Enemigo visto en la choza # %d \n\n" % numero_choza
self.result += "Has perdido :( Mucha suerte la próxima vez!"
elif ocupante_choza == 'vacia':
self.result = "La Choza # %d está vacia\n\n" % numero_choza
self.result += "Enhorabuena! Has ganado!!!"
else:
self.result = "Amigo visto en la choza # %d \n\n" % numero_choza
self.result += "Enhorabuena! Has ganado!!!"
self.anunciar_ganador(self.result)
def crear_widgets(self):
self.var = IntVar()
self.background_label = Label(self.container,
image=self.imagen_fondo)
txt = "Selecciona una choza en la que entrar. Ganarás si:\n"
txt += "La choza está vacia o si su ocupante es tu aliado, de lo contrario morirás"
self.info_label = Label(self.container, text=txt, bg='white')
# Creamos un dicionario con las opciones para las imagenes de las chozas
r_btn_config = {'variable': self.var,
'bg': '#8AA54C',
'activebackground': 'green',
'image': self.imagen_choza,
'height': self.alto_choza,
'width': self.ancho_choza,
'command': self.radio_btn_pressed}
self.r1 = Radiobutton(self.container, r_btn_config, value=1)
self.r2 = Radiobutton(self.container, r_btn_config, value=2)
self.r3 = Radiobutton(self.container, r_btn_config, value=3)
self.r4 = Radiobutton(self.container, r_btn_config, value=4)
self.r5 = Radiobutton(self.container, r_btn_config, value=5)
def setup(self):
self.crear_widgets()
self.setup_layout()
def setup_layout(self):
self.container.grid_rowconfigure(1, weight=1)
self.container.grid_columnconfigure(0, weight=1)
self.container.grid_columnconfigure(4, weight=1)
self.background_label.place(x=0, y=0, relwidth=1, relheight=1)
self.info_label.grid(row=0, column=0, columnspan=5, sticky='nsew')
self.r1.grid(row=1, column=0)
self.r2.grid(row=1, column=2)
self.r3.grid(row=1, column=4)
self.r4.grid(row=4, column=2)
self.r5.grid(row=4, column=0)
def anunciar_ganador(self, data):
messagebox.showinfo("¡Atención!", message=data)
# Handle Events
def radio_btn_pressed(self):
self.entrar_choza(self.var.get())
if __name__ == "__main__":
mainwin = Tk()
WIDTH = 1280
HEIGHT = 700
mainwin.geometry("%sx%s" % (WIDTH, HEIGHT))
mainwin.resizable(0, 0)
mainwin.title("Ataca a los orcos V 2.0.0 - El Videojuego")
game_app = JuegoChozas(mainwin)
mainwin.mainloop()
No hay comentarios:
Publicar un comentario