ちょっと分からなくなったので
scafの代用としてfgetsを使うようにした>>538以降はリセットします

>>535
配列は戻したあと受け取られてないんですか?これ・・。
自分の頭の中では、例えば入力の関数の場合ですとmainから受け取った配列aをa[i][x]=1で中身を0から1に更新してreturn a[3][3]で更新された配列aをmain()に返して上書きしてるつもりなんですが・・
結果的にmainのa[i][j]も更新されてたのでてっきりそうなのかと
関数player()でa[i][j]=1とした時点でmain()のa[i][j]も同様というか同じものだからってことで更新されてたのかな・・。

char bはそれだと図面を表示できなくなりますね
b[][]の配列を図面として表示しているのでb[0][0]が左上、b[0][1]が真ん中上という風に・・。

fgetsとatoiはまだまだ分かりきれてないようです・・勉強します。