ゲーム制作者の為のプログラミング講座 -17ページ目

プログラムの勉強のための問題集 - 問題5.この図を再現しなさい(2)(解答)

■解答■


#include <stdio.h>

int main(){

	for(int i=0; i<4; i++){
		for(int j=0; j<4; j++){
			if( (i + j) % 2 == 0 ){
				printf("■");
			}else{
				printf("□");
			}
		}
		printf("\n");
	}

	return 0;
}


■解説■
一行ずつ出力すれば、下記のようなプログラムになりますが、非常に冗長です。

#include 

int main(){
	for(int i=0; i<4; i++){
		if( i % 2 == 0 ){
			printf("■");
		}else{
			printf("□");
		}
	}
	printf("\n");
	for(int i=0; i<4; i++){
		if( i % 2 == 0 ){
			printf("□");
		}else{
			printf("■");
		}
	}
	printf("\n");
	for(int i=0; i<4; i++){
		if( i % 2 == 0 ){
			printf("■");
		}else{
			printf("□");
		}
	}
	printf("\n");
	for(int i=0; i<4; i++){
		if( i % 2 == 0 ){
			printf("□");
		}else{
			printf("■");
		}
	}
	printf("\n");
	return 0;
}

そこで、解答のプログラムでは、 i + j をした数値が偶数か、奇数かで判定しています。

わかりやすいように、 4 * 4 のブロックにおいて i + j がどのような数値になっているのかを表で表します。


┏━┳━┳━┳━┓
┃ 0┃ 1┃ 2┃ 3┃
┣━╋━╋━╋━┫
┃ 1┃ 2┃ 3┃ 4┃
┣━╋━╋━╋━┫
┃ 2┃ 3┃ 4┃ 5┃
┣━╋━╋━╋━┫
┃ 3┃ 4┃ 5┃ 6┃
┗━┻━┻━┻━┛


このページのトップはこちら です。