2010-10-12 23 views
9

J'ai cette déclaration des variables sur mon programme:Choisissez For Strings au hasard dans Commodore BASIC 64

X="MAGENTA" 
Y="CYAN" 
Z="TAN" 
A="KHAKI" 

Maintenant, ce que je veux est de choisir au hasard l'un d'eux et il PRINT. Mais comment faire cela?

+1

+1 pour Commodore 64 BASIC! Dommage que je ne connaisse pas la réponse :-) –

+1

Wow, je devrais rentrer à la maison pour déterrer mon Guide du programmeur pour connaître la bonne façon d'utiliser RND, mais bravo pour une question à propos de C64 BASIC :) – p00ya

+0

@Dean : Ouais. Je suis toujours un amoureux du Commodore 64. C'est toujours une excellente plate-forme, principalement si vous voulez faire quelques vieux jeux de BASIC **:) ** –

Répondre

4

Mon BASIC est assez rouillée, mais vous devez simplement être en mesure d'utiliser quelque chose comme:

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$ 

ou, le mettre dans un sous-programme pour le code de réutilisation:

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 

Bien sûr, vous devriez probablement utiliser des tableaux pour ce genre de chose, donc vous pouvez simplement utiliser:

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)) 
+1

Est-ce que ces égalités vont marcher? Si RND génère un flaot, cela devrait être <= 1, <= 2 etc. – p00ya

+1

Eh bien, cela montre juste comment rouillé par BASIC est réellement :-) Fixé avec un 'INT()' enroulé autour de lui. – paxdiablo

+0

Je ne suis pas sûr de Commodore Basic, mais je pense que dans d'autres Basic l'indice de départ d'un tableau est normalement 1, donc vous devriez 'DIM A $ (4)'. Si mon souvenir (rouillé) me sert bien, alors dans BASICA/GWBASIC après Basic Basic, il y avait une commande 'OPTION BASE' pour déterminer si le tableau commence à partir de 0 ou de 0. – ysap