
A 回答 (1件)
- 最新から表示
- 回答順に表示
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");
}
}
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
IF関数でEmpty値を設定する方法。
-
EXCEL VBA で、0から?1から?
-
パソコンキーボードで時分秒を...
-
C言語 重複しない4ケタの乱数...
-
VB.net 引数で配列変数を渡す際...
-
VBAで配列の計算
-
Visual C++ でコントロールを...
-
VBでbyte配列型のインスタンス...
-
C#での画像送信プログラム(ネ...
-
VBA 配列で重複した単語が格納...
-
MFC CArray in CArray
-
int型配列の一括初期化
-
【MFC】GetCount()とGetSize()...
-
配列の要素数を超えた参照のコ...
-
System.err. printlnとSystem.o...
-
javaで質問です。 文字列2023/2...
-
C言語のポインターに関する警告
-
ループ処理の際、最後だけ","を...
-
オブジェクトの中のプロパティ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
動的配列が存在(要素が有る)か...
-
IF関数でEmpty値を設定する方法。
-
VBAで配列の計算
-
VB.net 引数で配列変数を渡す際...
-
C言語 重複しない4ケタの乱数...
-
EXCEL VBA で、0から?1から?
-
パソコンキーボードで時分秒を...
-
C#の質問
-
変数を動的に作るには?
-
配列の要素数を超えた参照のコ...
-
VBで作った乱数を一度も重複さ...
-
Excel VBAで配列の途中から(X)M...
-
Visual C++ でコントロールを...
-
VBでbyte配列型のインスタンス...
-
For文と配列
-
複数のテキストボックスに同じ...
-
五目並べのプログラムを配列と...
-
格闘ゲームのコマンド判定について
-
フォームコントロールのチェック
-
遅延バインディングを使用でき...
おすすめ情報