見出し画像

32歳無職の独学によるプログラミング3週目Swift

更新が遅くなってきたな、ということに潮時感を序盤から感じつつも、少し更新いたします。凡人が独学をするということがいかに無益でどうしようもないのだということを悟りました。それもそうです。挫折し諦めれば、今まで得たものはほとんど無に帰すというわけですから、例えば数学という学問には公式があり、公式を教わるから凡人が難問を早く解ける、それを同じように人から学ぶということはつまり、最短で必要な知を得、また発揮できることが担保されているのです。独学との差はこういったところでしょう。ブルーオーシャンならいざしらず、レッドオーシャンな知識にとってはまさにハイリスクです。

学んだこと

画面の遷移
遷移先へのデータの受渡し

ゲームの進捗

スタート画面、プレイ画面(中断画面)、終了画面の4構成でストーリーボードを制作しました。
内容は割愛しますが、主に各画面での苦労などを綴ります。

(スタート画面)
なんといっても画面遷移とデータの受け渡しが本当に理解できませんでした。もともとストーリーボードを用いた画面遷移はできていたんですが、データを受渡しするとなると、コードで示さないといけません。
色んな方のブログを拝見したんですが、ほとんど試してもエラーあるいは動作せずで、まずコードのみで画面遷移することに没頭しました。いくら試してもできず、ここを一旦保留にし、データの受け渡しのみをさせることにしてみました。
こちらのコードです。

 // データを受け渡すためのコード

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "Identifierに名前をつける" {
let 好きな変数B = segue.destination as! 遷移先のViewController
好きな変数B.好きな変数A = 好きな変数A

※「Identifierに名前をつける」については、ストーリーボード上で、遷移元にあるボタンと遷移先をSegueで繋げて、繋がったアイコンのプロパティ(Identifier)に好きな名前をつける
※遷移先のViewControllerと遷移元でそれぞれ変数であるCountを宣言しておく
遷移元: var count = 0
遷移先:var count = Int()  など

(プレイ画面)
まだ全然未完成ですが、少なくともやりたいゲームの手続と基本的な動作は完了しました。問題は、対戦ゲームなのに対戦相手の思考や対戦順の明確な交代方法、また対戦人数によって変わっていく条件、あるいはプレイヤーレベル、ネット対戦などを想定した場合の実装方法です。むしろそれがこのゲームの目的といっても過言ではないので、一番重要な部分でつまづいています。

(終了画面・中断画面)
画面遷移され、送られたデータをもとに画面を表示するだけなので、レイアウトはおいおい考えるとして、いずれにせよ今まで学んだことが発揮されれば取るに足らない作業工程になると思いますので省きます。

課題

・各世代の機種で画面配置がバラバラになるのを修正する
・実機での動作を確認できてない
・ゲームなのに無音なのでフリー音源かあるいは制作する
・AI?対戦の際の思考をどうするか
・ネット対戦にする場合の実装方法と接続方法
・そもそも完成させることが出来るのか?

まとめ

今回はこんなところで以上です。やはり途中経過を報告するとなるとやはり頓挫することを想定してしまい、どうしても前身できない気がしてきます。。もしかしたら大きく状況が変化するまで独学更新は一旦ストップになるかも知れませんが少しずつ学びを増やしていきたいと思います。


いいなと思ったら応援しよう!