Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (require picturing-programs)
- ; when a letter in the word is pressed, only those letters show up
- ; when a letter not in the word is pressed, part of the hangman is drawn
- (define (string-contains-letter? str letter)
- (cond [(string=? letter (substring str 0 1)) true]
- [(= (string-length str) 1) false]
- [else (string-contains-letter? (substring str 1) letter)]))
- (check-expect (string-contains-letter? "ice cream" "a") true)
- (check-expect (string-contains-letter? "ice cream" "z") false)
- (define (omit word letter)
- (cond [(or (string=? "" word) (string=? "" letter)) ""]
- [(string=? letter (substring word 0 1)) (omit (substring word 1) letter)]
- [(= (string-length word) 1) word]
- [else (string-append (substring word 0 1) (omit (substring word 1) letter))]))
- (check-expect (omit "word" "w") "ord")
- (check-expect (omit "hangman" "a") "hngmn")
- (check-expect (omit "nothing" "z") "nothing")
- (define (wipeout word letters)
- (cond [(or (string=? "" word) (string=? "" letters)) ""]
- [(= 1 (string-length letters)) (omit word letters)]
- [else (wipeout (omit word (substring letters 0 1)) (substring letters 1))]))
- (check-expect (wipeout "Williams" "li") "Wams")
- (check-expect (wipeout "penguin" "dinosaur") "peg")
- (define (help-under word letters-guessed)
- (cond [(or (= 0 (string-length word)) (= 0 (string-length letters-guessed))) ""]
- [(string=? (substring (wipeout word letters-guessed) 0 1)
- (substring word 0 1))
- true]
- [else false]))
- (define (underscorizer word letters-guessed)
- (cond [(or (> 1 (string-length word)) (> 1 (string-length letters-guessed))) ""]
- [(boolean=? true (help-under word letters-guessed))
- (string-append "_" (underscorizer (substring word 1) letters-guessed))]
- [else
- (string-append (substring word 0 1) (underscorizer (substring word 1) letters-guessed))]))
- (check-expect (underscorizer "wow" "w") "w_w") ;fail
- (check-expect (underscorizer "williams" "li") "_illi___") ;no fail :)
- (check-expect (underscorizer "wow" "ow") "wow") ;fail
- (check-expect (underscorizer "frustration" "rain") "_r____a_i_n") ;fail
- (define-struct m (secret-word
- letters-right
- letters-wrong
- right-count
- wrong-count))
- ;(define (keyh structmodel key)
- ; (cond [(string=? key (substring (m secret-word
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement