Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Unity/CSharp 2

254 views

Published on

長崎大学マルチメディア研究会「Unity/C#講座」のスライドです。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

Unity/CSharp 2

  1. 1. Unity(C#)講座2 Version1.0 (2019.06.17)
  2. 2. 自己紹介 名前: Boltz 所属: 長崎経済大学3年 好きな性: 多態性(Polymorphism) UnityC#講座のスライドを クラウドとブロックチェーンとIoTで インタラクティブに生成する超高性能AI たまにスライド生成に失敗する, 助けてくれ!!!
  3. 3. 目次 •C#でじゃんけん(課題の補足) •C#でEじゃんけん •Unity玉転がし
  4. 4. 到達地点と概要
  5. 5. 前提条件 •環境: Unity 2018.4.0.f1 • Unityはバージョンで挙動がかなり異なることも • 間違えずにダウンロードしてください • また、必須ではないがUnityHub経由の利用が便利 •エディタ: VisualStudio2017 • VimでC#を書いている人は我慢してくれ • 2019とかでも大して動作は変わらない(はず)
  6. 6. 前提条件 •C言語について理解がある • 構造化プログラミングの説明は速を上げます • C言語との差分を埋める説明の仕方をします •基本的な情報科学の知識がある • 基本情報技術者が体系的に学べていい感じ • ネットワーク, データベース(SQL), アルゴリズム, データ構造, ハードウェアの分野(大雑把)
  7. 7. 到達地点 •自分の思い描くゲームを作れるように なる • そのために、必要な処理を他から持ってくることが できる or 自分で実装できるようになる) • たとえ他から持ってきた処理でも、ある程度までは 中身が解読できる
  8. 8. 到達地点 •Unityチュートリアルをやっていく • ただしコードの写経はしないように • Unityの操作方法を学ぶためだけの教材ではない ので!!! •その前にC#のコードの意味を学習す る
  9. 9. C#でじゃんけん
  10. 10. 課題で詰まっていた点 • 予期しない値の入力 • アルゴリズムの構築
  11. 11. 予期しない値の入力 • 対処の方法を2種類くらい紹介 • 例外のthrow, try-catch-finally • TryParse関数(おすすめ)
  12. 12. try-catch-finally • int.Parseにtryしてみる • だめならFormatExceptionや OverflowExceptionがthrow • それらのExceptionをcatchして、処理を継 続させないようにフラグを落とす • myHandが-1かで判定もあり • 今回の場合面倒なのでおすすめしない!
  13. 13. try-catch-finally • 実装例(オーバーフローとフォーマット2つ対応) throw;
  14. 14. int.TryParse関数 • int.TryParse(変換対象, out 出力変数); • 戻り値がbool型関数 • 変換できたらtrue • 変換できなかったらfalse • これをif文に組み込んだらよさそう • さらにintの範囲検査も行う
  15. 15. 予期しない値の入力 • 紹介した2つ以外にも方法はある • 業務用システムなどではtry-catch-finallyの 方が適することも... • 完全にスタンドアロンで、予想しない入力 が起こりえない場合は、例外はあまり考え ないでいい気がする(ものにもよる)
  16. 16. アルゴリズムの構築 • 可読性が高いもの • 行数が短縮できるもの
  17. 17. 可読性が高いもの • 手1つ1つに対して判定を書いている • 判定メッセージを出す用に関数を組むとか やりようはある
  18. 18. 行数が短縮できるもの • 剰余を使って加工する • 勝ちパターン、負けパターン、 あいこパターンが同じ数に! • 不思議ですね!!! https://qiita.com/mpyw/items/3ffaac0f1b4a7713c869
  19. 19. 行数が短縮できるもの • C#で実装してみた
  20. 20. C#でEじゃんけん
  21. 21. 経緯 • なんかすごいプログラムを作ってきた人が いた • なので追加課題を出した
  22. 22. 追加課題: Eじゃんけん •グー・チョキ・パー・皇帝・奴隷の5 種類で判定してみよう •皇帝 基本勝つ 但し 奴隷 だけには負け る •奴隷 基本負ける 但し 皇帝 だけには勝 てる
  23. 23. 追加課題: Eじゃんけん •奴隷は3, 皇帝は4にでもしておこう • 最初に5者の関係を確認してみる
  24. 24. Eじゃんけん(特殊カードなし) グー チョキパー
  25. 25. Eじゃんけん(特殊カードあり) 平民 (グチパ) 奴隷皇帝
  26. 26. 追加課題: Eじゃんけん • もし場に出た手がグチパ(平民)のみ • そのまま今までの判定をすればいい • もし場に出た手に奴隷や皇帝があった場合 • Eじゃんけんスライドの通りに判定を行う • 結局じゃんけんとあまり力関係は変わってない
  27. 27. 追加課題: Eじゃんけん •実装(Replaceはローカル関数で定義)
  28. 28. 今回の課題 • プログラムを毎日書こう! • どんどんググろう • 書けば書くほど・ググればググるほどスキ ルが高まる(例外処理しかり) • ググるためのキーワードを取り入れる言語 学習・読書・講座だと思ってください
  29. 29. それではUnityをやる •https://unity3d.com/jp/learn/tutorials/proj ects/hajiuni-jp
  30. 30. 参考文献 じゃんけんアルゴリズムをちょっと応用 ( https://qiita.com/mpyw/items/3ffaac0f1b4a7713c869 ) , 2019.06.17閲覧

×