RaZgRiZ

Hangman 1.2 Justice

May 18th, 2012
273
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. append = [$arg1 = (concat (getalias $arg1) $arg2)]
  2. rndo = [at $arg1 (rnd (listlen $arg1))]
  3. strfind = [> (strstr $arg1 $arg2) -1]
  4.  
  5. loopchar = [
  6.     loop $arg1 (strlen $arg2) [
  7.         @arg1 = (substr $arg2 (getalias [@arg1]) 1)
  8.         @arg3
  9.     ]
  10. ]
  11.  
  12. //=======================================================================================//
  13.  
  14. _man_guesslist = [
  15.     PENCIL CLOCKWERK MATTRESS AUTOMOBILE AIRPLANE CELLPHONE
  16.     PRINTER TISSUE MONITOR IRONMAN AWAKENING REALITY
  17.     COMPROMISE CONTROLLER IMPOSSIBILITY KEYCHAIN DEMISE
  18.     PRINTER DRAWER PIPELINE CURTAIN SAMSUNG TRASHCAN
  19.     REPLICATE CONDITIONER DEODORANT FRAMEWORK DESTRUCTION
  20.     EXPLOSION ARTILLERY FACEBOOK FOLDER ARISTOCRAT
  21. ]
  22.  
  23. _man_buildword = [
  24.     tmp1 = (substr $arg1 0 1)
  25.     tmp2 = ""
  26.     loopchar c $arg1 [
  27.         tmp2 = (concatword $tmp2 (
  28.             ? (|| [=s $c $tmp1] [strfind [@@@arg2] $c]) $c "_"
  29.         ))
  30.     ]
  31.     _man_guessword = $tmp2
  32. ]
  33.  
  34. _man_reset = [
  35.     _man_wrong = ""
  36.     _man_right = ""
  37.     _man_triesleft = 7
  38.     _man_guessword = ""
  39.     _man_rndword = (rndo (listdel $_man_guesslist (getalias _man_rndword)))
  40.     _man_buildword $_man_rndword
  41. ]
  42.  
  43. _man_reset
  44. hangman = [showgui hangman]
  45.  
  46. newgui hangman [
  47.     guistayopen [
  48.         guilist [
  49.             guiimage "data/cube.png" [_man_reset] 2 0
  50.             guistrut 2
  51.             guilist [
  52.                 guistrut 28 1
  53.                 guialign 0 [
  54.                     guitext (format "%2%1" $_man_guessword (
  55.                         ? (! $_man_triesleft) "^f3" (? (=s $_man_guessword $_man_rndword) "^f0" "^f2")
  56.                     )) 0
  57.                 ]
  58.                 guistrut 1
  59.                 guialign 0 [
  60.                     cond (! $_man_triesleft) [
  61.                         _man_buildword $_man_rndword $_man_rndword
  62.                         guitext "^f2You failed miserably! Boo!" 0
  63.                     ] (=s $_man_guessword $_man_rndword) [
  64.                         guitext "^f2Congratulations! You won!" 0
  65.                     ] [
  66.                         guitext (concat "^f2Tries Left:^f7" $_man_triesleft) 0
  67.                     ]
  68.                 ]
  69.             ]
  70.             guilistsplit p 4 "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z" [
  71.                 guiimage (format "%2packages/icons/alphabet/%1.jpg" (
  72.                     ? (|| [strfind $_man_wrong $p] [=s $_man_guessword $_man_rndword]) (
  73.                         ? (strfind $_man_guessword $p) $p "_"
  74.                     ) $p
  75.                 ) (? (strfind $_man_guessword $p) "<mad:1/1.5/1>")) [
  76.                     if (&& $_man_triesleft [!=s $_man_guessword $_man_rndword] [
  77.                         ! (strfind (concat $_man_right $_man_wrong) @@p)
  78.                     ]) [
  79.                         if (strfind $_man_rndword @@p) [
  80.                             append _man_right @@@p
  81.                             _man_buildword $_man_rndword $_man_right
  82.                         ] [
  83.                             _man_triesleft = (- $_man_triesleft 1)
  84.                             append _man_wrong @@@p
  85.                         ]
  86.                     ]
  87.                 ] .5 0
  88.             ]
  89.         ]
  90.     ]
  91. ] " Hangman " [_man_reset]
Advertisement
Add Comment
Please, Sign In to add comment