ルート探索

アバター
大白定義
記事: 14
登録日時: 14年前
住所: 三重県

ルート探索

投稿記事 by 大白定義 » 12年前

とりあえずで何のソースも参考にせずに作ってみた。
もちろん、どのように考えればいいのかはどこだったかを参考にしたけれど。
なれない言語でやるとこんがらがりそうだったから、まずは使い慣れているJavaで作って、それをD言語に移植することにした。
以下はJavaで作ってみたコード。

CODE:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Comparator;

public class MainClass {
	//マップデータ
	int[][] mapData= {
			{1,1,1,1,1},
			{1,1,1,0,1},
			{1,0,0,0,1},
			{1,0,1,0,1},
			{1,1,1,1,1}
	};
	
	public static void main(String[] args) {
		new MainClass();
	}
	
	//結果出力用
	ArrayList route = new ArrayList();
	
	public MainClass(){
		//スタート地点
		Vector start = new Vector(0,0,-1);
		//ゴール地点
		Vector goal  = new Vector(2,3,-1);
		
		//マップの探索可・不可、探索前・後のフラグをセット
		int x = mapData[0].length; int y = mapData.length;
		State[][] mapState = new State[y][x];
		for(int i=0; i {
		public int compare(Vector s, Vector t) {
			//               + (x > y)
			// compare x y = 0 (x = y)
			//               - (x  {
		public int compare(Vector s, Vector t) {
			//               + (x > y)
			// compare x y = 0 (x = y)
			//               - (x < y)
			if(s == null) return -1;
			if(t == null) return  1;
			return s.cost - t.cost;
		}
	}
これで出力してみたところ、(おそらく)最短距離が得られた

CODE:

[[2,3], [2,4], [1,4], [0,4], [0,3], [0,2], [0,1]]
最後に編集したユーザー 大白定義 on 2013年2月02日(土) 16:11 [ 編集 2 回目 ]

Fimbul
記事: 100
登録日時: 14年前

Re: ルート探索

投稿記事 by Fimbul » 12年前

>>どうみても遠回りしています。本当に有難うございました。
いやぁ、時には回り道も必要なんだと教えてくれたのですよ(笑)

>>今夜は兄が結婚して別居に移るため、その手伝いをしなければいけないのでここまで。
お兄さんの結婚おめでとうございます^(ノ゚ー゚)ノ☆パチパチ☆ヾ(゚ー゚ヾ)^

アバター
大白定義
記事: 14
登録日時: 14年前
住所: 三重県

Re: ルート探索

投稿記事 by 大白定義 » 12年前

>>いやぁ、時には回り道も必要なんだと教えてくれたのですよ(笑)
深すぎる・・・!
適当に作ったプログラムから語られる、俺の人生ェ・・・

>>お兄さんの結婚おめでとうございます^(ノ゚ー゚)ノ☆パチパチ☆ヾ(゚ー゚ヾ)^
ありがとうと言っていいんですかね・・・?w
自分のことなら、素直に喜べるんですが・・・w

Fimbul
記事: 100
登録日時: 14年前

Re: ルート探索

投稿記事 by Fimbul » 12年前

>>ありがとうと言っていいんですかね・・・?w
>>自分のことなら、素直に喜べるんですが・・・w

祝福してくれる家族がいたら、それはそれはとても幸せなことなのです(。・∀・)人(・∀・。)