#include "DxLib.h"

const int WIDTH = 960, HEIGHT = 640; // ウィンドウの幅と高さのピクセル数

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {
    // ＤＸライブラリを使用する準備
    SetWindowText("ゲーム開発のアルゴリズム"); // ウィンドウのタイトル
    SetGraphMode(WIDTH, HEIGHT, 32); // ウィンドウの大きさとカラービット数の指定
    ChangeWindowMode(TRUE); // ウィンドウモードで起動
    if (DxLib_Init() == -1) return -1; // ライブラリ初期化 エラーが起きたら終了
    ClearDrawScreen(); // 画面をクリアする

    const int CSIZE = 64; // 1マスの大きさ（ピクセル数）
    const int ROW = 10; // 縦に並ぶマスの数
    const int COL = 15; // 横に並ぶマスの数
    char maze[ROW][COL] = { // 迷路のデータ 0が通路、1が壁
        {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
        {1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1},
        {1, 0, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 0, 1},
        {1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1},
        {1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1},
        {1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1},
        {1, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
        {1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1},
        {1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1},
        {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
    };

    const int WHITE = GetColor(255, 255, 255); // 白い色の値を定義
    const int BLACK = GetColor(0, 0, 0);       // 黒い色の値を定義

    for (int y = 0; y < ROW; y++) { // 外側のfor
        for (int x = 0; x < COL; x++) { // 内側のfor
            int cx = x * CSIZE; // ウィンドウ上のx座標
            int cy = y * CSIZE; // ウィンドウ上のy座標
            if (maze[y][x] == 0) DrawBox(cx, cy, cx + CSIZE, cy + CSIZE, WHITE, TRUE); // 通路を塗る
            if (maze[y][x] == 1) DrawBox(cx, cy, cx + CSIZE, cy + CSIZE, BLACK, TRUE); // 壁を塗る
        }
    }

    WaitKey(); // キーが押されるまで待つ
    DxLib_End(); // ＤＸライブラリ使用の終了処理
    return 0; // ソフトの終了
}