Guest User

Untitled

a guest
Jan 4th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.70 KB | None | 0 0
  1. #lang racket
  2. (display "xX THE HORROCRUX Xx")(newline)(newline)
  3. (display "Bienvenido a The Horrocrux")(newline)(newline)
  4. (display "INSTRUCCIONES:")(newline)
  5. (display "El juego consiste en evitar que el mago malvado llegue al horrocrux,")(newline)
  6. (display "para lograrlo ataca al mago y evita que llegue en 180 segundos.")(newline)(newline)
  7. (display "Para comenzar el a jugar escriba (comenzar), y luego Enter.")
  8.  
  9.  
  10.  
  11. (define tAcum 0)
  12. (define invalidanteM 0)
  13.  
  14. ;;funcion que da inicio el programa
  15. (define (comenzar)
  16. (cond ((>= tAcum 180)(verifica invalidanteM)
  17. )
  18. (else(set! tAcum (+ tAcum 3))(jugador)
  19. )
  20. )
  21.  
  22. (display "llevas ")(display tAcum)(display " segundo")
  23. (newline)
  24.  
  25. (cond ((>= tAcum 180)
  26. (verifica invalidanteM)
  27.  
  28. )
  29. (else(mago))
  30. )
  31.  
  32. (display "llevas ")(display tAcum)(display " segundo")
  33. (newline)
  34.  
  35. (cond ((>= tAcum 180)
  36. (verifica invalidanteM)
  37.  
  38. )
  39. (else(comenzar))
  40. )
  41.  
  42. (newline)
  43. )
  44.  
  45.  
  46. (define (jugador)
  47. (display "Elige un comando")(newline)(newline)
  48. (display "1-hechizo")(newline)
  49. (display "2-criatura")(newline)
  50. (display "3-objeto")(newline)(newline)
  51. (comando (read))
  52. )
  53.  
  54. (define (verifica valor)
  55.  
  56. (cond (( = valor 1 )
  57. (display "El mago esta invalidado" )(newline)(newline)
  58. (display "Has cruzado la puerta !!!!!!!" )(newline)
  59. )
  60. (else
  61. (display "El mago escapa!!" )(newline)(newline)
  62. (display "No has podido cruzado la puerta, perdiste ! ")(newline)
  63. )
  64. )
  65. )
  66. ;;funcion que a otra funcion, dependiendo de la opcion que se elija
  67. (define (comando op)
  68. (cond ((= op 1) (display "Has seleccionado hechizos")
  69. (newline)(newline)
  70. (hechizos)
  71. )
  72. ((= op 2) (display "Has elegido criaturas")
  73. (newline)(newline)
  74. (criaturas)
  75. )
  76. ((= op 3) (display "Has elegido objetos")
  77. (newline)(newline)
  78. (objetos)
  79. )
  80. (else(display "Opcion invalida")(newline)
  81. (display "Ingrese nuevamente")(newline)
  82. (comando (read))
  83. )
  84. )
  85. )
  86.  
  87. ;;funcion que imprime la lista de hechizos
  88. (define (hechizos)
  89. (display "Escoge un hechizo que deseas lanzar:")(newline)
  90. (display "1-Impedimenta")(newline)
  91. (display "2-Levicorpus")(newline)
  92. (display "3-Arresto momentum")(newline)
  93. (display "4-Bombarda")(newline)
  94. (display "5-Depulso")(newline)
  95. (display "6-Desmaius")(newline)
  96. (display "7-Ever Statum")(newline)
  97. (display "8-Expulso")(newline)
  98. (display "9-Fiendlocked")(newline)
  99. (display "10-Bombarda maxima")(newline)
  100. (newline)
  101. (escogerHec (read))
  102. )
  103.  
  104. ;;funcion que permite elegir hechizos
  105. (define (escogerHec op)
  106. (cond ((= op 1) (display "Has lanzado Impedimenta")(newline))
  107. ((= op 2) (display "Has lanzado Levicorpus")(newline)
  108. (invalidante)
  109. )
  110. ((= op 3) (display "Has lanzado Arresto momentum")(newline)
  111. (invalidante)
  112. )
  113. ((= op 4) (display "Has lanzado Bombarda")(newline))
  114. ((= op 5) (display "Has lanzado Depulso")(newline))
  115. ((= op 6) ((display "Has lanzado Desmaius")(newline)
  116. (invalidante))
  117. )
  118. ((= op 7) (display "Has lanzado Ever Statum")(newline))
  119. ((= op 8) (display "Has lanzado Expulso")(newline)
  120. (invalidante)
  121. )
  122. ((= op 9) (display "Has lanzado Fiendlocked")(newline))
  123. ((= op 10) (display "Has lanzado Bombarda maxima")(newline))
  124.  
  125. (else(display "No existe tal opcion")
  126. (newline)
  127. (display "Ingrese nuevamente")
  128. (newline)
  129. (hechizos);;llama la funcion hechizos nuevamente
  130. )
  131. )
  132. )
  133.  
  134. (define (invalidante)
  135. (display "El mago queda invalidado por tu hechizo")(newline)
  136. (define aux (+ 1 (random 4)))
  137. (set! tAcum (+ tAcum aux))
  138. (set! invalidanteM 0)
  139. (display "El mago debe esperar ")(display aux)(display " segundo, para poder atacar nuevamente")(newline)(newline)
  140. (esperar aux)
  141. )
  142.  
  143.  
  144.  
  145. ;;funcion que imprime la lista de criatura
  146. (define (criaturas)
  147. (display "Escoge una criatura que deseas invocar:")(newline)
  148. (display "1-Duende") (newline)
  149. (display "2-Planta Carnibora") (newline)
  150. (display "3-Mini Ogro") (newline)
  151. (invocarCri (read))
  152. )
  153.  
  154. ;;funcion que permite elegir criaturas
  155. (define (invocarCri op)
  156. (cond ((= op 1) (display "Has invocado duende")(newline))
  157. ((= op 2) (display "Has invocado Planta Carnibora")(newline))
  158. ((= op 3) (display "Has invocado Mini Ogro")(newline))
  159.  
  160. (else(display "El valor ingresado no es valido")
  161. (newline)
  162. (display "Intente nuevamente")
  163. (newline)
  164. (criaturas)
  165. )
  166. )
  167. )
  168.  
  169.  
  170. ;;funcion que imprime la lista de objetos
  171. (define (objetos)
  172. (display "Escoge un objeto que deseas lanzar:")(newline)
  173. (display "1-Fierro") (newline)
  174. (display "2-Escombros") (newline)
  175. (display "3-Bola de acero") (newline)
  176. (display "4-Caja de madera") (newline)
  177. (display "5-Rocas ") (newline)
  178. (display "6-Cuchillo") (newline)
  179. (lanzarObj (read))
  180. )
  181.  
  182. ;;funcion que permite elegir objeto
  183. (define (lanzarObj op)
  184. (cond ((= op 1) (display "Has lanzado Fierro")(newline))
  185. ((= op 2) (display "Has lanzado Escombros")(newline))
  186. ((= op 3) (display "Has lanzado Bola de Acero")(newline))
  187. ((= op 4) (display "Has lanzado Caja de Madera")(newline))
  188. ((= op 5) (display "Has lanzado Rocas")(newline))
  189. ((= op 6) (display "Has lanzado Cuchillos")(newline))
  190. (else(display "El valor ingresado esta fuera de la lista")
  191. (newline)
  192. (display "Ingrese nuevamente")
  193. (newline)
  194. (objetos)
  195. )
  196. )
  197. )
  198.  
  199.  
  200.  
  201.  
  202.  
  203. ;;funcion que hace que el mago se mueve
  204. (define (mago)
  205. (define opcion (+ 1 (random 3)))
  206. (comandoM opcion)
  207. )
  208.  
  209. ;;funcion que llama a otra funcion, dependiendo de la opcion que se elija
  210. (define (comandoM op)
  211. (cond ((= op 1) (display "El mago ataca con un hechizo")
  212. (newline)(newline)
  213. (define hechizo (+ 1 (random 10)))
  214. (escogerHecM hechizo)
  215. )
  216. ((= op 2) (display "El mago ataca con una criatura")
  217. (newline)(newline)
  218. (define criatura (+ 1 (random 3)))
  219. (invocarCriM criatura)
  220. )
  221. ((= op 3) (display "El mago ataca con un objeto")
  222. (newline)(newline)
  223. (define objeto (+ 1 (random 3)))
  224. (lanzarObjM objeto)
  225. )
  226. )
  227. )
  228.  
  229. ;;funcion que permite al mago lanzar hechizos
  230. (define (escogerHecM op)
  231. (cond ((= op 1) (display "te ha lanzado Serpensortia")(newline))
  232. ((= op 2) (display "te ha lanzado Confringo")(newline)
  233. (set! invalidante 1)
  234. (hechizoInv)
  235. )
  236. ((= op 3) (display "te ha lanzado Protego")(newline))
  237. ((= op 4) (display "te ha lanzado Confudus")(newline)
  238. (set! invalidante 1)
  239. (hechizoInv)
  240. )
  241. ((= op 5) (display "te ha lanzado Desmaius")(newline)
  242. (set! invalidante 1)
  243. (hechizoInv)
  244. )
  245. ((= op 6) (display "te ha lanzado Evertestatil")(newline))
  246. ((= op 7) (display "te ha lanzado Fiendfyre")(newline)
  247. (set! invalidante 1)
  248. (hechizoInv)
  249. )
  250. ((= op 8) (display "te ha lanzado Incendio ")(newline))
  251. ((= op 9) (display "te ha lanzado Tarantallegra")(newline))
  252. ((= op 10) (display "te ha lanzado Lumos Maxima")(newline))
  253. )
  254. )
  255.  
  256. (define (hechizoInv)
  257. (display "Quedas invalidado por el hechizo del mago")(newline)
  258. (define aux (+ 1 (random 4)))
  259. (set! tAcum (+ tAcum aux))
  260. (display "Debes esperar ")(display aux)(display " segundo, para poder atacar nuevamente")(newline)
  261. (esperar aux)
  262. (cond((>= aux 3)(display "Oh no!, te tardaste mucho, el mago ataca nuevamente!")(newline)(newline)(mago)))
  263. )
  264.  
  265. ;;funcion que permite al mago invocar criaturas
  266. (define (invocarCriM op)
  267. (cond ((= op 1) (display "el mago ha invocado Sepiente")(newline)
  268. (display "la serpiente te ataca")(newline)
  269. )
  270. ((= op 2) (display "el mago ha invocado araña mediana")(newline)
  271. (display "la araña mediana te ataca")(newline)
  272. )
  273. ((= op 3) (display "el brujo ha invocado nomos diabolicos")(newline)
  274. (display "el nomos diabolicos te ataca")(newline)
  275. )
  276. )
  277. )
  278.  
  279. ;;funcion que permite al mago lanzar objeto
  280. (define (lanzarObjM op)
  281. (cond ((= op 1) (display "te ha lanzado Espada")(newline))
  282. ((= op 2) (display "te ha lanzado Roca")(newline))
  283. ((= op 3) (display "te ha lanzado Bumerang")(newline))
  284. )
  285. )
  286.  
  287. ;;funcion que hace que el usuario espere segundo
  288. (define esperar
  289. (lambda (n)
  290. (local
  291. [(define main
  292. (lambda (x)
  293. (cond
  294. [(>= (current-milliseconds) (+ x (* n 1000)))
  295. (void)]
  296. [else
  297. (main x)])))]
  298. (main (current-milliseconds))
  299. )
  300. )
  301. )
Add Comment
Please, Sign In to add comment