![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
java
プログラミングで3×3の○×ゲームを作りたいのですが、エラーが出てしまいます。
どこに問題があるかわかりません。
教えていただけたら嬉しいです。
長くなってしまいますが、ご了承ください(コメント一部略)。
import java.io.*;
// マスにの中身が
// 空白: 0
// O : 1
// X : 2
class ox
{
// 勝敗の判定をするメソッド
// 勝敗が付いていなければ0 を
// O の勝ちなら1 を
// X の勝ちなら2 を
// 引き分けなら-1 を
// それぞれ返す。
static int judge( int board[][] ) {
int i, j, flag;
for( i = 0; i < 3; ++i ) {
flag = 1 | 2;
for( j = 0; j < 3; ++j ) flag &= board[j][i]; // <=> flag = flag & board[j][i]
if( flag != 0 ) return flag;
}
// 縦の列を調べる
for( i = 0; i < 3; ++i ) {
flag = 1 | 2;
for( j = 0; j < 3; ++j ) flag &= board[i][j];
if( flag != 0 ) return flag;
}
// 左上→右下のナナメ
flag = 1 | 2;
for( j = 0; j < 3; ++j ) flag &= board[j][j];
if( flag != 0 ) return flag;
// 右上→左下のナナメ
flag = 1 | 2;
for( j = 0; j < 3; ++j ) flag &= board[2-j][j];
if( flag != 0 ) return flag;
// まだ置けるマスがあるかの判定
flag = 1;
for( i = 0; i < 3; ++i ) {
for( j = 0; j < 3; ++j ) flag *= board[i][j];
}
// flag != 0 ってことは、置けるマスは無い→勝負が付いた
// どちらかが勝ったのなら、上でreturn しているはず
// ということで、引き分け
if( flag != 0 ) return -1;
// 何事もなければ、勝負続行
return 0;
}
// 番面の様子を表示するメソッド
static void show ( int board[][] )
{
String display = "";
String masu[] = { " ", "O", "X" };
int i;
display += " |1|2|3\n";
for( i = 0; i < 3; ++i ) {
display += "-+-+-+-\n";
display += (i+1) + "|" + masu[board[0][i]] + "|" + masu[board[1][i]] + "|" + masu[board[2}
System.out.println( display );
}
static int isreach( int three[], int turn )
{
int i, result;
// 各マスの値を2 乗して足し合わせる
result = 0;
for( i=0; i<3; ++i ) result += three[i]*three[i];
// リーチなら、下の条件を満たすはず
if( result == 2*turn*turn ) {
for( i=0; i<3; ++i ) if( three[i] == 0 ) break;
return i;
}
return -1;
}
static int rival( int board[][] )
{
int x,y,i,j,n;
int three[] = new int[3];
// x, y が未定である事を明示
for( i=0; i<3; ++i ) {
for( j=0; j<3; ++j ) three[j] = board[j][i];
続きは追記にて
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
- その他(プログラミング・Web制作) pythonのDjangoでHTML内で変数を利用したいです 3 2022/05/15 15:33
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Visual Basic(VBA) ExcelVBAでDo Until loopのネスト、IF文を使って一致する物と一致しない物としたい 11 2022/12/24 17:46
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- FX・外国為替取引 mql4のコンパイルエラー箇所の修正お願いします。 1 2023/03/15 16:14
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
java spring でエラーが出て困...
-
「配列定数は、イニシャライザ...
-
javaで次のような図の絵を描く...
-
JUnit4のアノテーションについて
-
javaで画像ファイルを連続に取...
-
JAVA EOFの検出 (条件文で「...
-
C#で実行時にメソッドの返り値...
-
メインが含まれていません
-
c# デリゲート関連の命名について
-
6桁の数字を重複なしでランダム...
-
Javaのファイル名チェックについて
-
Stringの文字列をString[]配列...
-
JTableにおけるTABイベント取得...
-
[JAVA]割り算のあまり・・・
-
JAVA エラー 式の開始が不正で...
-
Javaプログラムについての質問...
-
javaのfor文
-
javaのエラーの意味がわかりま...
-
java
-
Java エラーについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
Javaで電卓を作りたい
-
式の型は配列型で int に解決済...
-
javaでカレンダー作成
-
JAVA エラー 式の開始が不正で...
-
JAVAでCの関数ポインタのような...
-
java spring でエラーが出て困...
-
6桁の数字を重複なしでランダム...
-
c# デリゲート関連の命名について
-
C++からC#のdllを参照する際、...
-
メインが含まれていません
-
(Swing)JTextFieldを半角のみ入...
-
DataSet(DataTable)の使い方
-
三目並べ(Tick-Tack-Toe)をJav...
-
JUnit4のアノテーションについて
-
初心者ですが、今javaで簡単な...
-
classを使って座標軸を求めるコ...
-
javaでcsvファイル読込時の改行...
-
C#で実行時にメソッドの返り値...
-
Java 初心者 int型の取り扱い方
おすすめ情報