新しく発言する EXIT インデックスへ
ライフゲーム

  ライフゲーム 大久保博史 2004/02/29 14:29:32 
  こちらは自動で初期配置しなおしませんが、... 大久保 2004/02/29 14:31:32 
  ライフゲームって人生ゲームですか。 小塚貞典 2004/03/02 11:06:22 
   └ライフゲームについては 大久保 2004/03/02 18:37:17 
    └ライフゲームの原理がわかったら、ここの 青木太一 2004/03/02 20:11:42 

  ライフゲーム 大久保博史 2004/02/29 14:29:32  ツリーへ

ライフゲーム 返事を書く
大久保博史 2004/02/29 14:29:32
ライフゲームを作りました
同じパターンの繰り返しになると自動的に初期配置をします。
初期値を40くらいでやって、遅ければ数字を下げ、早ければ70くらいまで上げてみてください。


RANDOMIZE
set echo "off"
input prompt "何マス平方?":t
set bitmap size t*8.5,t*8.5
set window 1,t+1,1,t+1
SET TEXT HEIGHT 0.85
dim a(t,t)
dim a$(t,t)
dim b(t,t)

1000 let kazoeru=1
let m=rnd
print m*100
for x=1 to t
for y=1 to t

let n=rnd
if n<m then let a(x,y)=0 else let a(x,y)=1
if a(x,y)=0 then let a$(x,y)="あ"
if a(x,y)=1 then let a$(x,y)="い"

next y
next x
SET DRAW MODE Hidden
for x=1 to t
for y=1 to t

if a$(x,y)="あ" then let co=3 else let co=3
set text color co
PLOT TEXT ,AT x,y: "●"
next y
next x
SET DRAW MODE explicit
2000 for x=1 to t
for y=1 to t
let p=mod(x-1,t)
if p=0 then let p=t
let q=mod(x+1,t)
if q=0 then let q=t
let r=mod(y-1,t)
if r=0 then let r=t
let s=mod(y+1,t)
if s=0 then let s=t

let b(x,y)=a(p,s)+a(x,s)+a(q,s)+a(p,y)+a(q,y)+a(p,r)+a(x,r)+a(q,r)

if b(x,y)=2 then goto 3000
if b(x,y)=3 then let a$(x,y)="い" else let a$(x,y)="あ"
SET DRAW MODE Hidden
3000 next y
next x

let lbt$=lbs$
let lbs$=lbf$
let lbf$=""

for x=1 to t
for y=1 to t

if a$(x,y)="あ" then let a(x,y)=0
if a$(x,y)="い" then let a(x,y)=1

let lbf$=lbf$&a$(x,y)

next y
next x
SET DRAW MODE explicit
SET DRAW MODE Hidden
clear
set text color 2
for x=1 to t
for y=1 to t
if a$(x,y)="あ" then goto 1010
PLOT TEXT ,AT x,y: "●"
1010 next y
next x
let kazoeru=kazoeru+1
if lbf$=lbs$ then goto 5000
if lbf$=lbt$ then goto 5000
goto 2000

5000 print kazoeru;"世代"
print "----------------------------------------"
goto 1000
END

  こちらは自動で初期配置しなおしませんが、... 大久保 2004/02/29 14:31:32  ツリーへ

Re: ライフゲーム 返事を書く
大久保 2004/02/29 14:31:32
こちらは自動で初期配置しなおしませんが、若干高速化しています。


RANDOMIZE
input prompt "何マス平方?":t
set bitmap size t*10,t*10
set window 1,t+1,1,t+1

SET TEXT HEIGHT 0.90
dim a(t,t)
dim a$(t,t)
dim b(t,t)

1000 let kazoeru=1
let m=rnd

print m*100
for x=1 to t
for y=1 to t

let n=rnd
if n<m then let a(x,y)=0 else let a(x,y)=1
if a(x,y)=0 then let a$(x,y)="あ"
if a(x,y)=1 then let a$(x,y)="い"

next y
next x
SET DRAW MODE Hidden
for x=1 to t
for y=1 to t

if a$(x,y)="あ" then let co=3 else let co=3
set text color co
PLOT TEXT ,AT x,y: "●"
next y
next x
SET DRAW MODE explicit
set text color 2
2000
for x=1 to t
for y=1 to t
let p=mod(x-1,t)
if p=0 then let p=t
let q=mod(x+1,t)
if q=0 then let q=t
let r=mod(y-1,t)
if r=0 then let r=t
let s=mod(y+1,t)
if s=0 then let s=t

let b(x,y)=a(p,s)+a(x,s)+a(q,s)+a(p,y)+a(q,y)+a(p,r)+a(x,r)+a(q,r)

if b(x,y)=2 then goto 3000
if b(x,y)=3 then let a$(x,y)="い" else let a$(x,y)="あ"
SET DRAW MODE Hidden
3000 next y
next x



for x=1 to t
for y=1 to t

if a$(x,y)="あ" then let a(x,y)=0
if a$(x,y)="い" then let a(x,y)=1

next y
next x
SET DRAW MODE explicit
SET DRAW MODE Hidden
clear

for x=1 to t
for y=1 to t
if a$(x,y)="あ" then goto 1010
PLOT TEXT ,AT x,y: "●"
1010 next y
next x
let kazoeru=kazoeru+1
mouse poll x,y,left,right
if left=1 then goto 5000

goto 2000

5000 print kazoeru;"世代"
print "----------------------------------------"
goto 1000
END




  ライフゲームって人生ゲームですか。 小塚貞典 2004/03/02 11:06:22  ツリーへ

Re: ライフゲーム 返事を書く
小塚貞典 2004/03/02 11:06:22
ライフゲームって人生ゲームですか。
最近、gameの理論がセンター試験(昔の共通一時)に出題されたらしいですね。

   └ライフゲームについては 大久保 2004/03/02 18:37:17  ツリーへ

Re: ライフゲームって人生ゲームですか。 返事を書く
大久保 2004/03/02 18:37:17
ライフゲームについては
http://www.mars.dti.ne.jp/~khnum/life/index.html
で詳しく解説されています。
確かに人生ゲームと紛らわしいですね^^

>gameの理論がセンターに出題
難しそうですね 再来年受験ですが今から恐怖です

    └ライフゲームの原理がわかったら、ここの 青木太一 2004/03/02 20:11:42  ツリーへ

Re: ライフゲームについては 返事を書く
青木太一 2004/03/02 20:11:42
ライフゲームの原理がわかったら、ここの
http://hensel.lifepatterns.net/
Javaアプレットを試してみてください。すごいですよ。
(「Enjoy Life」ボタンを押してください。)
かなり高速なLifeをいろんなパターンでみることができます。

十進BASICに関係なくてごめんなさい。なつかしかったもので。


インデックスへ EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。