コンテンツにスキップ

ライフゲーム課題

プログラムコード本体

コード本体

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);
}

[課題]左クリックでグライダー、右クリックでペンタデカスロンを呼びだそう