今回から初心者を外してみました。

初心者には違いないけど、アレンジして自分のオリジナルに近づいています。だから、初心者は外してもいいかな?

 

カウンター部分はうまくいきました。

ちゃんと勝敗や引き分けがカウントされています。Good!!

下記の記事のおかげです。

追記 27日12:50

ForEachを使って、Buttonの3箇所を1箇所に縮めることができました。

 

コンパイル(最近ではビルドと言った方がいいのでしょうか)するときにswiftのような高級言語から機械語に変換するときに繰り返しの構文になるのか?同様のパターンが3回繰り返されるのかがわからなかったので、ForEachのような構文を使うのを躊躇ったのですが、問題なかったようです。

 

 

しかし、ボタンの部分を一旦バラしたので、グーの部分だけでも次のようになりました。

Button {

                    MyAnswerNumber = 1    //  グーである1を代入

                    YourAnswerNumber = Int.random(in: 1...3)

                    My = MyAnswerNumber

                    You = YourAnswerNumber

                    if (My == 1) && (You == 2) || (My == 2) && (You == 3) || (My == 3) && (You == 1) {

                        WinCount.increment()

                    }

                    if (My == 1) && (You == 3) || (My == 2) && (You == 1) || (My == 3) && (You == 2) {

                        LoseCount.increment()

                    }

                    if (My != 0) && (My == You) {

                        TieCount.increment()

                    }                } label: {

                    Text(Mojis[1])

                        .frame(width: 80, height: 80)

                        .font(.title)

                        .background(Color.pink)

                        .foregroundColor(Color.white)

                        .clipShape(Circle())

                }

 

これがチョキ、パーの部分を含めると3回同じようなコードが続きます。

再度、ForEachで1個にまとめられないかやってみます。

 

念のためにそれぞれのボタンを押した時のカウント数は正確に表示されています。

 

あとは勝ち、負け、引分けがカウントアップするときに、それぞれの効果音を鳴らしてみたいですね。