/************************************/
/*★ 内部を塗りつぶす 前田 稔 ★*/
/************************************/
using System;
class Prog
{
static string[] st =
// "....:....1....:....2....:....3....:....4....:....5....:....6",
{ "************************************************************", //1
"****** ****************************************** *******", //2
"***** ***************************************** ******", //3
"***** ****** ************ *****", //4
"**** ******* ******* ****", //5
"****** ********* ****",
"*** *************** ****",
"*** ********** ****",
"************** ** *****",
"****** *************** ************* *********** ******", //10
"***** *********** *************** *****************",
"**** ************ ********** *******************",
"*** ************ ************** *****************",
"***** ************* **************** *****************",
"******* ************** ******** ****************", //15
"******** *********** ***** *************",
"********* **** ************** ************",
"******* ******** ***** ************",
"******** **************** ************************",
"************************************************************" //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];
//最初の状態を表示
for (y = 0; y < 20; y++)
{ for (x = 0; x < 60; x++) Console.Write("{0}",t[y,x]);
Console.WriteLine("");
}
Console.WriteLine("");
paint(20,5);
//塗りつぶした結果を表示
for (y = 0; y < 20; y++)
{ for (x = 0; x < 60; x++) Console.Write("{0}",t[y,x]);
Console.WriteLine("");
}
Console.ReadLine();
}
//★内部を塗りつぶす
static void paint(int x,int y)
{
if (t[y,x]=='*') return;
t[y,x]= '*';
paint(x+1,y);
paint(x-1,y);
paint(x,y+1);
paint(x,y-1);
}
}
|