Conway's Game of Life: Difference between revisions

no edit summary
m (→‎{{header|OCTAVE}}: Fixed language name.)
No edit summary
Line 1,211:
=={{header|ALGOL 68}}==
See [[Conway's Game of Life/ALGOL 68]]
 
=={{header|Amazing Hopper}}==
<p>El programa genera el algoritmo en modo texto.</p>
<p>Adaptado del programa "Conway's Game of Life" de Vishal Nagda, en Hithub</p>
<p>https://github.com/vishalnagda1/CONWAYs-Game-of-Life-C/blob/master/game_of_life.c</p>
<syntaxhighlight lang="text">
#include <jambo.h>
 
#define SIZER 90
#define SIZEC 120
 
Main
Dim (SIZER, SIZEC) as zeros 'grid, neighbour_count'
Dim (SIZER, SIZEC) as fill '" ",disp grid'
c=0, Let( c := Utf8(Chr(254)))
moi=0, moj=0, poi=0, poj=0
 
m={}
Set ' 0,1,1 ' Apnd row 'm'
Set ' 1,1,0 ' Apnd row 'm'
Set ' 0,1,0 ' Apnd row 'm'
[44:46, 59:61] Set 'm', Put 'grid'
Clr all marks
i=0, j=0, steps=0
Tok sep '""'
Locate (1,1)
Loop
i=1
Iterator ( ++i, Less equal(i,SIZER),\
j=1, Iterator ( ++j, Less equal(j,SIZEC), \
Set 'i,j', Gosub 'Count NBR', [i,j], Put 'neighbour_count' ) )
 
i=1
Loop if( Less equal(i,SIZER) )
j=1
Loop if( Less equal(j,SIZEC) )
[i,j]
If ( Get 'grid' ) //Greater equal (Get 'grid', 1) )
Get 'neighbour_count'
When ( Out of range including '1,4' ) {
Set '0," "', Put 'disp grid', Put 'grid'
}
Else
Get 'neighbour_count'
When ( Is equal to '3' ) {
Set '1,c', Put 'disp grid', Put 'grid'
}
End If
++j
Back
++i
Back
Clr all marks
Print table 'disp grid'
Break if ( Key pressed )
++steps
Back
Pause
End
 
Subrutines
 
Define 'Count NBR, i, j'
n_count = 0
 
When ( Must be( Minus one 'i' ---Backup to 'moi'---, Minus one 'j' ---Backup to 'moj'--- ) ) {
 
When ( [moi,moj]Get 'grid' ) {
++n_count
}
}
 
Plus one 'j', Move to 'poj'
 
When ( moi ) {
When ( [ moi, j ] Get 'grid' ) {
++n_count
}
When ( Less equal( poj, SIZEC )) {
When ( [ moi, poj] Get 'grid' ) {
++n_count
}
}
}
 
When ( moj ) {
When( [i, moj] Get 'grid' ) {
++n_count
}
}
 
When ( Less equal ( poj, SIZEC ) ){
When( [i, poj] Get 'grid' ) {
++n_count
}
}
 
When ( Less equal (Plus one 'i' ---Backup to 'poi'---, SIZER ) ) {
 
When ( [ poi, j] Get 'grid' ) {
++n_count
}
When ( Less equal ( poj, SIZEC) ) {
When ( [poi, poj] Get 'grid' ) {
++n_count
}
}
When ( moj ){
When ([poi, moj] Get 'grid' ){
++n_count
}
}
}
Return 'n_count'
 
</syntaxhighlight>
{{out}}
<pre>
La llamada se realiza desde terminal, con el programa "rxvt" de Linux, para adaptar la terminal a los pixeles y dimensiones adecuados.
Llamada:
rxvt -g 270x100 -fn "xft:FantasqueSansMono-Regular:pixelsize=3" -e hopper jm/gamelife.jambo
</pre>
 
<pre>
[[File:Captura_de_pantalla_de_2022-10-07_04-37-57.png]]
</pre>
 
 
=={{header|APL}}==
543

edits