Swiftで行こう…第7回「ハイアンドローゲーム5」(もちゃち)

2014-10-19

目次ページへ

ーーーMavericks Xcode6.1ーーー
さて、今まで無視して来たのですが、TextFieldに何も入れずにButtonを押したり、
007-01
007-02
アルファベットを入れてButtonを押すと
007-03
007-04
エラーになります。

ここで、TextFieldに入っている文字列を無理矢理数値に変えているので、数値以外の文字や空白だとエラーになってしまいます。最後の”!”を取れば、その部分ではエラーにならなくなります。ここは、僕の勘違いだったのですが、そうすると今度は型が一致しないというエラーが出て実行出来なくなると思い込んでいたのですが、そんな事はなかったです。最初から”!”を取っていれば良かったです。
007-05
これを取って、何も入れないでボタンを押した時、又はアルファベットを入力してボタンを押した時に変数valには、nilという特別な値が入ります。そこでnilかどうか判断して、nilだったら「数値を入れて下さい」と表示するようにします。ここで等しい事を表すのに「==」を使いました。数学とは異なってしまいますがC言語の流れを汲むプログラミング言語では、「=」は変数に値を代入するという意味で使い、等しい事を表すのには「==」を使います。
007-06
以下、問題の部分のソースコードです。

しかし、これだと何も入れないでボタンを押した時、又はアルファベットを入力してボタンを押した時にも1回カウントされてしまい、あまり良くありません。数値以外を入れた時は、数値をいれるように促し、カウントしないのが良いと思います。そこでカウント部分を移します。
007-07
007-08
007-09
これで大分良くなったと思います。
以下問題の部分のソースコードです。

さて、ここで一旦、ハイアンドローゲームは終了します。やろうと思えば、3回ゲームをしてかかった回数の合計を出し、それの一番小さな値を保持しておき、最短レコードとして記録を残す。または、3回置きに嘘をついて(本当は小さいのに大きいですと出す。大きい時も同様。当たった時だけは当たりとする)、それが最初からなのか、2回目からなのか、3回目からなのかが判らないので、ゲームの難易度が上がるというゲームにする等、アイデア次第で色々出来ると思います。最初の記録保持は今の知識では難しいですが、3回置きに嘘をつくほうは、何とか出来るかも知れません(変数の扱いがまだ難しいかな)。
いずれにせよ、次回は電子サイコロ、そしてその次からトランプに入ろうと思います。まず電子サイコロですが、ハイアンドローゲームの知識があれば作れると思います。ボタンを押すとただ単に1〜6の数値を出すというものです。皆さん、作ってみて下さい。0からでないという部分がもしかしたら難しいかも知れません。そこは何とかアイデアを出してみて下さい。
ーーーMavericks Xcode6.0.1ーーー

さて、今まで無視して来たのですが、TextFieldに何も入れずにButtonを押したり、

Hi and Lo5-01

Hi and Lo5-02

アルファベットを入れてButtonを押すと

Hi and Lo5-03

Hi and Lo5-04

エラーになります。

var val = Input.text.toInt()!

ここで、TextFieldに入っている文字列を無理矢理数値に変えているので、数値以外の文字や空白だとエラーになってしまいます。最後の”!”を取れば、その部分ではエラーにならなくなります。ここは、僕の勘違いだったのですが、そうすると今度は型が一致しないというエラーが出て実行出来なくなると思い込んでいたのですが、そんな事はなかったです。最初から”!”を取っていれば良かったです。

Hi and Lo5-05

これを取って、何も入れないでボタンを押した時、又はアルファベットを入力してボタンを押した時に変数valには、nilという特別な値が入ります。そこでnilかどうか判断して、nilだったら「数値を入れて下さい」と表示するようにします。ここで等しい事を表すのに「==」を使いました。数学とは異なってしまいますがC言語の流れを汲むプログラミング言語では、「=」は変数に値を代入するという意味で使い、等しい事を表すのには「==」を使います。

Hi and Lo5-06

しかし、これだと何も入れないでボタンを押した時、又はアルファベットを入力してボタンを押した時にも1回カウントされてしまい、あまり良くありません。数値以外を入れた時は、数値をいれるように促し、カウントしないのが良いと思います。そこでカウント部分を移します。

Hi and Lo5-07

Hi and Lo5-08

Hi and Lo5-09

これで大分良くなったと思います。

Hi and Lo5-10
さて、ここで一旦、ハイアンドローゲームは終了します。やろうと思えば、3回ゲームをしてかかった回数の合計を出し、それの一番小さな値を保持しておき、最短レコードとして記録を残す。または、3回置きに嘘をついて(本当は小さいのに大きいですと出す。大きい時も同様。当たった時だけは当たりとする)、それが最初からなのか、2回目からなのか、3回目からなのかが判らないので、ゲームの難易度が上がるというゲームにする等、アイデア次第で色々出来ると思います。最初の記録保持は今の知識では難しいですが、3回置きに嘘をつくほうは、何とか出来るかも知れません(変数の扱いがまだ難しいかな)。
いずれにせよ、次回は電子サイコロ、そしてその次からトランプに入ろうと思います。まず電子サイコロですが、ハイアンドローゲームの知識があれば作れると思います。ボタンを押すとただ単に1〜6の数値を出すというものです。皆さん、作ってみて下さい。0からでないという部分がもしかしたら難しいかも知れません。そこは何とかアイデアを出してみて下さい。

目次ページへ

Since1991 © Shimayugu All Rights Reserved.
アップルおよびアップルのロゴは、米国および他の国々で登録されたApple Inc.の商標です。
湘南マッキントッシュユーザーズグループは、独立したユーザグループで、Apple Japan合同会社が権限を与えた団体、支援する団体、またはその他に承認する団体ではありません。