古池や 蛙飛び込む c言語

ちまちま進捗ブログ。扱うのはc言語だけではない。

初めまして

プログラミングとか諸々の勉強の記録をつけようと思いました。

時間が経つにつれて記憶が曖昧になりがちなので、、

しかし正直仕様書的なものを何も読んでいない(探してもいない)ので全くわかりません、、

 

ともかく本日の進捗です。

毎週金曜にプログラミング同好会というサークルで活動しています。本日も活動してきました。(日付変わったので8日投稿)

先週までは1年生が先輩(プログラミングに関してのね)に教わりながらcで○×ゲームを作っており、今回、それについてスライドで感想や気づきを発表していきました。私もしました。

正直ほぼわからなかったので知人のを丸パクと言っても過言ではないのですが自慢げに載せます。記録なので。

 

#include <stdio.h>

 

void print_p(int p){

 

  if (p==0){  //1マスに表示するもの

    printf(“_ ”);

  }

  else if (p==1){

    printf(“O ”);

  }

  else if (p==2){

    printf(“X ”);

  }

  else

    printf(“? ”);

 

}

 

int check(int board[3][3]){  //勝利判定

  int a,b;

  int i;

 

  for(i=0;i<=2;i++){

    if (board[i][0] == board[i][1] && board[i][1] == board[i][2]){  //行の判定

      return board[i][0];

    }

    if (board[0][i] == board[1][i] && board[1][i] == board[2][i]){  //列の判定

      return board[0][i];

    }

  }

  if (board[0][0] == board[1][1] && board[1][1] == board[2][2]){  //ななめ判定

    return board[0][0];

  }

  if (board[0][2] == board[1][1] && board[1][1] == board[2][0]){  //ななめ判定

    return board[0][2];

  }

 

  return 0;

}

 

int main(void){

  int l,k;

  int j,p,c,x,y;

  int board[3][3] = {{0,0,0},{0,0,0},{0,0,0}};

 

  for(k=0;k<=8;k++){  //8回交代したら終了

 

    for(l=0;l<3;l++){  //盤面表示

      for(j=0;j<3;j++){

print_p(board[l][j]);

      }

      printf(“\n”);

    }

 

    printf(“x,y座標をスペースをあけて入力:”);

    scanf(“%d%d”, &x,&y);

 

    if(board[x][y]==0){  //入力した座標に置けるか判定

      board[x][y] = p;

    }else{

      printf(“置けません\n”);

      k=k-1;

      continue; 

    }

 

    c=check(board);  //cに勝者に相当する数字を代入

 

    if(c==1){

      printf(“O win \n”);

      break;

    }

    if(c==2){

      printf(“X win \n”);

      break;

    }

 

    if(p==2){  //プレイヤー交代

      p=1;

    }

    else{

      p=2;

    }

  }

 

  return 0;

}

 

といった感じです。いやーすごい(自画自賛ではない)。

forループで盤面表示がすごく簡単になったり、関数の中に配列を持ってくる時に[ ][ ]を書かなくてよいなどを学びました。

インデントちゃんとしてないせいでreturn 0;のあとに}を2つつけるなど意味不明なことをしてました。変なデバッグさせてごめん知人くん。

 

発表したあとにこれからの活動の班分けをしました。

私が声高に言っていたAIとかも候補にあがったのですが、メンバーが集まらず、結局Unity班とWeb系班が選択肢でした。興味なければ無所属でもいいらしいので無所属にしました。次回から何すればいいのか、、

あ、先輩にAOJを勧められたのでそれをすれば良い

 

で、帰宅後です。

帰宅後はPythonを勉強しようと思ってブクマしてたサイトを訪問し(ブクマしてから数週間後!おっそ!!) Pythonの環境を整えました。

Python, AtomをDLしました。

正直Cを大雑把にでも把握してからがいいのでは、、感が否めません。どうしよう

ほら嬉しそうに主張してくるんだもの(してない)