งานของคุณคือตั้งโปรแกรมแบบจำลองของเกาะที่มีพารามิเตอร์ซึ่งประกอบด้วยอาร์เรย์ของตำแหน่ง (เช่น เมทริกซ์ 100x20) สถานที่จะเต็มไปด้วยพืชและสัตว์ สัตว์สามารถ:
- กินพืชและ/หรือสัตว์อื่น ๆ (หากถิ่นนั้นมีอาหารที่เหมาะสม)
- ย้าย (ไปยังตำแหน่งใกล้เคียง)
- สายพันธุ์ (หากมีอยู่สองชนิดในสถานที่นั้น)
- หิวตายหรือถูกกิน
อปท
เมื่อสร้างโฮสต์ของสัตว์ คุณควรใช้ OOP มากที่สุดเท่าที่จะเป็นไปได้: ทุกสายพันธุ์จะมาจากคลาสสัตว์ที่เป็นนามธรรม ซึ่งจะมีพฤติกรรมที่เหมือนกันกับสัตว์ทุกตัว หากสัตว์บางชนิดมีคุณสมบัติเฉพาะเกี่ยวกับการให้อาหาร การสืบพันธุ์ การเคลื่อนไหว ฯลฯ พวกมันจำเป็นต้องแทนที่วิธีการของสัตว์ประเภทนั้น
นี่คือสิ่งที่คุณต้องทำ:
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 | 1,000 | 0 | 0 |
พืช | 1 | 200 | ไม่มีข้อมูล | ไม่มีข้อมูล |
2. สัตว์ต้องมีวิธีการกินการผสมพันธุ์และการเลือกทิศทางในการเคลื่อนที่
3. คุณสามารถใช้ วิธี การกินในชั้นเรียนสัตว์กินพืชและสัตว์กินเนื้อ แต่ระวังเป็ด กิน พืชกินหนอน
4. ในคลาสเฉพาะที่แสดงถึงสายพันธุ์เฉพาะ คุณสามารถปรับเปลี่ยนวิธีการทั้งหมดเพื่อให้เหมาะกับลักษณะของสัตว์
5. คุณต้องสร้างสัตว์กินพืชอย่างน้อย 10 ชนิดและสัตว์กินเนื้อ 5 ชนิด (อธิบายไว้ในข้อ 1)
มัลติเธรด
แน่นอนว่าเป็นไปได้ที่จะเขียนโปรแกรมทั้งหมดบนเธรดเดียวโดยใช้ลูปเท่านั้น แต่เราต้องฝึกฝนการทำงานกับมัลติเธรด ดังนั้นคุณต้องใช้เธรดและเธรดพูล หนึ่ง กลุ่ม ตามกำหนดการเพื่อรันงานที่เกิดซ้ำสำหรับการเติบโตของพืชและการกระทำของสัตว์ และงานเพื่อแสดงสถิติของระบบ หรือคุณสามารถแสดงสถิติในงานกับพืชหรือสัตว์ ในงานการกระทำของสัตว์ คุณสามารถใช้เธรดพูลอื่น — อันธรรมดา คุณเป็นผู้ตัดสินใจว่าจะมอบหมายงานใดให้กับพูลนี้
ส่วนบังคับของงาน:
ส่วนเพิ่มเติมของงาน:
|
เกี่ยวกับการตั้งค่า (หากคุณตัดสินใจที่จะเพิ่ม)
เพื่อให้สะดวกในการเปลี่ยนการตั้งค่าต่างๆ เมื่อเริ่มโปรแกรม (ขนาดเกาะ, จำนวนพืช/สัตว์สูงสุดที่อนุญาตในที่เดียว, ความน่าจะเป็นที่สัตว์ประเภทใดประเภทหนึ่งจะเคลื่อนไหว, จำนวนลูกหลานในสายพันธุ์ต่างๆ ฯลฯ .) คุณต้องตั้งค่าเหล่านี้ทั้งหมด ตัวอย่างเช่น ในชั้นเรียนแยกต่างหาก ควรเปลี่ยนการตั้งค่าต่อไปนี้:
- ขนาดเกาะ
- ระยะเวลาของรอบนาฬิกาในการจำลอง
- จำนวนสัตว์แต่ละชนิดเมื่อเริ่มจำลอง
- เงื่อนไขการหยุดจำลอง (เช่น สัตว์ตายหมดแล้ว)
- จำนวนลูกของสัตว์แต่ละชนิด
Unicode (หากคุณตัดสินใจที่จะทำ pseudographics)
คุณสามารถใช้อักขระ Unicode เพื่ออธิบายสัตว์: 🐃, 🐻, 🐎, 🦌, 🐗, 🐑, 🐐, 🐺, 🐍, 🦊, 🦅, 🐇, 🦆, 🐁, 🐛
GO TO FULL VERSION