/*****************************/
/*★ 迷路探索 前田 稔 ★*/
/*****************************/
using System;
class Prog
{
static string[] st =
// "....:....1....:....2....:....3....:....4....:....5....:....6",
{ "************************************************************", //1
"S ** ************************** *********", //2
"*** ******* *** ************** ******", //3
"*** ****************************** ***************** ******", //4
"**** *** ******", //5
"************************ ********* ******** * ***********",
"************************ ********* ******** **** ***********",
"*** ******* ******** ***",
"****** ************************** ********* *******",
"****** ********************************* *********** *******", //10
"****** ***************************** *********** *******",
"** ******************************* ***** *******",
"****** ************ ************ ***** ***************",
"*********** ************* *********** ***** ***************",
"*********** ************** ******** ***** *******", //15
"******** ************** ***** **************** *******",
"*********** **** *** ******** ** *******",
"*********** ************* ***** ***************",
"******** ******************** G",
"************************************************************" //20
};
// "....:....1....:....2....:....3....:....4....:....5....:....6",
static char[,] t = new char[20,60];
//★Main() 関数
public static void Main()
{
int x,y;
//string[] st を char[,] t に格納
for (y = 0; y < 20; y++)
for (x = 0; x < 60; x++) t[y, x] = st[y][x];
//迷路探索
Meiro(1,1);
//結果を表示
for (y = 0; y < 20; y++)
{ for (x = 0; x < 60; x++) Console.Write("{0}",t[y,x]);
Console.WriteLine("");
}
Console.ReadLine();
}
// 迷路探索
static bool Meiro(int x,int y)
{
if (t[y,x]=='G') return true; //Goal
if (t[y,x]!=' ') return false; //行き止まり
t[y,x]= '.';
if (Meiro(x+1,y)) return true;
if (Meiro(x,y+1)) return true;
if (Meiro(x-1,y)) return true;
if (Meiro(x,y-1)) return true;
t[y,x]= '+';
return false;
}
}
|