====== 数当てゲーム (CLI) ====== ===== game.cr ===== MAX_GUESSES = 10 def play_game the_number = rand(1..100) guesses = 0 success = false last_guess = 0 while !success && guesses < MAX_GUESSES guess = read_number guesses += 1 if guess == the_number success = true else large_or_small = guess > the_number ? "too large" : "too small" print "#{large_or_small} (#{guesses}/#{MAX_GUESSES}). " if last_guess > 1 puts "last guess: #{last_guess}" else puts end last_guess = guess end end if success puts "Conguratulations!" else puts "I'm sorry, but you are not an esper." end end def read_number print "guess? " while true r = read_line if r.to_i? break end puts "#{r} is not a number, try again." print "guess? " end r.to_i end def ask_play_again print "play again [y/N]? " read_line.upcase.starts_with? "Y" end play_game while ask_play_again play_game end ===== Makefile ===== .PHONY: all all: game game: game.cr crystal build $< -o $@