Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #lang racket
- (display "xX THE HORROCRUX Xx")(newline)(newline)
- (display "Bienvenido a The Horrocrux")(newline)(newline)
- (display "INSTRUCCIONES:")(newline)
- (display "El juego consiste en evitar que el mago malvado llegue al horrocrux,")(newline)
- (display "para lograrlo ataca al mago y evita que llegue en 180 segundos.")(newline)(newline)
- (display "Para comenzar el a jugar escriba (comenzar), y luego Enter.")
- (define tAcum 0)
- (define invalidanteM 0)
- ;;funcion que da inicio el programa
- (define (comenzar)
- (cond ((>= tAcum 180)(verifica invalidanteM)
- )
- (else(set! tAcum (+ tAcum 3))(jugador)
- )
- )
- (display "llevas ")(display tAcum)(display " segundo")
- (newline)
- (cond ((>= tAcum 180)
- (verifica invalidanteM)
- )
- (else(mago))
- )
- (display "llevas ")(display tAcum)(display " segundo")
- (newline)
- (cond ((>= tAcum 180)
- (verifica invalidanteM)
- )
- (else(comenzar))
- )
- (newline)
- )
- (define (jugador)
- (display "Elige un comando")(newline)(newline)
- (display "1-hechizo")(newline)
- (display "2-criatura")(newline)
- (display "3-objeto")(newline)(newline)
- (comando (read))
- )
- (define (verifica valor)
- (cond (( = valor 1 )
- (display "El mago esta invalidado" )(newline)(newline)
- (display "Has cruzado la puerta !!!!!!!" )(newline)
- )
- (else
- (display "El mago escapa!!" )(newline)(newline)
- (display "No has podido cruzado la puerta, perdiste ! ")(newline)
- )
- )
- )
- ;;funcion que a otra funcion, dependiendo de la opcion que se elija
- (define (comando op)
- (cond ((= op 1) (display "Has seleccionado hechizos")
- (newline)(newline)
- (hechizos)
- )
- ((= op 2) (display "Has elegido criaturas")
- (newline)(newline)
- (criaturas)
- )
- ((= op 3) (display "Has elegido objetos")
- (newline)(newline)
- (objetos)
- )
- (else(display "Opcion invalida")(newline)
- (display "Ingrese nuevamente")(newline)
- (comando (read))
- )
- )
- )
- ;;funcion que imprime la lista de hechizos
- (define (hechizos)
- (display "Escoge un hechizo que deseas lanzar:")(newline)
- (display "1-Impedimenta")(newline)
- (display "2-Levicorpus")(newline)
- (display "3-Arresto momentum")(newline)
- (display "4-Bombarda")(newline)
- (display "5-Depulso")(newline)
- (display "6-Desmaius")(newline)
- (display "7-Ever Statum")(newline)
- (display "8-Expulso")(newline)
- (display "9-Fiendlocked")(newline)
- (display "10-Bombarda maxima")(newline)
- (newline)
- (escogerHec (read))
- )
- ;;funcion que permite elegir hechizos
- (define (escogerHec op)
- (cond ((= op 1) (display "Has lanzado Impedimenta")(newline))
- ((= op 2) (display "Has lanzado Levicorpus")(newline)
- (invalidante)
- )
- ((= op 3) (display "Has lanzado Arresto momentum")(newline)
- (invalidante)
- )
- ((= op 4) (display "Has lanzado Bombarda")(newline))
- ((= op 5) (display "Has lanzado Depulso")(newline))
- ((= op 6) ((display "Has lanzado Desmaius")(newline)
- (invalidante))
- )
- ((= op 7) (display "Has lanzado Ever Statum")(newline))
- ((= op 8) (display "Has lanzado Expulso")(newline)
- (invalidante)
- )
- ((= op 9) (display "Has lanzado Fiendlocked")(newline))
- ((= op 10) (display "Has lanzado Bombarda maxima")(newline))
- (else(display "No existe tal opcion")
- (newline)
- (display "Ingrese nuevamente")
- (newline)
- (hechizos);;llama la funcion hechizos nuevamente
- )
- )
- )
- (define (invalidante)
- (display "El mago queda invalidado por tu hechizo")(newline)
- (define aux (+ 1 (random 4)))
- (set! tAcum (+ tAcum aux))
- (set! invalidanteM 0)
- (display "El mago debe esperar ")(display aux)(display " segundo, para poder atacar nuevamente")(newline)(newline)
- (esperar aux)
- )
- ;;funcion que imprime la lista de criatura
- (define (criaturas)
- (display "Escoge una criatura que deseas invocar:")(newline)
- (display "1-Duende") (newline)
- (display "2-Planta Carnibora") (newline)
- (display "3-Mini Ogro") (newline)
- (invocarCri (read))
- )
- ;;funcion que permite elegir criaturas
- (define (invocarCri op)
- (cond ((= op 1) (display "Has invocado duende")(newline))
- ((= op 2) (display "Has invocado Planta Carnibora")(newline))
- ((= op 3) (display "Has invocado Mini Ogro")(newline))
- (else(display "El valor ingresado no es valido")
- (newline)
- (display "Intente nuevamente")
- (newline)
- (criaturas)
- )
- )
- )
- ;;funcion que imprime la lista de objetos
- (define (objetos)
- (display "Escoge un objeto que deseas lanzar:")(newline)
- (display "1-Fierro") (newline)
- (display "2-Escombros") (newline)
- (display "3-Bola de acero") (newline)
- (display "4-Caja de madera") (newline)
- (display "5-Rocas ") (newline)
- (display "6-Cuchillo") (newline)
- (lanzarObj (read))
- )
- ;;funcion que permite elegir objeto
- (define (lanzarObj op)
- (cond ((= op 1) (display "Has lanzado Fierro")(newline))
- ((= op 2) (display "Has lanzado Escombros")(newline))
- ((= op 3) (display "Has lanzado Bola de Acero")(newline))
- ((= op 4) (display "Has lanzado Caja de Madera")(newline))
- ((= op 5) (display "Has lanzado Rocas")(newline))
- ((= op 6) (display "Has lanzado Cuchillos")(newline))
- (else(display "El valor ingresado esta fuera de la lista")
- (newline)
- (display "Ingrese nuevamente")
- (newline)
- (objetos)
- )
- )
- )
- ;;funcion que hace que el mago se mueve
- (define (mago)
- (define opcion (+ 1 (random 3)))
- (comandoM opcion)
- )
- ;;funcion que llama a otra funcion, dependiendo de la opcion que se elija
- (define (comandoM op)
- (cond ((= op 1) (display "El mago ataca con un hechizo")
- (newline)(newline)
- (define hechizo (+ 1 (random 10)))
- (escogerHecM hechizo)
- )
- ((= op 2) (display "El mago ataca con una criatura")
- (newline)(newline)
- (define criatura (+ 1 (random 3)))
- (invocarCriM criatura)
- )
- ((= op 3) (display "El mago ataca con un objeto")
- (newline)(newline)
- (define objeto (+ 1 (random 3)))
- (lanzarObjM objeto)
- )
- )
- )
- ;;funcion que permite al mago lanzar hechizos
- (define (escogerHecM op)
- (cond ((= op 1) (display "te ha lanzado Serpensortia")(newline))
- ((= op 2) (display "te ha lanzado Confringo")(newline)
- (set! invalidante 1)
- (hechizoInv)
- )
- ((= op 3) (display "te ha lanzado Protego")(newline))
- ((= op 4) (display "te ha lanzado Confudus")(newline)
- (set! invalidante 1)
- (hechizoInv)
- )
- ((= op 5) (display "te ha lanzado Desmaius")(newline)
- (set! invalidante 1)
- (hechizoInv)
- )
- ((= op 6) (display "te ha lanzado Evertestatil")(newline))
- ((= op 7) (display "te ha lanzado Fiendfyre")(newline)
- (set! invalidante 1)
- (hechizoInv)
- )
- ((= op 8) (display "te ha lanzado Incendio ")(newline))
- ((= op 9) (display "te ha lanzado Tarantallegra")(newline))
- ((= op 10) (display "te ha lanzado Lumos Maxima")(newline))
- )
- )
- (define (hechizoInv)
- (display "Quedas invalidado por el hechizo del mago")(newline)
- (define aux (+ 1 (random 4)))
- (set! tAcum (+ tAcum aux))
- (display "Debes esperar ")(display aux)(display " segundo, para poder atacar nuevamente")(newline)
- (esperar aux)
- (cond((>= aux 3)(display "Oh no!, te tardaste mucho, el mago ataca nuevamente!")(newline)(newline)(mago)))
- )
- ;;funcion que permite al mago invocar criaturas
- (define (invocarCriM op)
- (cond ((= op 1) (display "el mago ha invocado Sepiente")(newline)
- (display "la serpiente te ataca")(newline)
- )
- ((= op 2) (display "el mago ha invocado araña mediana")(newline)
- (display "la araña mediana te ataca")(newline)
- )
- ((= op 3) (display "el brujo ha invocado nomos diabolicos")(newline)
- (display "el nomos diabolicos te ataca")(newline)
- )
- )
- )
- ;;funcion que permite al mago lanzar objeto
- (define (lanzarObjM op)
- (cond ((= op 1) (display "te ha lanzado Espada")(newline))
- ((= op 2) (display "te ha lanzado Roca")(newline))
- ((= op 3) (display "te ha lanzado Bumerang")(newline))
- )
- )
- ;;funcion que hace que el usuario espere segundo
- (define esperar
- (lambda (n)
- (local
- [(define main
- (lambda (x)
- (cond
- [(>= (current-milliseconds) (+ x (* n 1000)))
- (void)]
- [else
- (main x)])))]
- (main (current-milliseconds))
- )
- )
- )
Add Comment
Please, Sign In to add comment