Programa GALAXIS, para BASIC del C64 y ATARI

Aquí solo proyectos que incluyan el código fuente

Moderador: Fundadores

Reglas del Foro
Si no se incluyen los fuentes, se debe usar el foro de proyectos de software generales
Responder
Avatar de Usuario
explorer
El infierno es su lugar
El infierno es su lugar
Mensajes: 170
Registrado: 22 Oct 2017, 03:27
Ubicación: Valladolid, España
Has thanked: 8 times
Been thanked: 22 times
Contactar:

Programa GALAXIS, para BASIC del C64 y ATARI

Mensaje por explorer »

Publicado en la revista "Muy interesante. Monográfico 2 Ordenadores".

He corregido los errores de bulto, pero la línea 210 me mosquea, no sé si es correcto un sólo carácter ":". Así es como aparece en la revista.

Código: Seleccionar todo

100 REM ** PROGRAMA GALAXIS **
110 REM para C-64
120 PRINT CHR$(147): REM borrar pantalla
130 PRINT "REPRODUCCION DE LA GALAXIA":PRINT
140 PRINT "Autor: OLIVER RANKE"
160 PRINT:INPUT "CUANTOS BRAZOS DE ESPIRAL 2";Z1
170 POKE 53280,0:REM borde negro
180 PRINT:PRINT:PRINT "UN POCO DE PACIENCIA..."
190 POKE 56,32:REM proteccion del BASIC
200 GOSUB 1000:REM modo grafico
210 :
220 FOR Z=1 TO Z1
230 IF Z=1 THEN W=0:GOTO 250
240 IF Z=2 THEN W=3.141592
250 FOR A=0 TO 2 STEP 0.01
260 REM coordenadas de un punto del brazo de la espiral
270 R=EXP(A)^2
280 X=COS(W)*2*R+160:Y=SIN(W)*R/2+100+COS(W)*R:REM -centrado-
290 X1=X:Y1=Y:GOSUB 2000:REM ESTRELLAS DEL NUCLEO
300 REM -estrellas de alrededor-
310 IF A<1.75 THEN IO=A*2+1:GOTO 340
320 IF A<1.85 THEN IO=2:GOTO 340
330 IO=1
340 FOR I=0 TO IO
350 DX=RND(1)*3:DY=RND(1)*3
360 D1=RND(1):D2=RND(1)
370 IF D1<.5 THEN DX=-DX
380 IF D2<.5 THEN DY=-DY
390 X1=X+DX:Y1=Y+DY:GOSUB 2000:REM pinta estrellas circundantes
400 NEXT I
410 W1=RND(1)/5:W=W+W1
420 NEXT A
430 NEXT Z
440 REM -estrellas de fondo-
450 FOR S=1 TO 250
460 X=INT(RND(1)*320):Y=INT(RND(1)*200):REM -posiciones aleatorias-
470 X1=X:Y1=Y:GOSUB 2000:REM dibujar estrellas del fondo
480 NEXT S
490 REM espera a pulsar tecla
500 GET Q$:IF Q$="" THEN 500
510 REM desconectar graficos
520 POKE 53265,PEEK(53265) AND 223
530 POKE 53272,PEEK(53272) AND 247
540 END
999 REM
1000 REM limpiar memoria graficos
1010 FOR I=8192 TO 16191:POKE I,0:NEXT I
1020 REM fondo negro y estrellas blancas
1030 FOR I=1024 TO 2023:POKE I,16:NEXT I
1040 POKE 53272,PEEK(53273) OR 8:REM principio de grafic en la direccion 8192
1050 POKE 53265,PEEK(53265) OR 32:REM conectar graficos HI-RES
1060 RETURN
1900 REM
2000 REM dibujar punto
2010 REM
2020 REM INPUT: POSICION DE X E Y (X1,Y1)
2030 REM OUTPUT:
2040 REM ********************
2050 X1=INT(X1):Y1=INT(Y1)
2060 BY=8192+INT(Y1/8)*320+8*INT(X1/8)+(Y1 AND 7)
2070 POKE BY,PEEK(BY) OR (2^(7-(X1 AND 7))):REM dibujar punto
2080 RETURN

Código: Seleccionar todo

100 REM ** Programa GALAXIS **
110 REM para ATARI 400/600/800
120 GRAPHICS 0:? "Reproduccion de la Via Lactea":? :POKE 752,1
130 ? "Autor: Oliver Ranke"
140 DL=PEEK(560)+256*PEEK(561):POKE DL+10,7:POKE DL+11,6
150 POSITION 8,18:? "PULSAR START"
180 IF PEEK(53279)<>6 THEN 180
200 GRAPHICS 24:SETCOLOR 2,0,0
210 COLOR 1
220 FOR Z=1 TO 2
230 IF Z=1 THEN W=0:GOTO 250
240 W=3.141592
250 FOR A=0 TO 2 STEP 0.01
260 REM coordenadas de un punto del brazo de la espiral
270 R=EXP(A):R=R*R
280 X=COS(W)*2*R+160:Y=SIN(W)*R/2+96+COS(W)*R:REM -centrado-
290 PLOT X,Y:PLOT X+1,Y
300 REM -estrellas de alrededor-
310 IF A<1.75 THEN IO=A*2+1:GOTO 340
320 IF A<1.85 THEN IO=2:GOTO 340
330 IO=1
340 FOR I=0 TO IO
350 DX=RND(0)*3:DY=RND(0)*3
360 D1=RND(0):D2=RND(0)
370 IF D1<0.5 THEN DX=-DX
380 IF D2<0.5 THEN DY=-DY
390 PLOT X+DX,Y+DY
400 NEXT I
410 W1=RND(0)/5:W=W+W1
420 NEXT A
430 NEXT Z
440 REM -estrellas de fondo-
450 FOR S=1 TO 250
460 X=INT(RND(0)*319):Y=INT(RND(0)*192):REM -posicion aleatoria-
470 PLOT X,Y:IF RND(0)<0.8 THEN 490
480 PLOT X+1,Y
490 NEXT S
500 IF PEEK(53279)<>6 THEN 500
510 GRAPHICS 0:END 
1000 SAVE "H1:GALAXIS.BAS"
Responder

Volver a “Proyectos de software abiertos”