🎃

CodeWithChris Day 8: Day 8: Adding the App Logicの記憶

2024/06/08に公開

CodeWithChrisでSwiftを学んでいる

学んだことの記録を残していきます。

CodeWithChris の How to Make an App in 8 Days を進めています。
CodeWithChris - The Leader in iOS Foundations Training : CodeWithChris https://codewithchris.com/

画像をランダムに置き換える

カード表示

以下のコードで実現している。

var playerCard = "card7"
Image(playerCard)

ランダム生成

Dealボタンがタップされると以下のタスクが機能してランダムに置き換わる

func deal(){
    // Random the players card
    playerCard = "card" + String(Int.random(in: 2...14))
}

@Stateの利用

この変更だとsyntaxエラーとなった。
変数の定義の頭に@Stateを追加した。

@State var playerCard = "card7"

Viewの状態管理のために@Stateを利用するようだ。

SwiftUIでは、@Stateプロパティラッパーを使用して、ビューの状態を管理します。@Stateは、ビューの状態を表すプロパティに付与され、その値が変更されるたびにビューが自動的に更新されます。

if文の使い方

if, else if分岐

var a = 4
var b = 20
var c = 40

if a > b {
    // aがbより大きい
    print("Bang!")
}
else if b > c {
    // bがcより大きい
    print("Shoot!")
}
else {
    // 上記以外
    print("hello")
}

ゲームのスコアにif文を利用

ランダム整数のみの値を変数定義

画像ファイル名の数字部分をランダム整数を生成していた。カードの数字を比較するためにランダム整数部分を変数に置き換えた。

// Random the players card
var playerCardValue = Int.random(in: 2...14)
playerCard = "card" + String(playerCardValue)

if文を利用してカードの数を比較してスコアを変更する

playerCardValueとcpuCardValueを比較して、値が大きい方のスコアに1を加える

// Update the score
if playerCardValue > cpuCardValue {
    //Add 1 to player score
    playerScore += 1
}
else if cpuCardValue > playerCardValue {
    //Add 1 to cpu score
    cpuScore += 1
}

完成したもの

イメージ

操作動画

Day8を終えた感想

Swiftはプログラミング知識がない自分にも触れやすい。(まだ課題が簡単だからか)
SwiftUIもとっつきやすい。
コードを書いた部分の変更がすぐに反映されて確認できるのがわかりやすい。
(過去に触れていたHTMLとCSSのコーディングの感覚に似ている)

今後の展望

プログラミングと、SwiftUIでどうやって画面を作るかのインプットを継続していこう。

Discussion