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
Aspirante a demonio
Aspirante a demonio
Mensajes: 206
Registrado: 22 Oct 2017, 03:27
Ubicación: Valladolid, España
Has thanked: 8 times
Been thanked: 32 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”