画像(logo)

HOME/[C言語コンソール]ブロックパズルの作り方 目次/三日目 落下

広告

[C言語 コンソール ブロックパズルの作り方]
三日目 落下

広告

↓発売日:2018年09月22日↓

たった1日で基本が身に付く! C言語 超入門

新品価格
¥2,225から
(2018/10/8 23:10時点)

目次へ戻る

落下

今回はまっすぐ下にブロックを落下させたいと思います。

と言ってもただブロックの縦位置「block_y」の値を増やすだけなのでとても簡単です。

「field」を消去

そのままでは「field[23][18]」に前のデータが残ったままになってしまうので念のため毎回その内容を消去します。

void my_clear_field(){
	int i,j;

	for(i=0;i<FIELD_HEIGHT;i++){
		for(j=0;j<FIELD_WIDTH;j++){
			field[i][j] = 0;
		}
	}
}

特に難しい事はしておりません。

ただ単純に「field[23][18]」の要素を「0」に戻してあげているだけです。

それでは「block_y」を増加させてブロックを落下させます。

void my_fall_block(){
	block_y++;
}

こちらがブロック落下用の関数になります。

ただ「block_y++」しているだけなので特に説明はいらないですね。

それではこちらの関数をメインに設置します。

int main(){
	int stop = 0;

	my_init_var();

	while(1){
		my_clear_field();
		my_make_block();
		my_make_field();
		my_draw_field();
		my_fall_block();

		stop = _getch();

		if(block_y > 17)break;
	}
		
	return 0;
}

「while」文を使ってその中でブロック落下も含めて今までの作業を繰り返す事によりブロックパズルの動きを実現していきます。

特にスピード調整などはしていないので「_getch()」文で毎回停止させているのと、どこまでもいってしまわないように

if(block_y > 17)break;

と制限をかけております。

広告

「field」の内側だけ表示

前回はわかりやすいように「field[23][18]」の全体を表示しましたが今回から内側だけを描くようにします。

void my_draw_field(){
	int i,j;

	system("cls");

	for(i=0;i<FIELD_HEIGHT - 2;i++){
		for(j=2;j<FIELD_WIDTH - 2;j++){
			if(field[i][j] == 9)printf("■");
			else if(field[i][j] == 1)printf("□");
			else printf(" ");
		}
		printf("\n");
	}
}

配列を「for」文などで処理する時は配列の要素数を読み違えて配列の要素からはみ出る「バッファオーバーフロー」しないように注意が必要です。

画像(cb_3_1)

ブロック落下!

ここまでの中間ソースになります。

中間ソース2

それでは次回は左右の壁の当たり判定をつけたいと思います。

次回

四日目 当たり判定「壁」

□ページの先頭へ□

□目次へ戻る□

□HOME□

広告

↓発売日:2016年02月29日↓

12歳からはじめる ゼロからのC言語 ゲームプログラミング教室

新品価格
¥2,462から
(2018/10/8 23:25時点)

↓発売日:2018年06月22日↓

スッキリわかるC言語入門

新品価格
¥2,916から
(2018/10/8 23:15時点)

↓発売日:2018年03月09日↓

C言語本格入門 ~基礎知識からコンピュータの本質まで

新品価格
¥3,218から
(2018/10/8 23:16時点)

↓発売日:2017年06月14日↓

やさしいC 第5版 (「やさしい」シリーズ)

新品価格
¥2,700から
(2018/10/8 23:17時点)

↓発売日:2018年05月21日↓

作って身につく C言語入門

新品価格
¥2,462から
(2018/10/8 23:18時点)

↓発売日:2017年12月07日↓

新・標準プログラマーズライブラリ C言語 ポインタ完全制覇

新品価格
¥2,678から
(2018/10/8 23:19時点)

↓発売日:2017年02月08日↓

新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)

新品価格
¥2,700から
(2018/10/8 23:20時点)

↓発売日:2017年09月26日↓

かんたん C言語 [改訂2版] (プログラミングの教科書)

新品価格
¥2,916から
(2018/10/8 23:22時点)