電子書籍の厳選無料作品が豊富!

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];


続きは追記にて

A 回答 (1件)

ソースより先にエラーの内容を書いて欲しいものだけど。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!