ライフゲーム
Posted feedbacks - なでしこ
ぴこぴこ動くので、多分間違ってないかと(^ ^;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | !変数宣言が必要
/*初期マップとは配列=,
"0,1,0,0,0,0,1,1,1,0
0,0,0,0,1,0,0,1,1,0
0,0,0,1,0,0,1,0,1,0
1,0,1,1,0,0,1,0,0,0
0,1,0,0,0,0,0,0,1,0
1,0,0,0,1,0,1,1,0,1
0,1,0,0,0,0,1,0,0,0
0,0,0,0,0,0,0,0,0,1
1,0,0,0,0,0,1,0,0,1
0,0,0,0,1,1,0,0,1,0"
wとは整数=9
hとは整数=9*/
初期マップとは配列=,
"0,0,0,0,0,0
0,0,0,1,1,0
0,0,0,1,1,0
0,1,1,0,0,0
0,1,1,0,0,0
0,0,0,0,0,0"
wとは整数=5
hとは整数=5
現マップとは配列=初期マップ
次マップとは配列
iとは整数
jとは整数
セル数とは整数
マップラベルとはラベル
マップラベル=現マップをマップ整形
1の間
iで0からhまで繰り返す
jで0からwまで繰り返す
セル数=周囲セル数取得(現マップ,i,j,h,w)
もし(現マップ[i,j]=0)ならば
もし(セル数=3)ならば
次マップ[i,j]=1 #誕生
違えば
次マップ[i,j]=0 #死亡
違えば
もし(セル数=2||セル数=3)ならば
次マップ[i,j]=1 #維持
違えば
次マップ[i,j]=0 #死亡
現マップ=次マップ
マップラベル=現マップをマップ整形
0.2秒待つ
●マップ整形(mapを)
tmpとは文字列
tmplineとは文字列
mapを反復
tmpline=対象の改行を""に置換
tmpline=tmplineの0を" "に置換
tmpline=tmplineの1を"■"に置換
tmp=tmp&tmpline&改行
tmpで戻る
●周囲セル数取得(map,y,x,h,w)
nxとは整数
nyとは整数
countとは整数
"{y-1},{x-1}
{y-1},{x}
{y-1},{x+1}
{y},{x-1}
{y},{x+1}
{y+1},{x-1}
{y+1},{x}
{y+1},{x+1}"を反復
もし(対象[0,0]=-1)ならば
ny=h
違えば
ny=対象[0,0]
もし(対象[0,1]=-1)ならば
nx=w
違えば
nx=対象[0,1]
もし(map[ny,nx]=1)ならば
count=count+1
countで戻る
|
すいません、配列が範囲を超える場合の処理を書いてませんでしたorz
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | ●周囲セル数取得(map,y,x,h,w)
nxとは整数
nyとは整数
countとは整数
"{y-1},{x-1}
{y-1},{x}
{y-1},{x+1}
{y},{x-1}
{y},{x+1}
{y+1},{x-1}
{y+1},{x}
{y+1},{x+1}"を反復
もし(対象[0,0]=-1)ならば,ny=h
違えば,もし(対象[0,0]=h+1)ならば,ny=0
違えば,ny=対象[0,0]
もし(対象[0,1]=-1)ならば,nx=w
違えば,もし(対象[0,1]=w+1)ならば,nx=0
違えば,nx=対象[0,1]
もし(map[ny,nx]=1)ならば
count=count+1
countで戻る
|



saws
#5330()
Rating6/12=0.50
see: Wikipedia:ライフゲーム
[ reply ]