【C言語】プログラミングでオセロ作ってみる!盤面表示まで【サンプルコード】

C/C++

こんにちは!

学校の課題でオセロゲームを作ることになったので、完成するまでの過程を記事に残そうと思います。

プログラミングはまだ勉強中で、コードがすごく汚いです。また、変な書き方をしてるところもあるかと思いますがご了承ください。

今回はこの画面を表示するまでを作ります。

下のコードで動くと思うのでコピペして使ってください。

#include <stdio.h>

#define L 9 //盤の広さ
#define EMPTY 0//何も置いてない場所を示す
#define BLACK 1
#define WHITE 2

int board[L][L];

void shokika() {//盤面リセット
	for (int i = 0; i < L; i++) {
		for (int j = 0; j < L; j++) {
			board[i][j] = EMPTY;
		}
	}
	board[4][4] = WHITE;
	board[4][5] = BLACK;
	board[5][4] = BLACK;
	board[5][5] = WHITE;
}

void display() {//盤面表示・更新
	for (int i = 0; i < L; i++) {
		for (int j = 0; j < L; j++) {
			switch (board[i][j]) {
			case WHITE:
				printf(" ●");
				break;
			case BLACK:
				printf(" 〇");
				break;
			default:
				if (i==0||j==0) {
					if (i == 0) {
						board[i][j]=j;
					}
					else {
						board[i][j] = i;
					}
					
					if (board[i][j] == board[0][0]) { 
						printf(" ", board[i][j]); 
					}
					else if (i == 0) {
						switch (j){
						case 1:
							printf(" 1 2 3 4 5 6 7 8");//横の数字を表示
							break;
						}
					}
					else{ 
						printf(" %d", board[i][j]); //縦の数字を表示
					}
					break;
				}
				else
				{
					printf(" *");
				}
			}
			if (j == L - 1) {//改行
				printf("\n");
			}
		}
	}
}

int main(int argc, char* argv[])
{
	shokika();
	display();

	return 0;
}

次回は対戦できるところまでを作ります。

コメント