ライフゲーム課題
プログラムコード本体
1.基本編
左上に生命体を1つ作ろう!
// Pragraming Start! map[0][0] = 1; // Programing End右上に生命体を1つ作ろう!
// Pragraming Start! map[59][0] = 1; // Programing End左下に生命体を1つ作ろう!
// Pragraming Start! map[0][39] = 1; // Programing End[課題]右下に生命体を1つ作ろう!
さぁ、自分で考えてやってみよう!
2.模様を作ろう
横に3つ作ろう!
// Pragraming Start! map[19][20] = 1; map[20][20] = 1; map[21][20] = 1; // Programing End縦にも3つ作って十字にしよう!
// Pragraming Start! map[19][20] = 1; map[20][20] = 1; map[21][20] = 1; map[20][19] = 1; map[20][20] = 1; map[20][21] = 1; // Programing End実行すると、花火のような模様になるよ!
[課題]ペンタデカスロンを作ろう!
かっこいい模様ができるペンタデカスロンを作ろう!場所はどこでもいいよ!
作り方はwikipediaを見て、自分で作ってみよう!
https://ja.wikipedia.org/wiki/ペンタデカスロン
3.変数を使おう
グライダーを作ろう!
map[11][10] = 1; map[10][11] = 1; map[10][12] = 1; map[11][12] = 1; map[12][12] = 1;変数を使ってグライダーを置き換えてみよう!
int yoko = 10; int tate = 10; map[yoko+1][tate] = 1; map[yoko][tate+1] = 1; map[yoko][tate+2] = 1; map[yoko+1][tate+2] = 1; map[yoko+2][tate+2] = 1;[課題]グライダーの位置を右上にしてみよう!
ヒントは変数を使うことだよ!
4.繰り返し処理
横に10個並べてみよう!
繰り返し処理を使おうね!
// Pragraming Start! for(int yoko =0; yoko <= 10; yoko ++ ){ map[yoko][20] = 1; } // Programing End横20、縦20の位置から、横に10個並べよう!
for(int yoko =0; yoko <= 10; yoko ++ ){ map[yoko+20][20] = 1; }横25、縦15の位置から、縦に10個並べて十字にしよう!
// Pragraming Start! for(int yoko =0; yoko <= 10; yoko ++ ){ map[yoko+20][20] = 1; } for(int tate =0; tate <= 10; tate ++ ){ map[25][tate + 15] = 1; } // Programing End[課題]10x10の大きな四角形を作ろう!
ヒントは、繰り返し処理の中に、繰り返し処理をいれることだよ!
乱数と条件分岐
乱数を使って、まばらな模様を作ろう!
// Pragraming Start! for(int yoko =0; yoko <= 59; yoko ++ ){ for(int tate =0; tate <= 39; tate ++ ){ if(random(10) > 9){ map[yoko][tate] = 1; } } } // Programing End[課題]もうちょっとぎっしり詰まった模様を作ろう!
さっきのコードを少し修正するだけだよ!
5.関数
グライダーテンプレートを作ろう!
まずは関数ってなに?というところを理解してもらおう! 簡単に言うと、テンプレートさ! これで、glider()、と書いてあげればグライダーテンプレートが呼び出されるって仕組みさ!
void setup() { size(600, 400); // Pragraming Start! // グライダーテンプレートを呼び出し glider(); // Programing End}// グライダーテンプレートを定義void glider(){ int yoko = 10; int tate = 10; map[yoko+1][tate] = 1; map[yoko][tate+1] = 1; map[yoko][tate+2] = 1; map[yoko+1][tate+2] = 1; map[yoko+2][tate+2] = 1;}グライダーを好きなところに呼び出せるようにしよう!
さっきのテンプレートは、横10、縦10に固定されてしまっているから、好きな位置に呼び出せるようにしよう!
void setup() { size(600, 400); // Pragraming Start! glider(30, 30); // Programing End}void glider(int yoko, int tate){ map[yoko+1][tate] = 1; map[yoko][tate+1] = 1; map[yoko][tate+2] = 1; map[yoko+1][tate+2] = 1; map[yoko+2][tate+2] = 1;}グライダーをたくさん呼び出そう!
void setup() { size(600, 400); // Pragraming Start! glider(30, 30); glider(10, 20); glider(40, 10); // Programing End}[課題]ペンタデカスロンテンプレートも作ろう!
6.クリックイベント
クリックしたところに生命体を作ろう
clickGridという関数があらかじめ用意されているから、中身を書き換えよう!
void clickGrid(int yoko, int tate){ // Prgraming Start! map[yoko][tate] = 1;}クリックしたところにグライダーを呼び出そう
関数(テンプレート)は作ってあるよね?
void clickGrid(int yoko, int tate){ // Prgraming Start! glider(yoko, tate);}