私は基本的に迷路のプログラムを開発しています。迷路のプログラムは、開始点からその周りのすべての点をチェックし、空白に移動して前の位置をマークし、出口が見つかると終了します。ジェネリッククラスを使って迷路を解決するには?
アルゴリズム自体は既に完成していますが、明確にしたいことがいくつかあります。このプログラムでは、使用しなかったジェネリッククラスのStack、Queue、Coordinates(現在のx、y座標を格納しています)と、キュー内のキューをスタックするなどの操作を必要とします。スタック。
これはメインループである:それは、上記座標はオープンスペース又は出口(「S」)のいずれかである場合、それは本当であれば、以前の位置をマーキングしながら、それは、そこに移動チェック
if(maz[x][y-1]==' '||maz[x][y-1]=='S'){
if(maz[x][y-1]=='S')
exitfound=true;
maz[x][y]='*';
maz[x][y-1]='@';
y=y-1;
}
*とその位置は '@'で移動します。これは他の3つの面でも繰り返されます。プログラムの最後には、歩いていたすべてのスペースに*印が付きます。しかし、私は上記の汎用クラスを使って座標を操作する必要があります。
これらの必要なクラスとそのオブジェクトです:
Stack<Coordinate> path = new Stack<Coordinate>(40);
Stack<Queue<Coordinate>> possibilities = new Stack<Queue<Coordinate>>(40);
Coordinate current = new Coordinate(x,y);
Queue<Coordinate> queue = new Queue<Coordinate>(3);
私はcurrent
オブジェクトの座標を格納し、クラスQueue<Coordinate>
のqueue
オブジェクトの座標を挿入する方法を理解し、上queue
オブジェクトを積み重ねないでくださいクラスStack<Queue<Coordinate>>
からのpossibilities
オブジェクトです。これはどうですか?
。 – Kreator
アイテムをキューに追加してスタックする方法を知る必要がありますか? – screenmutt
Coordinate、stack、およびqueueのクラスに座標(つまり:3,4)を追加する方法。 – Kreator