2012-01-26 13 views
6

किसी व्यवसाय वातावरण में काम करना, मुझे वास्तव में कोड नहीं मिलता है या अब पुराने पुराने कंसोल का उपयोग नहीं होता है। मेरा काम दोहराया गया है और इस प्रकार वास्तव में चुनौतीपूर्ण नहीं है।ऐरे असाइनमेंट सांप

मैंने सी # कंसोल में एक सांप गेम लिखकर खुद को चुनौती देने का फैसला किया; और लड़के ने यह मेरे दिमाग का काम किया। मुझे दिन-दर-दिन आधार पर यह कठिन नहीं लगता है, लेकिन मुझे लगा कि मेरे प्रोग्रामिंग कौशल बेहतर नहीं हो रहे थे।

हालांकि मुझे कोई समस्या है। मैंने जो बुनियादी दृष्टिकोण लिया वह एक सांप वर्ग और एक खाद्य वर्ग बनाना था। सांप वर्ग सभी निर्देशांकों को संग्रहीत करने के लिए एक सरणी का उपयोग करता है और फिर एक ड्राइंग क्लास तय करता है कि कौन से तार ऑन-स्क्रीन खींचते हैं।

समस्या यह है कि जब आप सांप को ले जाते हैं, तो सरणी भर जाती है (अधिकतम प्रदर्शन प्रदर्शन के लिए 250 है), इसलिए जब मैं सरणी के अंत तक पहुंच जाता हूं तो मैं पिछले कुछ तारों को एक अस्थायी सरणी में कॉपी करना चाहता हूं, फ्लश करें मूल सरणी और temp coords को मुख्य सरणी में वापस कॉपी करें।

मेरी समस्या यह है कि x कोर को मूल सरणी में कॉपी कर रहा है। मैंने परीक्षण करने के लिए इसे मैन्युअल रूप से करने का फैसला किया लेकिन यह समाधान हमेशा मेरे गरीब सांप को स्क्रीन पर अपने सेगमेंट में से एक के पीछे छोड़ देता है जब यह वहां नहीं होना चाहिए।

मैं इस प्रोग्रामेटिक तरीके से कैसे करूँगा?

spoints[4, 0] = stemp[249, 0]; 
spoints[4, 1] = stemp[249, 1]; 
spoints[4, 2] = stemp[249, 2]; 

spoints[3, 0] = stemp[248, 0]; 
spoints[3, 1] = stemp[248, 1]; 
spoints[3, 2] = stemp[248, 2]; 

spoints[2, 0] = stemp[247, 0]; 
spoints[2, 1] = stemp[247, 1]; 
spoints[2, 2] = stemp[247, 2]; 

spoints[1, 0] = stemp[246, 0]; 
spoints[1, 1] = stemp[246, 1]; 
spoints[1, 2] = stemp[246, 2]; 

spoints[0, 0] = stemp[245, 0]; 
spoints[0, 1] = stemp[245, 1]; 
spoints[0, 2] = stemp[245, 2]; 

यदि कोई वास्तव में कोड में खोदना चाहता है तो मुझे वास्तव में पूरे गेम को पोस्ट करने में कोई फर्क नहीं पड़ता।

+3

आप टाइप किए गए संग्रह/शब्दकोशों के बजाय सरणी का उपयोग करके अपना जीवन कठिन बना रहे हैं। –

उत्तर

1

'सामान्य बिंदु' के लिए एक सरणी का उपयोग करने पर विचार करें, ड्राइंग बिंदु नहीं, SnakePart जैसे कुछ अन्य वर्ग बनाएं ताकि आपकी Snake कक्षा में प्रबंधनीय भाग हों।

आप एक कस्टम सरणी वर्ग भी बना सकते हैं ताकि ग्रिड के प्रत्येक भाग में आपके पास केवल hasSnakePart मान हो और उसमें हेरफेर हो।

+0

हाइप: आप मेरे मस्तिष्क को चोट पहुंचा रहे हैं, आखिरी बार मैंने इस तरह प्रोग्राम किया था 7 साल पहले हाईस्कूल में, इसलिए मैं चाहता था कि यह बहुत ही बुनियादी लॉल – Batista

+0

आह हो लेकिन यह मजेदार हिस्सा नहीं है! अपने मस्तिष्क को काम करें, इसे दिलचस्प बनाएं! – hyp

+0

सच है, लेकिन बच्चे के कदम :) अगला एआई सांप बनाने के लिए है, इसलिए गेम दिलचस्प है और फिर सांप को अन्य सांप को धीमा करने के लिए जहर शूट करने के लिए – Batista

3

ऐसा लगता है कि एक सरणी आपके उद्देश्यों के लिए गलत डेटा प्रकार है। इसके बजाय List का उपयोग करने पर विचार करें, क्योंकि यह प्रविष्टियों को स्थानांतरित करते समय अधिक लचीलापन की अनुमति देता है।

+0

धन्यवाद! मैं एक सूची का उपयोग करूंगा, लेकिन उस समय के लिए मैं सिर्फ यह जानना चाहता हूं कि प्रोग्रामेटिक तरीके से कैसे करें :) – Batista

+3

यहां तक ​​कि बेहतर: एक कतार –

1

क्या आपने सोचा है कि आप सरणी के 'फ्रंट' में एक नया समन्वय जोड़ते हैं, जैसे ही आप 'बैक' पर जाते हैं। तो मूल रूप से, एक प्रकार का फीफो प्रकार संग्रह ?! आप सी # में एक कतार का उपयोग कर सकते हैं। इस लेख पर एक नज़र डालें और देखें कि क्या यह किसी की मदद करता है ?! http://www.dotnetperls.com/queue

चीयर्स,
क्रिस।

+0

क्रिस का उपयोग करें, मैं सभी बिंदुओं को साजिश कर रहा हूं लेकिन मेरी ड्राइंग क्लास सभी को आखिरी बिंदु पर खींच रही है पुनरावृत्ति.मैं इस मार्ग पर नहीं गया क्योंकि तब सांप की कोई पूंछ नहीं होगी और स्क्रीन पर केवल 1 वर्ण चल रहा होगा - संपादित करें - क्षमा करें, मैं अब आपका तर्क देखता हूं, मुझे बस एक var होना होगा जो राशि की ट्रैक रखता है साँप सेगमेंट है। – Batista