आपका काम एक पैरामीटरयुक्त द्वीप के मॉडल को प्रोग्राम करना है जिसमें स्थानों की एक सरणी होती है (उदाहरण के लिए, एक 100x20 मैट्रिक्स)। स्थानों को पौधों और जानवरों से आबाद किया जाएगा। जानवर कर सकते हैं:

  • पौधों और/या अन्य जानवरों को खाएं (यदि उनके स्थान में उपयुक्त भोजन है),
  • ले जाएँ (पड़ोसी स्थानों पर),
  • नस्ल (यदि किसी स्थान पर दो प्रकार के मौजूद हैं),
  • भूख से मरना या खा जाना।

ऊप

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

यहाँ आपको क्या करना है:

1. वर्ग पदानुक्रम बनाएँ:

  • मांसाहारी : भेड़िया , बोआ , लोमड़ी , भालू , चील

  • शाकाहारी : घोड़ा , हिरण , खरगोश , चूहा , बकरी , भेड़ , सूअर , भैंस , बत्तख , कमला

  • पौधे

नीचे दी गई तालिका से पता चलता है कि एक जानवर के "भोजन" खाने की कितनी संभावना है यदि वह "भोजन" के समान स्थान पर है। आइए उस स्थिति को देखें जहां "भेड़िया खरगोश को खाता है"। तालिका में संख्या 60 है। इसका मतलब है कि अगर एक भेड़िया और खरगोश एक ही स्थान पर हैं, तो 60% संभावना है कि भेड़िया खरगोश को खा जाएगा। आपको एक बहुप्रचारित यादृच्छिक संख्या जनरेटर का उपयोग करने की आवश्यकता है ।

भेड़िया बीओए लोमड़ी भालू गरुड़ घोड़ा हिरन खरगोश चूहा बकरी भेड़ सूअर भैंस बत्तख कमला पौधे
भेड़िया - 0 0 0 0 10 15 60 80 60 70 15 10 40 0 0
बीओए 0 - 15 0 0 0 0 20 40 0 0 0 0 10 0 0
लोमड़ी 0 0 - 0 0 0 0 70 90 0 0 0 0 60 40 0
भालू 0 80 0 - 0 40 80 80 90 70 70 50 20 10 0 0
गरुड़ 0 0 10 0 - 0 0 90 90 0 0 0 0 80 0 0
घोड़ा 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 100
हिरन 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 100
खरगोश 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 100
चूहा 0 0 0 0 0 0 0 0 - 0 0 0 0 0 90 100
बकरी 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 100
भेड़ 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 100
सूअर 0 0 0 0 0 0 0 0 50 0 0 - 0 0 90 100
भैंस 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 100
बत्तख 0 0 0 0 0 0 0 0 0 0 0 0 0 - 90 100
कमला 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 100

पशु विशेषताएं:

वजन प्रति जानवर, किग्रा प्रति स्थान इस प्रजाति के जानवरों की अधिकतम संख्या अधिकतम गति (स्थान की संख्या) प्रति मोड़ पशु को पूरी तरह से खिलाने के लिए कितने किलोग्राम भोजन की आवश्यकता होती है
भेड़िया 50 30 3 8
बीओए 15 30 1 3
लोमड़ी 8 30 2 2
भालू 500 5 2 80
गरुड़ 6 20 3 1
घोड़ा 400 20 4 60
हिरन 300 20 4 50
खरगोश 2 150 2 0.45
चूहा 0.05 500 1 0.01
बकरी 60 140 3 10
भेड़ 70 140 3 15
सूअर 400 50 2 50
भैंस 700 10 3 100
बत्तख 1 200 4 0.15
कमला 0.01 1000 0 0
पौधे 1 200 लागू नहीं लागू नहीं

2. एक जानवर के पास खाने , प्रजनन करने और चलने की दिशा चुनने के तरीके होने चाहिए ।

3. आप खाने की विधि को शाकाहारी और मांसाहारी वर्गों में लागू कर सकते हैं। लेकिन सावधान रहें, शाकाहारी बत्तख कैटरपिलर खाती है ।

4. विशिष्ट प्रजातियों का प्रतिनिधित्व करने वाली विशिष्ट कक्षाओं में, आप जानवर की विशेषताओं के अनुरूप सभी विधियों को संशोधित कर सकते हैं।

5. आपको कम से कम 10 शाकाहारी प्रजातियाँ और 5 मांसाहारी प्रजातियाँ बनाने की आवश्यकता है (आइटम 1 में वर्णित)।

बहु सूत्रण

बेशक, पूरे कार्यक्रम को केवल लूप का उपयोग करके एक धागे पर लिखना संभव है। लेकिन हमें मल्टीथ्रेडिंग के साथ अभ्यास करने की आवश्यकता है, इसलिए आपको थ्रेड्स और थ्रेड पूल का उपयोग करना चाहिए। पौधों की वृद्धि और पशु क्रियाओं के लिए आवर्ती कार्यों को चलाने के लिए एक अनुसूचित पूल, और सिस्टम आँकड़े प्रदर्शित करने के लिए एक कार्य। वैकल्पिक रूप से, आप पौधों या जानवरों के साथ किसी कार्य में आँकड़े प्रदर्शित कर सकते हैं। एनिमल एक्शन टास्क के अंदर, आप एक और थ्रेड पूल का उपयोग कर सकते हैं - एक सामान्य। आप तय करें कि इस पूल को कौन से कार्य सौंपे जाएं।

कार्य के अनिवार्य भाग:

  • पशु पदानुक्रम (OOP)
  • पशु व्यवहार
  • बहु सूत्रण
  • प्रत्येक पुनरावृत्ति पर द्वीप की स्थिति पर आँकड़े (कंसोल पर प्रदर्शित)

कार्य के वैकल्पिक भाग:

  • मापदंडों को एक ही स्थान पर प्रदर्शित करें ताकि सिमुलेशन को प्रबंधित करना आसान हो
  • कंसोल आँकड़ों के बजाय ग्राफिक्स। आप कंसोल, या जावाएफएक्स, स्विंग में या तो स्यूडोग्राफिक्स का उपयोग कर सकते हैं ...
  • अन्य कारक जोड़ें जो अनुकरण को प्रभावित कर सकते हैं:
    • अधिक प्रकार के जानवर
    • विभिन्न प्रकार के पौधे
    • जानवरों के एक समूह के लिए कस्टम व्यवहार (उदाहरण के लिए, भेड़िये शिकार करते हैं और अलग-अलग होने के बजाय झुंड के रूप में चलते हैं)
    • जमीनी इलाका, जिसमें एक नदी भी शामिल है जो कुछ जानवरों की आवाजाही को बाधित करती है

सेटिंग्स के बारे में (यदि आप उन्हें जोड़ने का निर्णय लेते हैं)

कार्यक्रम शुरू करते समय विभिन्न सेटिंग्स को बदलने के लिए इसे सुविधाजनक बनाने के लिए (द्वीप का आकार, एक स्थान पर पौधों / जानवरों की अधिकतम स्वीकार्य संख्या, एक विशेष प्रकार के जानवर के चलने की संभावना, विभिन्न प्रजातियों में संतानों की संख्या, आदि) ।), आपको इन सभी सेटिंग्स को कहीं और रखना होगा, उदाहरण के लिए, एक अलग वर्ग में। निम्नलिखित सेटिंग्स को बदलना संभव होना चाहिए:

  • द्वीप का आकार
  • सिमुलेशन में एक घड़ी चक्र की अवधि
  • सिमुलेशन की शुरुआत में प्रत्येक प्रजाति के जानवरों की संख्या
  • अनुकरण रोकने की शर्त (उदाहरण के लिए सभी जानवर मर गए हैं)
  • प्रत्येक प्रकार के जानवर के लिए संतानों की संख्या

यूनिकोड (यदि आप स्यूडोग्राफिक्स करने का निर्णय लेते हैं)

आप जानवरों को चित्रित करने के लिए यूनिकोड वर्णों का उपयोग कर सकते हैं: 🐃, 🐻, 🐎, 🦌, 🐗, 🐑, 🐐, 🐺, 🐍, 🦊, 🦅, 🐇, 🦆, 🐁, 🐛।