Advertisement
RaZgRiZ

Hangman 1.0 SVN

Apr 24th, 2012
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.43 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 $[@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. ]
  19.  
  20. _man_buildword = [
  21.     local tmp1 tmp2
  22.     loopchar c $arg1 [
  23.         if (=s $c (substr @arg1 0 1)) [tmp1 = $c]
  24.         tmp2 = (concatword $tmp2 (? (|| (=s $c $tmp1) (strfind [@@arg2] $c)) $c "_"))
  25.     ]
  26.     _man_guessword = $tmp2
  27. ]
  28.  
  29. _man_reset = [
  30.     _man_wrong = ""
  31.     _man_right = ""
  32.     _man_triesleft = 7
  33.     _man_guessword = ""
  34.     _man_rndword = (rndo (listdel $_man_guesslist (getalias _man_rndword)))
  35.     _man_buildword $_man_rndword
  36. ]
  37.  
  38. _man_reset
  39. hangman = [showgui hangman]
  40.  
  41. newgui hangman [
  42.     guistayopen [
  43.         guilist [
  44.             guiimage "data/cube.png" [_man_reset] 2 0
  45.             guistrut 2
  46.             guilist [
  47.                 guistrut 24 1
  48.                 guialign 0 [
  49.                     guitext (format "%1%2" (
  50.                         ? (! $_man_triesleft) "^f3" (? (=s $_man_guessword $_man_rndword) "^f0" "^f2")
  51.                     ) $_man_guessword) 0
  52.                 ]
  53.                 guistrut 1
  54.                 guialign 0 [
  55.                     cond (! $_man_triesleft) [
  56.                         _man_buildword $_man_rndword $_man_rndword
  57.                         guitext "^f2You failed miserably! Boo!" 0
  58.                     ] (=s $_man_guessword $_man_rndword) [
  59.                         guitext "^f2Congratulations! You won!" 0
  60.                     ] [
  61.                         guitext (concat "^f2Tries Left:^f7" $_man_triesleft) 0
  62.                     ]
  63.                 ]
  64.             ]
  65.             guibar
  66.             loop p 7 [
  67.                 guilist [
  68.                     guistrut 2 1
  69.                     loopchar p (at "AHOV BIPW CJQX DKRY ELSZ FMT GNU" @p) [
  70.                         guialign 0 [
  71.                             guibutton (format "%2%1" $p (
  72.                                 ? (strfind $_man_guessword $p) "^f1" (
  73.                                     ? (|| (strfind $_man_wrong $p) (=s $_man_guessword $_man_rndword) (! $_man_triesleft)) "^f4"
  74.                                 )
  75.                             )) [
  76.                                 if (
  77.                                     && (! (strfind (concat $_man_right $_man_wrong) @p)) (
  78.                                         !=s $_man_guessword $_man_rndword
  79.                                     ) $_man_triesleft
  80.                                 ) [
  81.                                     if (strfind $_man_rndword @@p) [
  82.                                         append _man_right @@@p
  83.                                         _man_buildword $_man_rndword $_man_right
  84.                                     ] [
  85.                                         _man_triesleft = (- $_man_triesleft 1)
  86.                                         append _man_wrong @@@p
  87.                                     ]
  88.                                 ]
  89.                             ] 0
  90.                         ]
  91.                     ]
  92.                 ]
  93.             ]
  94.         ]
  95.     ]
  96. ] " Hangman " [_man_reset]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement