(ベータ版:いいねと思ったらtwitterに投稿してもらえると嬉しいです^^)
(おすすめの問題があれば、編集リクエストで追加していただけると助かります)
前回:https://qiita.com/simanezumi1989/items/01690ec883ae8135b3e7
これはあなた自身の物語です
ときは戦国、、、
ゲーム開発をするためにプログラミングを学び始めたしまづ君(永遠の3才)。
ところが彼はまだまだプログラミングのことがわかっていません。
のちに世界を救うこととなる「スタジオしまづ」設立のために彼にプログラミングを教えましょう!
演習問題を行う前の準備:困った人向け
演習問題18:配列の宣言方法がわかっている?
しまづくん:「10,20,30」の値を持つ配列を作ろうとしたんだけど、うまくいかなかったんんだ。何がおかしいかな?
しまづ君のコード
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers=10;int[]numbers=20;int[]numbers=30;voidStart(){}}
---解答ルパン---
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:配列の値取得がわかっている?
しまづくん:ゲーム再生をして、配列の値を全部コンソールに表示しようと思ったんだけど、エラーが出ちゃったよ^^;
何がおかしいかな?
しまづ君のコード
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);}}
---解答ルパン---
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番目の値を変更しようとしたけど、うまくいかなかったよ、、、どうやって変えるの?
しまづ君のコード
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30};voidStart(){numbers=1;Debug.Log(numbers[1]);}}
---解答ルパン---
usingUnityEngine;publicclassQuestion:MonoBehaviour{int[]numbers={10,20,30};voidStart(){numbers[1]=1;Debug.Log(numbers[1]);}}
しまづ君:ありがとう!配列の値変更方法がわかったよ^^
演習問題21:配列とfor文の組み合わせ?
しまづくん:配列の値を全部コンソールに表示しようとしたんだけど、疲れちゃった。何か簡単にする方法ない?for文使うといいって聞いたんだけど。。。グッスン(TへT)
しまづ君のコード
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}}
---解答ルパン---
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文は変えないコードって知ってる?
しまづ君のコード
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]);}}}
---解答ルパン---
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)
しまづ君のコード
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文とかでさくっとできないかな?}}
---解答ルパン---
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型ってのを作ろうとしたんだけど、うまくいかなくて、、、何をなおせばいいかな?
しまづ君のコード
usingUnityEngine;publicclassQuestion:MonoBehaviour{stringnameList={"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){}}
---解答ルパン---
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){}}
しまづ君:ありがとう!List型はusingも必要なのか!
演習問題25:List型の値取得と変更方法
しまづくん:List型の値の取得と変更をしようとしたんだけどうまくいかなく。どうすればいいかな?
しまづ君のコード
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){// コンソールに0番目を表示したい// 0番目の値を"スタジオしまづアカデミア"に変更したい// コンソールに0番目を表示したい}}
---解答ルパン---
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型と配列って同じようなものなら、値を全部表示するのも同じようにできるよね!でも長さの部分をどうするんだろ、、、教えて教えて^^
しまづ君のコード
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]);}}
---解答ルパン---
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型は値を追加できるって聞いたけど、どうやってやるの?"スタジオしまづアカデミア"を追加したい!
しまづ君のコード
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","嶋津恒彦","しまづ"};voidStart(){// nameListに"スタジオしまづアカデミア"を追加したい:Addってのを使う// 追加したあと、全ての値をログに表示して追加されたのを確認したい}}
---解答ルパン---
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型は値の削除ができるって聞いたけど、どうやってやるの?"アンチスタジオしまづ"をこの世から抹殺したい!!!!
しまづ君のコード
usingSystem.Collections.Generic;usingUnityEngine;publicclassQuestion:MonoBehaviour{List<string>nameList=newList<string>{"スタジオしまづ","アンチスタジオしまづ","しまづ"};voidStart(){// nameListの"アンチスタジオしまづ"を消したい}}
---解答ルパン---
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);
}
*/}}
しまづ君:ありがとう!これでアンチも消えたね!