N-Ishikawaのプロフィール

@N-Ishikawa N-Ishikawa
ありがとう数8
質問数0
回答数14
ベストアンサー数
1
ベストアンサー率
25%
お礼率
0%

  • 登録日2009/09/18
  • オセロを作成 助言お願いします・・・

    C言語を初めてもうすぐ1ヶ月ぐらいたつんですけど今ある知識の そうまとめとしてオセロを作成しています。 同じオセロでもソースを2つ作ろうと考えています。 まずは関数を使わないで作るオセロ もうひとつは関数を使うオセロです。 関数を使わないほうのオセロで困っています。今1ターンごとに白い 石を置いたり黒い石を置いたりするばしょをつくっていて 変数を1週ごとに1ずつ増やしていき奇数なら黒い石偶数なら白い石 みたいにしようと考え次のようなソースコードを書きました。 ----------------------ソースコード-------------------------- #include<stdio.h> int bord[8][8]; int x,y; int i,j,l,a; int player; int main (void) { //ボードの初期化 for(i=0;i<8;i++){ for(j=0;j<8;j++){ bord[i][j]=0; } } bord[3][3]=1; bord[4][4]=1; bord[3][4]=2; bord[4][3]=2; //bordの表示 player=0; for(;;){ //何度も表示 printf("01234567\n"); for(i=0;i<8;i++){ //繰り返す(1) for(j=0;j<8;j++){ //繰り返す(2) if(bord[i][j] == 0){ //bord[i][j]は初期化により0なので printf("*"); } else if(bord[i][j] == 1){ printf("●"); } else{ printf("○"); } } printf("\n"); } if(player%2==0){ bord[i][j]=1; } else if(player%2==1){ bord[i][j]==0; } printf("y座標を入力してください。(縦軸)"); scanf_s("%d", &y); printf("x座標を入力してください。(横軸)"); scanf_s("%d", &x); //ひっくりかえす //エラー処理// if(bord[y][x]!=0) { printf("\n"); printf("置かれてるよ!\n"); } //ひっくり返す// if(x>=0 && x<8 && y>=0 && y<8 && bord[y][x]==0){ if(bord[y][x] == 0){ bord[y][x]=1; } if(bord[y][x]==1) { bord[y][x]=2; } } //エラー処理// if(x<0 || x>=8 || y<0 || y>=8 ) { printf("許容範囲外です。\n"); } player++; } //無限loop終了地点 return 0; } -------------------------ソース終了-------------------------- 汚いソースで申し訳ありません。これを実行すると いつでも白の石しか置けないのです・・・ なのでヒントでもいいのでどうすればいいのか教えてください!  あともしよければはさまれたら石の色を変える部分も教えてくださると助かります。 ちなみに偶数かどうかの判定の部分は 「if(player%2==0){ bord[i][j]=1; } else if(player%2==1){ bord[i][j]==0; } 」 というところです。 ※質問などありましたらどうぞいってください。 ご回答お待ちしております。

  • int型とchar型について

    C言語初心者です。 よろしくお願いします。 ◎1----------------------- #include<stdio.h> int main(void) { int ss[4]="789"; printf("%c\n",ss[0]); return 0; } --------------------------- ◎2----------------------- #include<stdio.h> int main(void) { int *p; p="789"; printf("%c\n",*p); return 0; } --------------------------- ◎1、◎2の2つのプログラムについて疑問があります。 ◎1の「int ss[4]="789";」と◎2の「int *p;」のintの部分は今まで、何の疑問も抱かず、「char」として入力していました。 そこでchar型は1バイトの整数、int型は4バイトの整数ということで容量が違うだけで、intとしても大丈夫だろうと思ったのですが、 ◎1では、「'initializing' : 'char [4]' から 'int [4]' に変換することはできません。」とエラーが出て、◎2では「'char [4]' から 'int *' に変換することはできません。」とエラーが出ます。 intは文字列は扱えないということなのでしょうか? 以上intだと実行できない理由がわかりません。 初歩的なことですいませんが、教えていただけると嬉しいです。

  • int型とchar型について

    C言語初心者です。 よろしくお願いします。 ◎1----------------------- #include<stdio.h> int main(void) { int ss[4]="789"; printf("%c\n",ss[0]); return 0; } --------------------------- ◎2----------------------- #include<stdio.h> int main(void) { int *p; p="789"; printf("%c\n",*p); return 0; } --------------------------- ◎1、◎2の2つのプログラムについて疑問があります。 ◎1の「int ss[4]="789";」と◎2の「int *p;」のintの部分は今まで、何の疑問も抱かず、「char」として入力していました。 そこでchar型は1バイトの整数、int型は4バイトの整数ということで容量が違うだけで、intとしても大丈夫だろうと思ったのですが、 ◎1では、「'initializing' : 'char [4]' から 'int [4]' に変換することはできません。」とエラーが出て、◎2では「'char [4]' から 'int *' に変換することはできません。」とエラーが出ます。 intは文字列は扱えないということなのでしょうか? 以上intだと実行できない理由がわかりません。 初歩的なことですいませんが、教えていただけると嬉しいです。

  • int型とchar型について

    C言語初心者です。 よろしくお願いします。 ◎1----------------------- #include<stdio.h> int main(void) { int ss[4]="789"; printf("%c\n",ss[0]); return 0; } --------------------------- ◎2----------------------- #include<stdio.h> int main(void) { int *p; p="789"; printf("%c\n",*p); return 0; } --------------------------- ◎1、◎2の2つのプログラムについて疑問があります。 ◎1の「int ss[4]="789";」と◎2の「int *p;」のintの部分は今まで、何の疑問も抱かず、「char」として入力していました。 そこでchar型は1バイトの整数、int型は4バイトの整数ということで容量が違うだけで、intとしても大丈夫だろうと思ったのですが、 ◎1では、「'initializing' : 'char [4]' から 'int [4]' に変換することはできません。」とエラーが出て、◎2では「'char [4]' から 'int *' に変換することはできません。」とエラーが出ます。 intは文字列は扱えないということなのでしょうか? 以上intだと実行できない理由がわかりません。 初歩的なことですいませんが、教えていただけると嬉しいです。

  • int型とchar型について

    C言語初心者です。 よろしくお願いします。 ◎1----------------------- #include<stdio.h> int main(void) { int ss[4]="789"; printf("%c\n",ss[0]); return 0; } --------------------------- ◎2----------------------- #include<stdio.h> int main(void) { int *p; p="789"; printf("%c\n",*p); return 0; } --------------------------- ◎1、◎2の2つのプログラムについて疑問があります。 ◎1の「int ss[4]="789";」と◎2の「int *p;」のintの部分は今まで、何の疑問も抱かず、「char」として入力していました。 そこでchar型は1バイトの整数、int型は4バイトの整数ということで容量が違うだけで、intとしても大丈夫だろうと思ったのですが、 ◎1では、「'initializing' : 'char [4]' から 'int [4]' に変換することはできません。」とエラーが出て、◎2では「'char [4]' から 'int *' に変換することはできません。」とエラーが出ます。 intは文字列は扱えないということなのでしょうか? 以上intだと実行できない理由がわかりません。 初歩的なことですいませんが、教えていただけると嬉しいです。