Advertisement
RaZgRiZ

Hangman 1.1 SVN

Apr 27th, 2012
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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 $[@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.     local tmp1 tmp2
  25.     tmp1 = (substr $arg1 0 1)
  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 24 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.             guibar
  71.             loop p 7 [
  72.                 guilist [
  73.                     guistrut 2 1
  74.                     loopchar p (at "AHOV BIPW CJQX DKRY ELSZ FMT GNU" @p) [
  75.                         guialign 0 [
  76.                             guibutton (format "%2%1" $p (
  77.                                 ? (strfind $_man_guessword $p) "^f1" (
  78.                                     ? (|| (strfind $_man_wrong $p) (=s $_man_guessword $_man_rndword) (! $_man_triesleft)) "^f4"
  79.                                 )
  80.                             )) [
  81.                                 if (
  82.                                     && (! (strfind (concat $_man_right $_man_wrong) @p)) (
  83.                                         !=s $_man_guessword $_man_rndword
  84.                                     ) $_man_triesleft
  85.                                 ) [
  86.                                     if (strfind $_man_rndword @@p) [
  87.                                         append _man_right @@@p
  88.                                         _man_buildword $_man_rndword $_man_right
  89.                                     ] [
  90.                                         _man_triesleft = (- $_man_triesleft 1)
  91.                                         append _man_wrong @@@p
  92.                                     ]
  93.                                 ]
  94.                             ] 0
  95.                         ]
  96.                     ]
  97.                 ]
  98.             ]
  99.         ]
  100.     ]
  101. ] " Hangman " [_man_reset]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement