LoginSignup
0
0

More than 5 years have passed since last update.

オセロを作ろう(素人編、途中段階)

Posted at

この記事はSLP KBIT Advent Calendar 2016の16日目の記事です。

はじめに

今までの方々はなんかいろいろ技術的なことや作ってみたなど言っていますが正直

後輩ちゃん.png

なので、今活動でやっているオセロ作りについてはじめの段階だけですが書いてみようかと思います(素人なりに)

初期盤面を表示する

コマンドプロンプト上に作っていくわけですがオセロといえば、
オセロ2.jpg
こんな感じをまず想像しますよね

で、


void brd_output(int brd[8][8]) {

    int i, j;

    for(i = 0; i < 8; i++){
        for(j = 0; j < 8; j++){
            switch(brd[i][j]){
                case 0 : printf("・"); break;
                case 1 : printf("〇"); break;
                case -1 : printf("●"); break;
            }
        }
        printf("\n");
    }
}

int main(void) {
    int arr[8][8] = { {0,0,0,0,0,0,0,0},
                      {0,0,0,0,0,0,0,0},
                      {0,0,0,0,0,0,0,0},
                      {0,0,0,-1,1,0,0,0},
                      {0,0,0,1,-1,0,0,0},
                      {0,0,0,0,0,0,0,0},
                      {0,0,0,0,0,0,0,0},
                      {0,0,0,0,0,0,0,0}};

    brd_output(arr);

    return 0;

}

はいこんな感じです

これを出力してみよう!

オセロ3.png

よし!
まあこれじゃあ見づらいのでマスを追加して
オセロ1.png
おっ、結構いい感じ
だけど二次元配列のとこ長いなぁ

で、先輩に教えてもらいました

void init(void)
{
    int i, j;

    for(i = 0; i < SIZE; i++){
        for(j = 0; j < SIZE; j++){
            cell[i][j] = ;
        }
    }

    cell[3][3] = cell[4][4] = ;
    cell[3][4] = cell[4][3] = ;
}

おー、これは簡単(^^♪
初期盤面は完成かな

コマの出力

先に言っとくと今回はこれができたら終わります
あとはまだ教えてもらってないしそろそろ長さもいいだろうし
ではここではとりあえず枠内か枠外か(つまり打てるか打てないか)を出そうと思います


void input(void)
{
    int x, y;

    while(1)
    {
        printf("X > "); scanf("%d", &x); x--;
        printf("Y > "); scanf("%d", &y); y--;

        if (x >= 0 && x < 8 && y >= 0 && y < 8)
        {
            cell[y][x] = ; break;
        }
        printf("そこには置けません(ΦωΦ)\n");
    }
}

出力判定を置き、1~8のときは黒のコマを、それ以外は打ち直しさせるプログラムです(なお盤面内ならどこでもいいため白のコマのところにもry)

オセロ4.png

実行結果がこちら
ひっくり返る処理はまだ入れていませんのでただ黒のコマが出るだけですが、できました。
が、まだまだ先は長そうです…

最後に

まだまだできないことが多いですが、教えてもらって最後まで作り上げたいと思います。

ではでは

以上!!.jpg

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0