開発環境
- macOS Mojave - Apple (OS)
- Windows 10 Pro (OS)
- IntelliJ IDEA CE(Community Edition) (IDE(統合開発環境))
- Kotlin (プログラミング言語)
Head First Kotlin: A Brain-Friendly Guide (Dawn Griffiths(著)、David Griffiths(著)、O'Reilly Media)のChapter 3(functions - Getting Out of Main)、Pool Puzzle(85)の解答を求めてみる。
コード
fun main() {
val options = arrayOf("Rock", "Paper", "Scissors")
while (true) {
val gameChoice = getGameChoice(options)
val userChoice = getUserChoice(options)
printResult(userChoice, gameChoice)
}
}
// kotlinのrandomを利用
fun getGameChoice(optionsParam: Array<String>) =
optionsParam[kotlin.random.Random.nextInt(optionsParam.size)]
fun getUserChoice(options: Array<String>): String {
var isValidChoice = false
var userChoice = ""
while (!isValidChoice) {
print("Please enter one of the following:")
for (item in options) print(" $item")
println(".")
val userInput = readLine()
if (userInput != null && userInput in options) {
isValidChoice = true
userChoice = userInput
}
if (!isValidChoice) println("You must enter a valid hoice.")
}
return userChoice
}
fun printResult(userChoice: String, gameChoice: String) {
val result: String
if (userChoice == gameChoice) result = "Tie!"
else if ((userChoice == "Rock" && gameChoice == "Scissors") ||
(userChoice == "Paper" && gameChoice == "Rock") ||
(userChoice == "Scissors" && gameChoice == "Paper")) result = "You win!"
else result = "You lose!"
println("You chose $userChoice. I chose $gameChoice. $result")
}入出力結果
Please enter one of the following: Rock Paper Scissors. Kotlin You must enter a valid hoice. Please enter one of the following: Rock Paper Scissors. Rock You chose Rock. I chose Rock. Tie! Please enter one of the following: Rock Paper Scissors. Rock You chose Rock. I chose Scissors. You win! Please enter one of the following: Rock Paper Scissors. Paper You chose Paper. I chose Rock. You win! Please enter one of the following: Rock Paper Scissors. Paper You chose Paper. I chose Rock. You win! Please enter one of the following: Rock Paper Scissors. Scissors You chose Scissors. I chose Rock. You lose! Please enter one of the following: Rock Paper Scissors. Sissors You must enter a valid hoice. Please enter one of the following: Rock Paper Scissors. Process finished with exit code 130 (interrupted by signal 2: SIGINT)
0 コメント:
コメントを投稿