Swiftで行こう…第11回「トランプ3」(もちゃち)

2014-11-11

目次ページへ

ーーーMavericks Xcode6.1ーーー
無限ループを防ぐ方法はいろいろあると思いますが、僕が思いついたのは、カードの残り枚数を数えて、0になったらリセットするという方法と、使ったかどうかで、全部使っているかチェックして使っていたらリセットするという方法です。サンプルを示します。

M011-01

M011-02

カードの残り枚数を数える。
以下ソースコードです。

実行してみましょう。

M011-03

M011-04

変数の型を変更しました。こちらの方が良いと思います。
以下ソースコードです。

実行してみましょう。

M011-05

M011-06

全部使っているかチェックする。この場合は全部チェックするので、数を間違えて無限ループに入る心配はありません。
以下ソースコードです。

実行してみましょう。

M011-07

M011-08

カードの残り枚数を数えて表示するようにしました。
以下ソースコードです。

実行してみましょう。

M011-09

M011-10

この場合は、カードの残り枚数を数えていた方がすんなりいきます。
以下ソースコードです。

実行してみましょう。

M011-11

M011-12

M011-13

とりあえず♣️だけ、全13枚が配られるか分かるソースコードにしてみます。ラベルを並べるだけでも結構面倒です。
以下ソースコードです。

実行してみましょう。重複無く配られましたか?

さて問題です。今は、0〜12のランダムな数を発生させて、もし既に出ていたら、もう一度乱数を発生させるという方法を取っています。13枚なら大した事はないのですが、53枚だとある程度、不発が増えて来ます。最近のコンピュータは、演算速度が早いので問題にはなりませんが、少々気持ち悪いものです。一度出ているのでもう一度乱数を発生させるというのを止めさせる事は出来ないでしょうか?53枚だと枚数が多いし、♣️を13枚並べるようにした事で、何かソースコードに問題があった時に、発見しやすいという事で、今回の最後のソースコードを元にして下さい。

目次ページへ

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