2010-10-12 19 views
9

में मैं अपने कार्यक्रम के बारे में इस चर घोषणाओं है:रैंडम स्ट्रिंग्स के लिए चुनें कमोडोर 64 बुनियादी

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

अब क्या मैं चाहता हूँ बेतरतीब ढंग से इनमें से किसी एक है और यह PRINT चयन करने के लिए है। लेकिन यह कैसे करें?

+1

+1 कमोडोर 64 बेसिक के लिए +1! बहुत बुरा मुझे जवाब नहीं पता :-) –

+1

वाह, मुझे आरएनडी का उपयोग करने का सही तरीका जानने के लिए अपने प्रोग्रामर गाइड को खोदने के लिए घर जाना होगा, लेकिन सी 64 बेसिक के बारे में एक प्रश्न के लिए कुडोस :) – p00ya

+0

@ डीन : हाँ। मैं अभी भी एक कमोडोर 64 प्रेमी हूँ। यह अभी भी एक महान मंच है, मुख्य रूप से यदि आप कुछ पुराने मूलभूत गेम बनाना चाहते हैं **: ** ** –

उत्तर

4

मेरे बुनियादी सुंदर जंग लगी है, लेकिन आप अभी की तरह कुछ का उपयोग करने के लिए सक्षम होना चाहिए:

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$ 

या, कोड को फिर से उपयोग के लिए एक सबरूटीन में डालने:

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 
बेशक

, आपको शायद उस तरह की चीज के लिए सरणी का उपयोग करना चाहिए ताकि आप इसका उपयोग कर सकें:

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

क्या समानताएं काम करती हैं? यदि आरएनडी एक फ्लोट उत्पन्न करता है, तो यह <= 1, <= 2 आदि होना चाहिए? – p00ya

+1

ठीक है, यह दिखाता है कि बेसिक वास्तव में कितना जंगली है :-) इसके आस-पास एक 'आईएनटी()' के साथ फिक्स्ड है। – paxdiablo

+0

मुझे कमोडोर बेसिक के बारे में निश्चित नहीं है, लेकिन मुझे लगता है कि अन्य मूलभूत में सरणी की प्रारंभिक अनुक्रमणिका सामान्यतः 1 है, इसलिए आपको '$ (4)' देना चाहिए। अगर मेरी (जंगली) मेमोरी मुझे अच्छी तरह से सेवा देती है, तो पोस्ट बेसिका/जीडब्ल्यूबीएएसआईसी आयु बेसिक के पोस्ट में, यह निर्धारित करने के लिए 'विकल्प आधार' आदेश था कि सरणी 0 से शुरू होती है या 0 से – ysap