tengo esta variable declaraciones en mi programa:para al azar cadenas en Commodore 64 BÁSICO
X="MAGENTA"
Y="CYAN"
Z="TAN"
A="KHAKI"
Ahora lo que quiero es elegir al azar uno de estos y PRINT
ella. pero como hacer esto?
tengo esta variable declaraciones en mi programa:para al azar cadenas en Commodore 64 BÁSICO
X="MAGENTA"
Y="CYAN"
Z="TAN"
A="KHAKI"
Ahora lo que quiero es elegir al azar uno de estos y PRINT
ella. pero como hacer esto?
Mi BASIC es bastante oxidada, pero sólo debe ser capaz de usar algo como:
10 X$ = "MAGENTA"
20 Y$ = "CYAN"
30 Z$ = "TAN"
40 A$ = "KHAKI"
50 N = INT(RND(1) * 4)
60 IF N = 0 THEN PRINT X$
70 IF N = 1 THEN PRINT Y$
80 IF N = 2 THEN PRINT Z$
90 IF N = 3 THEN PRINT A$
o, poniéndolo en una subrutina para la reutilización de código:
10 X$ = "MAGENTA"
20 Y$ = "CYAN"
30 Z$ = "TAN"
40 A$ = "KHAKI"
50 GOSUB 1000
60 PRINT RC$
70 END
1000 TV = INT(RND(1) * 4)
1010 IF TV = 0 THEN RC$ = X$
1020 IF TV = 1 THEN RC$ = Y$
1030 IF TV = 2 THEN RC$ = Z$
1040 IF TV = 3 THEN RC$ = A$
1050 RETURN
Por supuesto, probablemente deberías estar usando matrices para ese tipo de cosas, así que puedes usar:
10 DIM A$(3)
10 A$(0) = "MAGENTA"
20 A$(1) = "CYAN"
30 A$(2) = "TAN"
40 A$(3) = "KHAKI"
50 PRINT A$(INT(RND(1)*4))
¿Funcionarán esas igualdades? Si RND genera un flap, debería ser <= 1, <= 2, etc. ¿verdad? – p00ya
Bueno, eso solo muestra cuán oxidado por BASIC en realidad es :-) Corregido con un 'INT()' alrededor. – paxdiablo
No estoy seguro acerca de Commodore Basic, pero creo que en otros Basic's el índice inicial de una matriz es normalmente 1, por lo que debe 'DIM A $ (4)'. Si mi memoria (oxidada) me funciona bien, entonces en la publicación BASICA/GWBASIC age Basic, había un comando 'OPTION BASE' para determinar si la matriz comienza desde 0 o desde 1. – ysap
+1 for Commodore 64 BASIC! Lástima que no sé la respuesta :-) –
Guau, tendría que ir a casa para obtener mi Guía del programador para saber la manera correcta de usar RND, pero felicitaciones por una pregunta sobre C64 BASIC :) – p00ya
@Dean : Sí. Sigo siendo un amante de Commodore 64. Sigue siendo una gran plataforma, principalmente si quieres hacer algunos viejos juegos BASIC **:) ** –