Swiftでじゃんけんゲームを作った

1,はじめに

昨日Perlでじゃんけんゲームを作成した。

そこで、先ほど、Swiftでじゃんけんゲームのコードを書た。

これにより、多少Swiftの知識を得ることができたと言える。

標準入力から入力された値を元に、じゃんけんをする。

そういう単純なゲームである。

もともとは、「e」が入力されたら終了する予定であったが、

Swiftを用いて、文字列型を数値型に変換するのがちょっと面倒くさそうだったので、手抜きをした。

2,じゃんけんゲーム

以下がSwiftで実装したじゃんけんゲームです。

標準入力から数字以外の文字を入力すると実行時エラーが発生します。

 /*
  * じゃんけんゲーム on Swift
  * 0 : ぐー
  * 1 : ちょき
  * 2 : ぱー
  *
  * 2019/09/08
  * jskny
 */


// コンピューターの手を返す
func CalcHandCPU() -> Int {
    return (Int.random(in: 0 ..< 3))
}


// 勝ち負け判定
// userHand : ユーザーの手 (0-2)
// cpuHand : 対戦相手の手 (0-2)
// retval
//  0 : draw
//  1 : user win
//  2 : user lose
func Judge(userHand: Int, cpuHand: Int) -> Int {
 // 神が作成した判定式を使用する。
 // https://staku.designbits.jp/check-janken/
 let retVal:Int = (userHand + cpuHand + 3) % 3
 return (retVal)
}


// 情報通知
func OutInfo() {
 print("Select your hand.")
 print(" 0 : gu-")
 print(" 1 : tyoki")
 print(" 2 : pa-")
 print("")
 print("if you want to end this game, you input 9.")

 // 改行なし、コンソールの入力っぽいのを出す
 print(" > ", terminator: "")
}


// 主処理
func Main() {
 var userInput:String = ""
 var cpuHand:Int = 0
 var tmp:Int = 0

 OutInfo()

 while (userInput != "9") {
  userInput = readLine()!
  cpuHand = CalcHandCPU()

  // ユーザーの入力値を文字列から数値型に変換する
  tmp = Judge(userHand:Int(userInput)!, cpuHand:cpuHand)

  print("Your hand : \(userInput)")
  print("CPU hand : \(cpuHand)")

  print("Your : ", terminator: "")
  switch tmp {
  case 0:
   print("draw.")
  case 1:
   print("win.")
  case 2:
   print("lose.")
  default:
   print("error.")
  }

  print("")
  OutInfo()
 }
 print("See you !")
}

// 主処理の呼び出し
Main() 
じゃんけんゲーム on Swift
じゃんけんゲーム

ドヤァ(・W・)

じゃんけんゲームはPerlだけでなく、Swiftでも動作するのです。

3,終わりに

Swiftをインタープリターとして使用しながら開発を行なったが、

スクリプト言語のようにスムーズに動作するかと思いきや、

ソースコードを渡してから起動するのに1秒程度のラグがあるなど、

スクリプト言語のように使用すると重く、また型の制約が大きかった。

この言語は、C言語と同様にコンパイルしてやるのがメインであって、

スクリプト言語のように扱う言語ではないのだろう。

4,参考文献

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA