C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: java TicTocToe 二次元配列について


(過去ログ 114 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■67205 / inTopicNo.1)  java TicTocToe 二次元配列について
  
□投稿者/ くろ (1回)-(2013/07/16(Tue) 05:26:09)

分類:[Java] 

課題なんですがよろしくお願いします。


位置の指定は0 2のように、整数値2つをスペースで区切って入力するものとし、1つめの値が行、2つめの値が列を表すものとする。
 また、実行例のように座標の指定が終わると盤面が描画され、すべてのマスが埋まった(9手目)ときにプログラムは停止するものとする(それ以外の終了判定は行わない)。char型配列dataを引数として勝敗の判定を行うメソッド isWinning(char[][] d) を作成し、勝敗のメッセージを表示してプログラムが終了するようにTicTakToe.javaを改良しなさい。
なお、このメソッドは縦・横・斜めのいずれか三目が同じ記号(OかX)で揃っていればtrueを、そうでなければfalseを返すものとする。

※注1 printBoard()メソッドは画面に盤面を描くためのメソッドである。
   このプログラムでは
      printBoard(board);
   とすると、二次元配列board[][]にあるデータを元に盤面を描く。
※注2 先行、後攻共に人間が入力するものとし、コンピュータの思考ルーチン(対戦機能)を実装する必要はない。

実行例(の一部)
O|X|O
-+-+-
O|X|
-+-+-
X| |

2 1 ←先行(O)が2行1列を指定

O|X|O
-+-+-
O|X|
-+-+-
X|O|

・プログラム TicTacToe.java
import java.util.Scanner;

class TicTacToe {
public static void printBoard(char[][] data) {
int i, j;
i = j = 0;

/* 通常のfor文で書いた方が綺麗だけれど、拡張for文の動作確認のために */
for (char[] col : data) {
for (char row :col) {
System.out.print(row);
if (j != col.length-1) {
System.out.print('|');
} else {
System.out.println();
}
j++;
}
i++;
j = 0;
if (i != col.length) {
System.out.println("--+--+--");
}
}
}
public static void main(String[] args) {
char board[][] = {{' ',' ', ' '}, {' ',' ', ' '}, {' ',' ', ' '}};

    //ここになにを書けばいいのか

}
}
}

二次元配列については理解しているつもりなんですが、スキャナーを使ってどう書けばいいのかが
わかりません。よろしくお願いします。
引用返信 編集キー/
■67209 / inTopicNo.2)  Re[1]: java TicTocToe 二次元配列について
□投稿者/ 甕星 (16回)-(2013/07/16(Tue) 10:11:11)
> 二次元配列については理解しているつもりなんですが、スキャナーを使ってどう書けばいいのかが

二次元配列とScanerは何も関係ありません。
出題者はおそらく「0 2」のような座標指定の入力をScanerをつかって解析して0と2の数値に分解することを想定して、Importしているのでしょう。
課題の文章を読む限り、Scanerの使用を要求しているわけでもないし、課題の本質とは関係なさそうだし、わからないならScanerを使わなければよいんじゃないですかね。
引用返信 編集キー/
■67210 / inTopicNo.3)  Re[2]: java TicTocToe 二次元配列について
□投稿者/ ミーア (5回)-(2013/07/16(Tue) 14:10:59)
No67206と同じ投稿者でしょうか?(プロファイル照合で一致したもので)
もし同一人物であれば、特に各質問に関連性があるならば、同じハンドル名で投稿した方がいいですよ。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -