2013-04-23 5 views
5

मैं एचटीएमएल 5 कैनवास के साथ जीवन के जॉन Conways खेल का निर्माण। इसमें एक गेमऑफलाइफ़ ऑब्जेक्ट है जिसमें सभी कोशिकाओं और उनके राज्यों (मृत/जीवित) के साथ एक सरणी है।जावास्क्रिप्ट में दो पूर्णांक जोड़ने लगते नहीं हैं?

function cell(x,y){ 
    this.x = x; 
    this.y = y; 
    this.isAlive = false; 
} 

मैं कोशिकाओं राज्यों आसपास के एक कोशिकाओं की जाँच के तरीकों की तलाश कर रहा हूँ: यहाँ कोड है कि एक सेल बनाता है। जैसा कि मैं समझता हूं, एक तरीका सरणी के माध्यम से फिर से शुरू करना है और वर्तमान में चेक किए गए सेल के आसपास होने वाले समन्वय वाले सेल को ढूंढना है।

मैं एक अलग तरीके से जाने के बारे में सोच रहा था। सेल के सूचकांक से वाई (और एक्स) धुरी पर कोशिकाओं की संख्या को जोड़ने और घटाने (+1 और -1 के छोटे बदलावों के साथ), आप किसी भी शीर्ष के सूचकांक के साथ आने में सक्षम होना चाहिए बाएं, बाएं, नीचे बाएं, ऊपर दाएं, दाएं, नीचे दाएं सेल।

मैं इस विचार का परीक्षण करने हालांकि, के रूप में यह मुझे वांछित सूचकांक मिलता है नहीं है नहीं कर पाए हैं:

तो, मेरे अद्यतन पाश में:

//I know that there is a cell at the index of exampleIndex + cellsY 
exampleIndex = 200; 

game.getLivingNeighbours(exampleIndex); 


function getLivingNeighbours(i){ 

    console.log(i) //Logs an integer 
    console.log(grid.cellsY) //Logs an integer 
    console.log(game.cells[i + grid.cellsY]); //Undefined?! 

} 
+0

कौन सा है? 'सेलएक्स' या 'सेल वाई'? – Joseph

+0

आप 'i' और' cellY' जोड़ने की कोशिश कर रहे हैं। आप यह देखने के लिए जांच कर रहे हैं कि 'cellX' एक पूर्णांक है, लेकिन आप कभी भी 'cellY' –

+0

सेल्सियस की जांच नहीं करते हैं, बहुत खेद है। – styke

उत्तर

5

वहाँ कर सकते हैं दो कारणों से हो सकता है:

  1. जावास्क्रिप्ट चर में क्यों अपने अच्छेसे पहले int पार्स करने के लिए ढीला प्रकार है कि के हैंअंकगणितीय ऑपरेशन।

    कोशिश:

    console.log(game.cells[parseInt(i,10) + parseInt(grid.cellsY,10)]); 
    
  2. आप एक सरणी का उपयोग करने की कोशिश कर रहे हैं, तो आप अपने सरणी में है या नहीं की जाँच करने के लिए कि क्या parseInt(i,10) + parseInt(grid.cellsY,10) सूचकांक मौजूद जरूरत है।

+1

यह शायद एक टाइपो या एक शब्दकोष मुद्दा है लेकिन मैं समझ नहीं पा रहा हूं कि "जावास्क्रिप्ट चर में डिफ़ॉल्ट रूप से एक int" नहीं है। एक जावास्क्रिप्ट वैरिएबल प्रकार जो भी आप इसे आवंटित करते हैं। –

+2

जावास्क्रिप्ट चर टाइप नहीं किए गए हैं।और चूंकि संख्याओं को जोड़ने और तारों को संयोजित करने के लिए '+' का उपयोग किया जाता है, इसलिए अतिरिक्त प्रदर्शन को स्पष्ट करने से पहले संख्याओं को स्पष्ट रूप से परिवर्तित करना एक अच्छा विचार है। – Blazemonger

+0

धन्यवाद दोस्तों ... अद्यतन पोस्ट :) –

संबंधित मुद्दे