- 締切済み
五目並べのプログラムを配列と関数を使ってつくりたいのですが、どなたか教
五目並べのプログラムを配列と関数を使ってつくりたいのですが、どなたか教えていただけますか? あと作る際に次の条件を入れてつくれますでしょうか? 1:斜めの判定を入れる 2:手札を切る部分を関数でつくる 3:3×3を禁止にするプログラムを入れる
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- titokani
- ベストアンサー率19% (341/1726)
回答No.1
別に普通に2次元配列でできるでしょう。 0..なし 1..黒 2..白 3..範囲外 という感じで。 >1:斜めの判定を入れる forでもwhileでも使えば出来ると思いますが。縦、横の判定と変わるところはないです。 >2:手札を切る部分を関数でつくる 五目並べに手札ってありましたっけ? >3:3×3を禁止にするプログラムを入れる 3が2つ以上あるかどうかで判定すればいいだけでは?
お礼
上のようにやればできるということは分かりましたが、どうもプログラムを作るのが下手なものでして、もしよければプログラムの方も教えていただけましたら幸いです。 下記のプログラムの中に出題された内容を入れて作るみたいなのですが知識が少なすぎてできません。 include<stdio.h> main (void){ printf("\x1b[2j"); int i, j, r, c, array[9][9]={ {0,1,2,3,4,5,6,7,8}, {1,0,0,0,0,0,0,0,0}, {2,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0}, {4,0,0,0,0,0,0,0,0}, {5,0,0,0,0,0,0,0,0}, {6,0,0,0,0,0,0,0,0}, {7,0,0,0,0,0,0,0,0}, {8,0,0,0,0,0,0,0,0}, }; for(i=0;i<9;i++){ for(j=0;j<9;j++){ printf("%d ",array[i][j]); } printf("\n"); } while(1){ printf("***USER1***\n"); printf("input row:"); scanf("%d",&r); printf("input column:"); scanf("%d",&c); array[r][c]=1; printf("\x1b[2j"); for(i=0;i<9;i++){ for(i=0;i<9;i++){ printf("%d ",array[i][j]); } printf("\n"); } for(i=1;i<9;i++){ for(j=1;j<5;j++){ if(array[i][j]==1 && array[i][j+1]==1 && array[i][j+2]==1 && array[i][j+3]==1 && array[i][j+4]==1){ printf("USER1 WIN!!\n"); } } } for(j=1;j<9;j++){ for(i=1;i<5;i++){ if(array[j][i]==1 && array[j][i+1]==1 && array[j][i+2]==1 && array[j][i+3]==1 && array[j][i+4]==1){ printf("USER1 Win!!\n"); } } } printf("***USER2***\n"); printf("input row:"); scanf("%d",&r); printf("input column:"); scanf("%d",&c); array[r][c]=1; printf("\x1b[2j"); for(i=0;i<9;i++){ for(i=0;i<9;i++){ if(i>0&&j>0&&array[i][j]==1{ printf("\x1b[33m"); } if(i>0&&j>0&&array[i][j]==2{ printf("\x1b[32m"); } printf("%d ",array[i][j]); printf("\x1b[0m"); } printf("\n"); } for(i=1;i<9;i++){ for(j=1;j<5;j++){ if(array[i][j]==2 && array[i][j+1]==2 && array[i][j+2]==2 && array[i][j+3]==2 && array[i][j+4]==2){ printf("USER2 WIN!!\n"); } } } for(j=1;j<9;j++){ for(i=1;i<5;i++){ if(array[j][i]==2 && array[j][i+1]==2 && array[j][i+2]==2 && array[j][i+3]==2 && array[j][i+4]==2){ printf("USER2 Win!!\n"); } } } } }