तुमचे कार्य म्हणजे पॅरामीटराइज्ड बेटाचे मॉडेल प्रोग्राम करणे ज्यामध्ये स्थानांच्या अॅरेचा समावेश आहे (उदाहरणार्थ, 100x20 मॅट्रिक्स). ठिकाणे वनस्पती आणि प्राण्यांनी भरलेली असतील. प्राणी हे करू शकतात:

  • वनस्पती आणि/किंवा इतर प्राणी खा (जर त्यांच्या ठिकाणी योग्य अन्न असेल तर),
  • हलवा (शेजारच्या ठिकाणी),
  • जाती (एखाद्या ठिकाणी दोन प्रकारचे असल्यास),
  • भुकेने मरणे किंवा खाणे.

OOP

तुमचा यजमान प्राणी तयार करताना, तुम्ही शक्य तितका OOP वापरला पाहिजे: सर्व प्रजाती एका अमूर्त प्राणी वर्गातून मिळतील, ज्यामध्ये सर्व प्राण्यांसाठी समान वर्तन असेल. विशिष्ट प्राण्यांमध्ये त्यांचे खाद्य, पुनरुत्पादन, हालचाल इत्यादी संदर्भात विशिष्ट वैशिष्ट्ये असल्यास, त्यांना प्राणी वर्गाच्या पद्धती ओव्हरराइड करणे आवश्यक आहे.

तुम्हाला काय करण्याची आवश्यकता आहे ते येथे आहे:

1. वर्ग पदानुक्रम तयार करा:

  • मांसाहारी : लांडगा , बोआ , कोल्हा , अस्वल , गरुड

  • शाकाहारी प्राणी : घोडा , हरीण , ससा , उंदीर , शेळी , मेंढी , वराह , म्हैस , बदक , सुरवंट

  • वनस्पती

खालील सारणी दर्शविते की एखादा प्राणी "अन्न" सारख्याच ठिकाणी असल्यास "अन्न" खाण्याची किती शक्यता आहे. "लांडगा ससा खातो" अशी परिस्थिती पाहू या. टेबलमधील संख्या 60 आहे. याचा अर्थ लांडगा आणि ससा एकाच ठिकाणी असल्यास, लांडगा ससा खाण्याची 60% शक्यता असते. तुम्हाला मल्टीथ्रेडेड यादृच्छिक क्रमांक जनरेटर वापरण्याची आवश्यकता आहे .

लांडगा बोआ कोल्हा अस्वल गरुड घोडा हरण ससा उंदीर शेळी मेंढी डुक्कर म्हैस बदक सुरवंट वनस्पती
लांडगा - 0 0 0 0 10 १५ ६० 80 ६० 70 १५ 10 40 0 0
बोआ 0 - १५ 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 ६० 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 ३० 3 8
बोआ १५ ३० 3
कोल्हा 8 ३० 2 2
अस्वल ५०० 2 80
गरुड 6 20 3
घोडा 400 20 4 ६०
हरण 300 20 4 50
ससा 2 150 2 ०.४५
उंदीर ०.०५ ५०० ०.०१
शेळी ६० 140 3 10
मेंढी 70 140 3 १५
डुक्कर 400 50 2 50
म्हैस ७०० 10 3 100
बदक 200 4 0.15
सुरवंट ०.०१ 1000 0 0
वनस्पती 200 N/A N/A

2. प्राण्याकडे खाणे , प्रजनन करणे आणि हालचालीसाठी दिशा निवडणे या पद्धती असणे आवश्यक आहे .

3. तुम्ही शाकाहारी आणि मांसाहारी वर्गात खाण्याची पद्धत लागू करू शकता. पण सावध रहा, शाकाहारी बदक सुरवंट खातात .

4. विशिष्ट प्रजातींचे प्रतिनिधित्व करणाऱ्या विशिष्ट वर्गांमध्ये, आपण प्राण्यांच्या वैशिष्ट्यांनुसार सर्व पद्धती सुधारू शकता.

5. तुम्हाला किमान 10 शाकाहारी प्रजाती आणि 5 मांसाहारी प्रजाती (आयटम 1 मध्ये वर्णन केलेल्या) तयार करणे आवश्यक आहे.

मल्टीथ्रेडिंग

अर्थात, केवळ लूप वापरून संपूर्ण प्रोग्राम एका थ्रेडवर लिहिणे शक्य आहे. परंतु आम्हाला मल्टीथ्रेडिंगसह कार्य करण्याचा सराव आवश्यक आहे, म्हणून तुम्ही थ्रेड आणि थ्रेड पूल वापरणे आवश्यक आहे. वनस्पतींच्या वाढीसाठी आणि प्राण्यांच्या क्रियांसाठी आवर्ती कार्ये चालविण्यासाठी एक अनुसूचित पूल आणि सिस्टम आकडेवारी प्रदर्शित करण्यासाठी एक कार्य. वैकल्पिकरित्या, तुम्ही वनस्पती किंवा प्राण्यांसह कार्यामध्ये आकडेवारी प्रदर्शित करू शकता. प्राणी कृती कार्याच्या आत, तुम्ही दुसरा थ्रेड पूल वापरू शकता - एक सामान्य. या पूलला कोणती कामे नियुक्त करायची ते तुम्ही ठरवा.

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

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

कार्याचे पर्यायी भाग:

  • पॅरामीटर्स एकाच ठिकाणी प्रदर्शित करा जेणेकरून सिम्युलेशन व्यवस्थापित करणे सोपे होईल
  • कन्सोल आकडेवारीऐवजी ग्राफिक्स. तुम्ही कन्सोलमध्ये एकतर स्यूडोग्राफिक्स वापरू शकता किंवा JavaFX, स्विंग...
  • सिम्युलेशनवर परिणाम करणारे इतर घटक जोडा:
    • अधिक प्रकारचे प्राणी
    • विविध प्रकारच्या वनस्पती
    • प्राण्यांच्या गटासाठी सानुकूल वर्तन (उदाहरणार्थ, लांडगे शिकार करतात आणि स्वतंत्रपणे जाण्याऐवजी पॅक म्हणून हलतात)
    • काही प्राण्यांच्या हालचालीत अडथळा आणणाऱ्या नदीसह भूप्रदेश

सेटिंग्जबद्दल (तुम्ही त्यांना जोडायचे ठरवले तर)

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

  • बेटाचा आकार
  • सिम्युलेशनमधील घड्याळ चक्राचा कालावधी
  • सिम्युलेशनच्या सुरुवातीला प्रत्येक प्रजातीच्या प्राण्यांची संख्या
  • सिम्युलेशन थांबवण्याची अट (उदा. सर्व प्राणी मरण पावले आहेत)
  • प्रत्येक प्रकारच्या प्राण्यांसाठी संततीची संख्या

युनिकोड (तुम्ही स्यूडोग्राफिक्स करायचे ठरवल्यास)

प्राण्यांचे चित्रण करण्यासाठी तुम्ही युनिकोड वर्ण वापरू शकता: 🐃, 🐻, 🐎, 🦌, 🐗, 🐑, 🐐, 🐺, 🐍, 🦊, 🦅, 🐇, 🦆, 🐇.