Advertisement
Guest User

Untitled

a guest
Mar 12th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 2.41 KB | None | 0 0
  1. (require picturing-programs)
  2.  
  3. ; when a letter in the word is pressed, only those letters show up
  4. ; when a letter not in the word is pressed, part of the hangman is drawn
  5.  
  6. (define (string-contains-letter? str letter)
  7.   (cond [(string=? letter (substring str 0 1)) true]
  8.         [(= (string-length str) 1) false]
  9.         [else (string-contains-letter? (substring str 1) letter)]))
  10. (check-expect (string-contains-letter? "ice cream" "a") true)
  11. (check-expect (string-contains-letter? "ice cream" "z") false)
  12.  
  13. (define (omit word letter)
  14.   (cond [(or (string=? "" word) (string=? "" letter)) ""]
  15.         [(string=? letter (substring word 0 1)) (omit (substring word 1) letter)]
  16.         [(= (string-length word) 1) word]
  17.         [else (string-append (substring word 0 1) (omit (substring word 1) letter))]))
  18. (check-expect (omit "word" "w") "ord")
  19. (check-expect (omit "hangman" "a") "hngmn")
  20. (check-expect (omit "nothing" "z") "nothing")
  21.  
  22. (define (wipeout word letters)
  23.   (cond [(or (string=? "" word) (string=? "" letters)) ""]
  24.         [(= 1 (string-length letters)) (omit word letters)]
  25.         [else (wipeout (omit word (substring letters 0 1)) (substring letters 1))]))
  26. (check-expect (wipeout "Williams" "li") "Wams")
  27. (check-expect (wipeout "penguin" "dinosaur") "peg")
  28.  
  29.  
  30. (define (help-under word letters-guessed)
  31.   (cond [(or (= 0 (string-length word)) (= 0 (string-length letters-guessed))) ""]
  32.         [(string=? (substring (wipeout word letters-guessed) 0 1)
  33.                    (substring word 0 1))
  34.         true]
  35.         [else false]))
  36.  
  37. (define (underscorizer word letters-guessed)
  38.   (cond [(or (> 1 (string-length word)) (> 1 (string-length letters-guessed))) ""]
  39.         [(boolean=? true (help-under word letters-guessed))
  40.          (string-append "_" (underscorizer (substring word 1) letters-guessed))]
  41.         [else
  42.          (string-append (substring word 0 1) (underscorizer (substring word 1) letters-guessed))]))
  43. (check-expect (underscorizer "wow" "w") "w_w") ;fail
  44. (check-expect (underscorizer "williams" "li") "_illi___") ;no fail :)
  45. (check-expect (underscorizer "wow" "ow") "wow") ;fail
  46. (check-expect (underscorizer "frustration" "rain") "_r____a_i_n") ;fail
  47.  
  48. (define-struct m (secret-word
  49.                   letters-right
  50.                   letters-wrong
  51.                   right-count
  52.                   wrong-count))
  53.  
  54. ;(define (keyh structmodel key)
  55.  ; (cond [(string=? key (substring (m secret-word
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement