2012-09-16 19 views
5

विशिष्ट विशिष्टता यहां। मेरी पहली प्रोग्रामिंग कक्षा के लिए सभी शक्तिशाली टिक-टैक-टो ग्रिड बनाने की कोशिश कर रहा है।जावा - मुख्य बॉक्स में 9 बॉक्स जोड़ना

मैं एपीआई दस्तावेज से ऐसा करने के लिए समझ में आता है, लेकिन अब तक कोई भाग्य नहीं है।

मुझे लगता है कि मेरी सबसे बड़ी समस्या समझ में नहीं आ रही है कि तरीकों और पैरामीटर का उपयोग कैसे करें, और कुल रूकी होने पर, लेकिन मैं वहां जाऊंगा।

यह है कि मैं क्या है:

import java.awt.Rectangle; 

public class TicTacToe { 
    public static void main (String[] args) { 
     new Rectangle (0,0,30,30); //create new box 
     Rectangle box = new Rectangle (0,0,30,30); // tying the box to a variable 

     box.add (Rectangle 0,0,10,10); /* error box can onot be resolved to a variable*/ 

    } 
} 

तो मेरे सवाल का कैसे मैं इस बड़े बॉक्स के आकार के 9 बक्से चौड़ाई 10 ऊंचाई 10 में शामिल कर सकता है? जब मैं इन बक्से को जोड़ता हूं तो मुझे नए एक्सई आयामों को भी इनपुट करना होगा?

सहायता के लिए धन्यवाद!

+1

कोड की आपकी पहली पंक्ति कुछ भी उपयोगी नहीं करती है - आप इसे हटा सकते हैं। बड़ी समस्या यह है कि आयताकार एक बहुत ही सरल वर्ग है जो केवल निर्देशांक रखता है - वास्तव में, एक्स, वाई, चौड़ाई, और ऊंचाई। इसमें अन्य आयतों को पकड़ने की कोई क्षमता नहीं है। इसके लिए आपको अपनी कक्षा लिखनी होगी। आपको शायद वापस जाना चाहिए और अपने नोट्स देखना चाहिए, या आगे के मार्गदर्शन के लिए अपने प्रशिक्षक से पूछना चाहिए। – GreyBeardedGeek

+1

ध्यान दें कि एक आयताकार ऐसा लगता है कि इसमें एक आयताकार है, लेकिन केवल इसके बाहर और खोखले हो। जब ग्रेबर्डेड 'कोड की आपकी पहली पंक्ति' को संदर्भित करता है, तो उसका अर्थ है: 'नया आयताकार (0,0,30,30); // नया बॉक्स बनाएं '। आप जो कर रहे हैं वह 2 आयतों का निर्माण कर रहा है, जिनमें से एक को एक चर के लिए आवंटित किया गया है, दूसरे को केवल अनदेखा किया गया है। वह बॉक्स.डैड लाइन अमान्य जावा कोड है - यह 'box.add (box2) होना चाहिए; या इसी तरह (हालांकि [आयताकार पर जोड़ें विधि] (http://docs.oracle.com/javase/1.4। 2/डॉक्स/एपीआई/जावा/awt/Rectangle.html # जोड़ें (java.awt.Rectangle)) क्षेत्र के बारे में उप विभाजन या कंटेनर नहीं है) –

उत्तर

2

मुझे लगता है कि आपका लक्ष्य यहां एक सरल कमांड लाइन प्रोग्राम लिखना है, न कि उपयोगकर्ता इंटरफ़ेस वाला। सही बात? यदि ऐसा है, तो आपको कंप्यूटर दृष्टिकोण से समस्या के बारे में सोचना होगा। जबकि एक टिक टैक पैर बोर्ड एक कंप्यूटर के लिए 9 वर्गों का एक सेट है, एक कंप्यूटर के लिए, यह सिर्फ 9 चर का एक सेट है, जिनमें से प्रत्येक में 3 संभावित राज्य हो सकते हैं: 1) एक एक्स, 2 से भरे हुए) ओ, और 3) खुला। तो आपके बोर्ड को उदाहरण के लिए, 9 पूर्णांक की एक सरणी के रूप में प्रदर्शित किया जा सकता है।

इस तरह:

int[] board = new int[9]; 

प्रत्येक वर्ग के राज्य का ट्रैक रखने के लिए, आपको कुछ स्थिरांक की घोषणा कर सकते हैं:

static final int OPEN = 0; 
static final int FILLED_WITH_X = 1; 
static final int FILLED_WITH_O = 2; 

अपने कार्यक्रम सिर्फ बोर्ड सरणी में हेरफेर कर सकते हैं के बाकी, बदल रहा है इसके राज्य (यानी इसके तत्वों के मूल्य) आवश्यकतानुसार। आप कमांड लाइन पर इस बोर्ड के स्ट्रिंग प्रस्तुति को भी आउटपुट कर सकते हैं।

आयत वर्ग का उपयोग करने का एकमात्र कारण होगा यदि आप स्क्रीन पर बोर्ड को आकर्षित करने की योजना बनाते हैं। उस स्थिति में, मैं एक सफेद पृष्ठभूमि के साथ एक बड़ा आयत बनाउंगा और स्क्रीन पर खींचूंगा। फिर मैं इसके ऊपर 9 छोटे आयत खींचूंगा, प्रत्येक एक अंधेरे पृष्ठभूमि के साथ, आपको अपना गेम ग्रिड देगा। आखिर में मैंने पहले चर्चा की board सरणी की स्थिति के आधार पर उचित स्थानों पर एक्स और ओ (सर्किल और क्रॉस लाइन सेगमेंट) खींचा होगा। यहां महत्वपूर्ण बात यह है कि माता-पिता में आयताकार वस्तुएं रखने की आवश्यकता नहीं है। वास्तव में, आपको केवल उन प्रत्येक के लिए निर्देशांक (4 दशमलव संख्या) के सेट को समझने की आवश्यकता होती है, जिन्हें आप आकर्षित करना चाहते हैं और फिर इच्छित विधि पर स्क्रीन पर एक आयताकार खींचने वाली विधि लिखें।

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