lunes, 24 de octubre de 2011

Crear un juego

Hola a todos .

los salud nuevamente y esta vez para contarles que encontré un tutoríal en el que se puede crear un juego en python de forma muy simple :D

la verdad es que me sorprendió lo simple que es :)

por lo que seguí el tutorial este es el enlace :

http://www.youtube.com/watch?v=ejodLulpowI&feature=related

En este post tiene el código de todo el juego que se desarrollo en el tutorial :


import random
class Jugador(object):
    def __init__(self, nombre="Jugador" ):
        self.nombre= nombre
        self.hp_max=random.randrange(45,55)
        self.mp_max=random.randrange(40,50)
        self.fuerza=random.randrange(3,7)
        self.inteligencia=random.randrange(2,5)
        self.hp=self.hp_max
        self.mp=self.mp_max
        self.habilidades=[Bola_de_fuego(),Golpe_letal(),Golpiar()]
    def __str__(self):
        return str(self.nombre)+" HP" +str(self.hp_max)+"/"+str(self.hp)

    def stats(self):
        print self.nombre
        print "Hp: ",self.hp_max,"(max) / ",self.hp
        print "Mp: ",self.mp_max, "(max)/ ", self.mp
        print "Fuerza:",self.fuerza
        print "Inteligencia:",self.inteligencia

    def eleccion(self):
        print "Elija una habilidad"
        print "0-Bola de fuego **10mp"
        print "1-Golpe Letal **5mp"
        print "2-Golpiar **no requiere mp)"
        x= input("? ")
        return x

class AI(object):
     def __init__(self):
        self.hp_max=random.randrange(45,55)
        self.mp_max=random.randrange(40,50)
        self.fuerza=random.randrange(3,7)
        self.inteligencia=random.randrange(2,5)
        self.hp=self.hp_max
        self.mp=self.mp_max
        self.habilidades=[Bola_de_fuego(),Golpe_letal(),Golpiar()]
     def __str__(self):
        return "AI: " + " HP" +str(self.hp_max)+"/"+str(self.hp)
     def stats(self):
        print "Hp: ",self.hp_max,"(max) / ",self.hp
        print "Mp: ",self.mp_max, "(max)/ ", self.mp
        print "Fuerza",self.fuerza
        print "Inteligencia",self.inteligencia
     def eleccion(self):
         x=random.randrange(0,3)
         return x

class Bola_de_fuego(object):
    def __init__(self):
        self.dano=0
        self.nombre="BOLA DE FUEGO"
    def devolver_ataque(self,origen):
        if origen.mp<10:
            return 0
        else:
            self.dano=random.randrange(13,19)+origen.inteligencia
            origen.mp+= -10
            return self.dano


class Golpe_letal(object):
    def __init__(self):
        self.nombre="GOLPE LETAL"
        self.dano=0
    def devolver_ataque(self,origen):
        if origen.mp<5:
            return 0
        else:
            self.dano=random.randrange(7,15)+origen.fuerza
            origen.mp-=5
            return self.dano


class Golpiar(object):
    def __init__(self):
        self.nombre="Golpiar"
        self.dano=0
    def devolver_ataque(self,origen):
        self.dano=origen.fuerza+origen.inteligencia
        return self.dano






def main():
    print " BIENVENIDOS A CHELINGAME\n"
    print "Modo de juego"
    print "1-Single Player"
    print "2-Multiplayer"
    modo=input("? ")
    if modo==1:
        j2=AI()

    if modo==2:
        print "ingrese su nombre j2"
        name=raw_input("? ")
        j2=Jugador(name)

    print "ingrese su nombre j1"
    name=raw_input("? ")
    j1=Jugador(name)
    print"STATS J1"
    j1.stats()
    tiempo=raw_input("..,.")
    print "STATS J2"
    j2.stats()
    tiempo=raw_input(".....")
    while j1.hp>0 and j2.hp>0:

        print "Turno J1"
        print j1
        print "mp",j1.mp
        print j2
        elec1=j1.eleccion()
        print "Se utilizo la hablidad",j1.habilidades[elec1].nombre
        dano1=j1.habilidades[elec1].devolver_ataque(j1)
        print "dano efectuado",dano1
        j2.hp-=dano1
        if j1.hp<=0 or j2.hp<=0:
            break
        tiempo=raw_input(".....")
        print "...."
        print "Turno J2"
        print j1
        print j2
        print "mp",j2.mp
        elec2=j2.eleccion()
        print "Se utilizo la hablidad",j2.habilidades[elec2].nombre
        dano2=j2.habilidades[elec2].devolver_ataque(j2)
        print "dano efectuado",dano2
        j1.hp-=dano2
        tiempo=raw_input(".....")
    if j1.hp>0:
        print "Gano j1"
    else:
        print "Gano j2"

main()





En los próximos post iré explicando como seguí desarrollando este juego.


Esto lo además de otro tutorial que sigo por lo que tendré varios post medios intercalados.


SL2

No hay comentarios:

Publicar un comentario