Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9543

C#&Unityの演習問題:しまづ君にプログラミングを教えよう!パート2【スタジオしまづアカデミア】

$
0
0

(ベータ版:いいねと思ったらtwitterに投稿してもらえると嬉しいです^^)
(おすすめの問題があれば、編集リクエストで追加していただけると助かります)

前回:https://qiita.com/simanezumi1989/items/01690ec883ae8135b3e7

これはあなた自身の物語です

ときは戦国、、、
ゲーム開発をするためにプログラミングを学び始めたしまづ君(永遠の3才)。
ところが彼はまだまだプログラミングのことがわかっていません。
のちに世界を救うこととなる「スタジオしまづ」設立のために彼にプログラミングを教えましょう!

演習問題を行う前の準備:困った人向け

スタジオしまづのYouTube
スタジオしまづの学習サイト

演習問題18:配列の宣言方法がわかっている?

しまづくん:「10,20,30」の値を持つ配列を作ろうとしたんだけど、うまくいかなかったんんだ。何がおかしいかな?

しまづ君のコード

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers=10;int[]numbers=20;int[]numbers=30;voidStart(){}}

---解答ルパン---

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30};// 以下でもOK//int[] numbers = new int[] { 10, 20, 30 };//int[] numbers = new int[3] { 10, 20, 30 };voidStart(){// 関数の中で決めてもOK以下でもOK// numbers = new int[3] { 10, 20, 30 };}}

しまづ君:ありがとう!配列の宣言方法がわかったよ^^

演習問題19:配列の値取得がわかっている?

しまづくん:ゲーム再生をして、配列の値を全部コンソールに表示しようと思ったんだけど、エラーが出ちゃったよ^^;
何がおかしいかな?
スクリーンショット 2020-03-02 15.37.38.png

しまづ君のコード

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30};voidStart(){intx=numbers[1];Debug.Log(x);inty=numbers[2];Debug.Log(y);intz=numbers[3];Debug.Log(z);}}

---解答ルパン---

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30};voidStart(){intx=numbers[0];Debug.Log(x);inty=numbers[1];Debug.Log(y);intz=numbers[2];Debug.Log(z);//以下でもOK/*
        Debug.Log(numbers[0]);
        Debug.Log(numbers[1]);
        Debug.Log(numbers[2]);
        */}}

しまづ君:ありがとう!配列の値取得方法がわかったよ^^

演習問題20:配列の値変更方法がわかっている?

しまづくん:配列の1番目の値を変更しようとしたけど、うまくいかなかったよ、、、どうやって変えるの?

しまづ君のコード

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30};voidStart(){numbers=1;Debug.Log(numbers[1]);}}

---解答ルパン---

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30};voidStart(){numbers[1]=1;Debug.Log(numbers[1]);}}

しまづ君:ありがとう!配列の値変更方法がわかったよ^^

演習問題21:配列とfor文の組み合わせ?

しまづくん:配列の値を全部コンソールに表示しようとしたんだけど、疲れちゃった。何か簡単にする方法ない?for文使うといいって聞いたんだけど。。。グッスン(TへT)

しまづ君のコード

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30,1,2,33,-33,44,556,54345,3434};voidStart(){Debug.Log(numbers[0]);Debug.Log(numbers[1]);Debug.Log(numbers[2]);Debug.Log(numbers[3]);// 疲れちゃったw}}

---解答ルパン---

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30,1,2,33,-33,44,556,54345,3434};voidStart(){for(inti=0;i<11;i++){Debug.Log(numbers[i]);}//以下でも同じ:nはnumbersに入っている値:これだとiとかいらないからすっきりする/*
        foreach (int n in numbers)
        {
            Debug.Log(n);
        }*/}}

しまづ君:ありがとう!配列とfor文の組み合わせがわかったよ!

演習問題22:配列とfor文の組み合わせ

しまづくん:さっきみたいに配列の値を全部コンソールに表示しようとしたんだけど、配列を変えたら全部表示されなくなっちゃった。配列を変えてもfor文は変えないコードって知ってる?

しまづ君のコード

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30,1,2,33,-33,44,556,54345,3434,-1,222,333};voidStart(){// 3434までしか表示されないfor(inti=0;i<11;i++){Debug.Log(numbers[i]);}}}

---解答ルパン---

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30,1,2,33,-33,44,556,54345,3434,-1,222,333};voidStart(){// 3434までしか表示されないfor(inti=0;i<numbers.Length;i++){Debug.Log(numbers[i]);}}}

しまづ君:ありがとう!配列とfor文の組み合わせがわかったよ!

演習問題23:配列とfor文の組み合わせ

しまづくん:配列の値の合計を調べようと思ったんだけど、またどうやって全部足せばいいのか忘れちゃって^^;
for文の使い方もう一度教えてください(TへT)

しまづ君のコード

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{intsum=0;int[]numbers={10,20,30,1,2,33,-33,44,556,54345,3434,-1,222,333};voidStart(){sum+=numbers[0];sum+=numbers[1];sum+=numbers[2];// 途中でおわっちゃった、、、for文とかでさくっとできないかな?}}

---解答ルパン---

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{intsum=0;int[]numbers={10,20,30,1,2,33,-33,44,556,54345,3434,-1,222,333};voidStart(){for(inti=0;i<numbers.Length;i++){sum+=numbers[i];}Debug.Log(sum);}}

しまづ君:ありがとう!配列とfor文の組み合わせがわかったよ!

演習問題24:List型の宣言方法

しまづくん:List型ってのを作ろうとしたんだけど、うまくいかなくて、、、何をなおせばいいかな?

しまづ君のコード

Question.cs
usingUnityEngine;publicclassQuestion:MonoBehaviour{stringnameList={"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){}}

---解答ルパン---

Question.cs
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){}}

しまづ君:ありがとう!List型はusingも必要なのか!

演習問題25:List型の値取得と変更方法

しまづくん:List型の値の取得と変更をしようとしたんだけどうまくいかなく。どうすればいいかな?

しまづ君のコード

Question.cs
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){// コンソールに0番目を表示したい// 0番目の値を"スタジオしまづアカデミア"に変更したい// コンソールに0番目を表示したい}}

---解答ルパン---

Question.cs
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){// コンソールに0番目を表示したいstringfirstName=nameList[0];Debug.Log(firstName);Debug.Log(nameList[0]);// これでもOK// 0番目の値を"スタジオしまづアカデミア"に変更したいnameList[0]="スタジオしまづアカデミア";// コンソールに0番目を表示したいDebug.Log(nameList[0]);}}

しまづ君:ありがとう!リスト型って配列と同じようなものなんだね^^

演習問題26:List型とfor文

しまづくん:List型と配列って同じようなものなら、値を全部表示するのも同じようにできるよね!でも長さの部分をどうするんだろ、、、教えて教えて^^

しまづ君のコード

Question.cs
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){// for文を使って以下と同じログを表示したいDebug.Log(nameList[0]);Debug.Log(nameList[1]);Debug.Log(nameList[2]);}}

---解答ルパン---

Question.cs
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){for(inti=0;i<nameList.Count;i++){Debug.Log(nameList[i]);}}}

しまづ君:ありがとう!リスト型はCountを使うのか!^^

演習問題27:List型の値の追加

しまづくん:List型は値を追加できるって聞いたけど、どうやってやるの?"スタジオしまづアカデミア"を追加したい!

しまづ君のコード

Question.cs
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){// nameListに"スタジオしまづアカデミア"を追加したい:Addってのを使う// 追加したあと、全ての値をログに表示して追加されたのを確認したい}}

---解答ルパン---

Question.cs
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){// nameListに"スタジオしまづアカデミア"を追加したい:Addってのを使うnameList.Add("スタジオしまづアカデミア");// 追加したあと、全ての値をログに表示して追加されたのを確認したいfor(inti=0;i<nameList.Count;i++){Debug.Log(nameList[i]);}// 以下でもOK/*
        foreach (string name in nameList)
        {
            Debug.Log(name);
        }
        */}}

しまづ君:ありがとう!リスト型はAddって便利だね^^

演習問題28:List型の値の削除

しまづくん:List型は値の削除ができるって聞いたけど、どうやってやるの?"アンチスタジオしまづ"をこの世から抹殺したい!!!!

しまづ君のコード

Question.cs
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","アンチスタジオしまづ","しまづ"};voidStart(){// nameListの"アンチスタジオしまづ"を消したい}}

---解答ルパン---

Question.cs
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","アンチスタジオしまづ","しまづ"};voidStart(){// nameListの"アンチスタジオしまづ"を消したいnameList.Remove("アンチスタジオしまづ");// 番号指定での削除もできるよ//nameList.RemoveAt(1);for(inti=0;i<nameList.Count;i++){Debug.Log(nameList[i]);}// 以下でもOK/*
        foreach (string name in nameList)
        {
            Debug.Log(name);
        }
        */}}

しまづ君:ありがとう!これでアンチも消えたね!

つづき

  • これから作ります:いいねと思ったらtwitterでシェアお願いします^^
  • スタジオしまづのYouTube:チャンネル登録お願いします!
  • スタジオしまづの学習サイト:近日リリース(特典:動画教材見放題+オンラインサロンの加入)

Viewing all articles
Browse latest Browse all 9543

Trending Articles