ユーザ用ツール

サイト用ツール


youtube:guess-number-cr

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
youtube:guess-number-cr [2024/02/28 18:26] – 削除 - 外部編集 (不明な日付) 127.0.0.1youtube:guess-number-cr [2024/02/29 11:50] (現在) freemikan
行 1: 行 1:
 +====== 数当てゲーム (CLI) ======
 +
 +===== game.cr =====
 +
 +
 +<file crystal>
 +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
 +</file>
 +
 +===== Makefile =====
 +
 +
 +<file makefile>
 +.PHONY: all
 +all: game
 +
 +game: game.cr
 + crystal build $< -o $@
 +</file>
  

特に明示されていない限り、本Wikiの内容は次のライセンスに従います: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki