// EasyGameUsingArgs0.kt(args[0] を、使った、簡単なゲーム)
var cardsList: MutableList<String> = mutableListOf(
"ジョーカー", "♠1", "♠2", "♠3", "♠4", "♠5", "♠6", "♠7", "♠8", "♠9", "♠10", "♠11", "♠12", "♠13",
"💛1", "💛2", "💛3", "💛4", "💛5", "💛6", "💛7", "💛8", "💛9", "💛10", "💛11", "💛12", "💛13",
"♧1", "♧2", "♧3", "♧4", "♧5", "♧6", "♧7", "♧8", "♧9", "♧10", "♧11", "♧12", "♧13",
"♢1", "♢2", "♢3", "♢4", "♢5", "♢6", "♢7", "♢8", "♢9", "♢10", "♢11", "♢12", "♢13"
)
// カードの点数
var cardPower: Int = 0
// コンピュータのカード点数
var comCardPower = 0
fun main(args: Array<String>) {
println("仕切られた、カードの上から何枚目を引きますか?")
println("1~53 が、arg[0] に、設定されます.")
/*
val yourEnter: String? = readLine()
*/
try {
// IntelliJ: Run → Edit Configurations... → Program arguments に、設定する.
val yourEnter = args[0]
// あなたのタイプ に、エラーがある場合は、0点 とします.
var yourCardPower = 0
val number: Int =
when (yourEnter) {
"1" -> 1
"2" -> 2
"3" -> 3
"4" -> 4
"5" -> 5
"6" -> 6
"7" -> 7
"8" -> 8
"9" -> 9
"10" -> 10
"11" -> 11
"12" -> 12
"13" -> 13
"14" -> 14
"15" -> 15
"16" -> 16
"17" -> 17
"18" -> 18
"19" -> 19
"20" -> 20
"21" -> 21
"22" -> 22
"23" -> 23
"24" -> 24
"25" -> 25
"26" -> 26
"27" -> 27
"28" -> 28
"29" -> 29
"30" -> 30
"31" -> 31
"32" -> 32
"33" -> 33
"34" -> 34
"35" -> 35
"36" -> 36
"37" -> 37
"38" -> 38
"39" -> 39
"40" -> 40
"41" -> 41
"42" -> 42
"43" -> 43
"44" -> 44
"45" -> 45
"46" -> 46
"47" -> 47
"48" -> 48
"49" -> 49
"50" -> 50
"51" -> 51
"52" -> 52
"53" -> 53
else -> 99
}
if (number == 99) {
println("error")
} else {
val yourNum = chooseCard(number)
println("あなたが選んだのは、$yourNum")
yourCardPower = getCardPower(yourNum)
println("あなたのカード は、${yourCardPower}点 です")
}
val comCard = 1
val comNum = chooseCard(comCard)
println("コンピューターが選んだのは、$comNum")
comCardPower = getCardPower(comNum)
println("コンピューターのカード は、${comCardPower}点 です")
val out: String =
when {
yourCardPower > comCardPower -> "You won"
comCardPower > yourCardPower -> "Com won"
else -> "Draw"
}
println(out)
} catch (aE: ArrayIndexOutOfBoundsException) {
println("入力されていません")
}
}
fun chooseCard(num: Int): String {
// MutableList ⇒ List に、変更しないと、実行できない.
val shuffledCard: List<String> = cardsList.shuffled()
println(shuffledCard)
// インデックスナンバー は、-1 になる.(0スタート)
val selectedCard: String = shuffledCard[num - 1]
// カードを1枚減らすためには、MutableList に、変更する.
cardsList = shuffledCard.toMutableList()
cardsList.remove(selectedCard)
return selectedCard
}
fun getCardPower(whichCard: String): Int {
cardPower =
when (whichCard) {
"ジョーカー" -> 14
"♠1" -> 1
"♠2" -> 2
"♠3" -> 3
"♠4" -> 4
"♠5" -> 5
"♠6" -> 6
"♠7" -> 7
"♠8" -> 8
"♠9" -> 9
"♠10" -> 10
"♠11" -> 11
"♠12" -> 12
"♠13" -> 13
"💛1" -> 1
"💛2" -> 2
"💛3" -> 3
"💛4" -> 4
"💛5" -> 5
"💛6" -> 6
"💛7" -> 7
"💛8" -> 8
"💛9" -> 9
"💛10" -> 10
"💛11" -> 11
"💛12" -> 12
"💛13" -> 13
"♧1" -> 1
"♧2" -> 2
"♧3" -> 3
"♧4" -> 4
"♧5" -> 5
"♧6" -> 6
"♧7" -> 7
"♧8" -> 8
"♧9" -> 9
"♧10" -> 10
"♧11" -> 11
"♧12" -> 12
"♧13" -> 13
"♢1" -> 1
"♢2" -> 2
"♢3" -> 3
"♢4" -> 4
"♢5" -> 5
"♢6" -> 6
"♢7" -> 7
"♢8" -> 8
"♢9" -> 9
"♢10" -> 10
"♢11" -> 11
"♢12" -> 12
"♢13" -> 13
else -> 0
// 値を返す、when式 は、else が、必須なので.
}
return cardPower
}