私は4x4 tic tac toeのコード片を与えられたIMプロジェクトに取り組んでいますが、あらかじめインストールされたAIを打ち負かすことができる自分のAIを実装する必要があります。 2人のAIの顔はシンプルで無作為です。ランダムはちょうど無作為にXを正方形に挿入し、シンプルプレーヤーは左上の四角形から開始し、右の四角形を反復します。だから、シンプルなプレイヤーを傍受するために、私は最初の行に最初のOを入れ、基本的には4行が終わるまで縦線を下ろします。しかし、無作為のプレーヤーは私のラインを横取りすることができます。その後、コンピュータプレーヤーは無作為にOを空の四角に置いて描きます。しかし、プレイヤーがどこに行くのかわからないので、プレイしていないかもしれないので、これは正しく動作しません。だから私のコンセプトを誰かが修正できるかどうかは分かります。 チックタックのつま先で自分のAIプレーヤーを作る
THIS
はランダムAIは幸いにもあなたは、単純なを使用する場合は、あなたの一日を台無しにつまずくかもしれない何かが常にある一日の終わりに私のコードpackage noughtsAndCrossesV3;
import ncErrors.outOfRangeError;
import java.util.ArrayList;
import java.util.Random;
public class MyCompPlayer extends GenericPlayer implements NCPlayer {
Random theGenerator;
public MyCompPlayer()
{
super(); // no further initialisation required
theGenerator = new Random();
}
// NCGrid is the grid the class that displays the grid and rules to win
@Override
public GridCoordinate getNextMove(NCGridV3 currentGrid) {
int Row;
int Col;
GridCoordinate theSquare = null;
int randomSelection;
ArrayList<GridCoordinate> freeSquares = new ArrayList<GridCoordinate>(); // array finding free squares
//iterates through row and column
for (Row = 0; (theSquare == null) && (Row < currentGrid.getGridRowDimension()); Row++){
for (Col = 0; (theSquare == null) && (Col < currentGrid.getGridColDimension()); Col++){
try{
//If last column is empty, then draw a row of O's downwards in a straight line.
if(currentGrid.getSquareStatus(Row,3)==NCGridV3.SquareStatus.EMPTY){
theSquare = new GridCoordinate(Row,3);
return theSquare;
}
//If there is a nought then randomize movement. This doesnt work yet.
else if(currentGrid.getSquareStatus(Row,3)==NCGridV3.SquareStatus.NOUGHT)
freeSquares.add(new GridCoordinate(Row, Col));
// adds free sqaures to array and plots coordinate there but doesnt work.
}
catch (outOfRangeError e)
{
}
}
}
randomSelection = theGenerator.nextInt(freeSquares.size());
return freeSquares.get(randomSelection);
}
}
あなたが記述しているこれらの2種類のAIを打ち消したいのか、どのタイプのプレーヤー/ AIに打ち勝つ(可能な)AIを作りたいのかを指定できますか?あなたはこれを使うことができますhttp://www.wikihow.com/Win-at-Tic-Tac-Toe –
どういう意味ですか?しかし、これは正しく動作しませんどこへ行く。" ?処理されないoutOfRangeError例外がスローされますか?また、宿題ですか? (タグ付けする必要があります) – phtrivier