てくてくテック

気ままに開発のメモを書いていこうと思います。主にSwiftかと。

ゴキブリポーカーでSwiftの練習

とりあえず挨拶回です

はじめに

こんにちは、takenoteです。toosaaのマブダチです。

最近toosaaと一緒(?)にSwiftの勉強のためにボードゲームを作っています。基本的にProgramingは初心者、かつSwiftも初めて触っているため作成にあたっては何度もつまづいてしまっています。 このブログでは「せっかくなのでやったことをアウトプットしつつ振り返っていこう」ということを目的に、備忘録や自己レビューのために詰まってしまったポイントの「こんな風にしたら解決したよ」を共有させてただきます。

なお作成するボードゲームはオリジナルではなく、既存のものを模倣させていただきます。Swiftの基本文法ですらおぼつかないのに新ゲームなんて作っていたらしっちゃかめっちゃかになってしまうからです。

今回勉強のために作成してみるボードゲームはこちらです。

 ・誰でも理解できるシンプルなルール

 ・登場するアイテムがカードだけ(カウンターやボードなどがない)

 ・ちょうど最近みんなでやって盛り上がった

など、いくつかの点でプログラミングの練習題材としてもってこいだと考えてました。結構有名なゲームなので存在を知っている方も多いのではないでしょうか。 ブログの本題からずれてしまうためゲームの詳細な説明などはしませんが、記事が無事進んでいけば、ルールについて触れることもあるかと思います。 なのでゲームの全貌についてはじわじわ知っていただけるかと思います。すぐに知りたい人は友達を探してLet's Play

ブログの進め方的

平日の朝晩にちょっとずつ作業して、休日にそれをブログに起こせればいいなーと思っています。 なので1週間に一本の記事が目下目標かなというところです。

技術的な記載はほとんどリンクを貼って参考ページを元にしながら、 実際にこんな風に書いて見ました、をどんどん載せていければよいなーと思っています。

初回である今回は「こんな感じに進めていくよ!」を書いて終わりにします。

全体的な構成イメージとか

今回は技術的なことは全く触れずに、これからどんなアプリを作成していこうかの考えだけを書いていこうと思います。 UIはこんな風にしたいよ、とかこういうポリシーで作るよ、とかそんなところです。

全体のUIイメージ

ザクっと以下のような画面構成でアプリを作成しようと考えています。

f:id:takenote-y:20180212142254p:plain
ゲーム画面イメージ

この画面イメージは、アプリ作成にあたっては以下のような項目に気をつけたいと考えたからです。

・常に情報が画面に表示されていて、選択/決断の時にいちいち確認に画面を閉じたり戻ったりしない

・一つのスマートフォンにゲームを入れておけばみんなで楽しめる

一番目を達成するために、真ん中の部分に「他のPlayerとかの情報」を表示する土地を大きくとりました。 また二番目と達成するために「今今どういう状況で何が起こったか」を表示しておく「ゲーム状況のLog」表示用の土地を用意しました。

画面遷移について

ゲーム全体を通して「オープニング画面」⇨「初期設定画面」⇨「ゲーム画面」で終わりにしようと考えています。 またゲームプレイ中の画面の遷移は0にしたいなーと考えています。その心は「常に情報が画面に表示されていて、選択/決断の時にいちいち確認に画面を閉じたり戻ったりしない」に基づいています。

どうやって実現するのかは、またおいおい考えます。

アプリ設計について

設計指針については次回に回そうと思います。 というか考え方がいまいちわかっていません。 あまりこの辺に詳しくないため、使いまわせないクラス構造とか見たことないデザインパターンとかFat ViewControllerとか多発すると思います。

できるだけ考えたことは素直にアウトプットして、後日新しく学んだことは追記する形で自己レビューしていければいいなーと考えています。

以上、とりあえずこんな感じで作りたいな、という項目でした。

終わりに

今までは一人でこそっとアプリの勉強とかしていたので、こんな風に人に公開しながら進めたり 友人と一緒にやったりという体験にとてもワクワクしています。

賢いやり方とかいっぱい勉強できるでしょうか。 自分の成長のために何かためになることを得られればと思っています。

ついでにどなたか皆様のためにもなればこれ幸いです。

とりあえず継続を目標にやっていくのでどうぞよろしくお願いいたします。