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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Java Java 南京錠 2 2023/02/04 11:46
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- JavaScript 最小二乗法 2 2023/01/01 20:57
- 工学 1つのタクトスイッチで複数の並列回路を閉じ、アースにつなげることができるスイッチはありますか。 2 2022/08/06 10:38
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Visual Basic(VBA) Excel のユーザー定義関数でソルバーが動作しない 1 2022/09/05 19:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
IF関数でEmpty値を設定する方法。
-
C#の質問
-
パソコンキーボードで時分秒を...
-
変数を動的に作るには?
-
動的配列が存在(要素が有る)か...
-
VBAで配列の計算
-
C言語 配列からランダムに素数...
-
VBでbyte配列型のインスタンス...
-
For文と配列
-
VBA 配列数式的に一括してR...
-
配列の要素数を超えた参照のコ...
-
VBで作った乱数を一度も重複さ...
-
等間隔にベクトルを作成。(MAL...
-
遅延バインディングを使用でき...
-
ラジオボタンのチェックをEnter...
-
C#での画像送信プログラム(ネ...
-
VB.net 引数で配列変数を渡す際...
-
int型配列の一括初期化
-
【MFC】GetCount()とGetSize()...
-
C# Splitと配列の複合方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
IF関数でEmpty値を設定する方法。
-
パソコンキーボードで時分秒を...
-
VBAで配列の計算
-
EXCEL VBA で、0から?1から?
-
変数を動的に作るには?
-
VB.net 引数で配列変数を渡す際...
-
動的配列が存在(要素が有る)か...
-
VBで作った乱数を一度も重複さ...
-
配列の要素数を超えた参照のコ...
-
複数のテキストボックスに同じ...
-
C言語 重複しない4ケタの乱数...
-
javaプログラムについて
-
C#の質問
-
Visual C++ でコントロールを...
-
遅延バインディングを使用でき...
-
Excel VBAで配列の途中から(X)M...
-
排列と配列の漢字の使い分けは
-
For文と配列
-
VBでbyte配列型のインスタンス...
-
C言語で3次元配列の課題をして...
おすすめ情報