This shows you the differences between two versions of the page.
|
poo-ca-cd:teme:2025:8e211bfe-f6eb-467c-9e54-f8e6df4c1535:tema-1 [2025/11/04 19:29] ioana.tudorache2507 [Comenzi pentru TerraBot] |
poo-ca-cd:teme:2025:8e211bfe-f6eb-467c-9e54-f8e6df4c1535:tema-1 [2025/11/18 23:58] (current) iulia.popescu2012 |
||
|---|---|---|---|
| Line 6: | Line 6: | ||
| * **Consultanți & Revizori:** [[sorinabuf@gmail.com | Sorina-Anamaria Buf]], [[stefancocioran@gmail.com | Ștefan Cocioran]], [[miculuis1@gmail.com | Florian-Luis Micu]] | * **Consultanți & Revizori:** [[sorinabuf@gmail.com | Sorina-Anamaria Buf]], [[stefancocioran@gmail.com | Ștefan Cocioran]], [[miculuis1@gmail.com | Florian-Luis Micu]] | ||
| * **Data publicării BETA testing**: 21.10.2025 | * **Data publicării BETA testing**: 21.10.2025 | ||
| - | * **Deadline HARD BETA testing**: 10.11.2025 | + | * **Deadline HARD BETA testing**: 15.11.2025, ora 10:00 |
| * **Data publicării oficiale**: 10.11.2025 | * **Data publicării oficiale**: 10.11.2025 | ||
| * **Deadline HARD oficial**: 30.11.2025 | * **Deadline HARD oficial**: 30.11.2025 | ||
| Line 17: | Line 17: | ||
| * update formulă normalizare scor calitate aer și sol - 27 oct. 2025 | * update formulă normalizare scor calitate aer și sol - 27 oct. 2025 | ||
| * adăugat explicații scanObject si mișcare animal - 28 oct. 2025 | * adăugat explicații scanObject si mișcare animal - 28 oct. 2025 | ||
| - | * adăugat explicații exemplu simulare, toxicitate aer, improveEnvironment, changeWeatherConditions - 4 nov. 2025 | + | * adăugat explicații exemplu simulare, toxicitate aer, improveEnvironment, changeWeatherConditions, rechargeBattery, entitate Water, interacțiuni între entități - 4 nov. 2025 |
| + | * adăugat explicații Algoritm hrănire animal - 10 nov. 2025 | ||
| + | * adăugat explicații Algoritm hrănire animal - 13 nov. 2025 | ||
| + | * adăugat explicații desertStorm pentru printEnvConditions - 18 nov. 2025 | ||
| * schelet | * schelet | ||
| * update refs t3, t4 - 26 oct. 2025 | * update refs t3, t4 - 26 oct. 2025 | ||
| * update TestRunner + adăugat t11-16 - 26 oct. 2025 | * update TestRunner + adăugat t11-16 - 26 oct. 2025 | ||
| * update t8 + ref - 27 oct. 2025 | * update t8 + ref - 27 oct. 2025 | ||
| + | * update refs + clasa WaterInput + t17,18 - 4 nov. 2025 | ||
| + | * adăugat teste complexe t19-21 - 4 nov. 2025 | ||
| + | * patch schelet - 8 nov. 2025 | ||
| + | * update refs t15, 19-21 - 9 nov.2025 | ||
| + | * update t20,21 + ref t20 - 10 nov.2025 | ||
| + | * update t19 + refs t8,19 - 12 nov.2025 | ||
| + | * update refs t8,19,21 - 13 nov.2025 | ||
| * teste | * teste | ||
| * adăugat t11-16 - 26 oct. 2025 | * adăugat t11-16 - 26 oct. 2025 | ||
| * update t8 - 27 oct. 2025 | * update t8 - 27 oct. 2025 | ||
| + | * update t5,7-11, 16 + adăugat t17,18 - 4 nov. 2025 | ||
| + | * adăugat teste complexe t19-21 - 4 nov. 2025 | ||
| + | * update refs t15, 19-21 (stergere planta) - 9 nov.2025 | ||
| + | * update t20,21 + ref t20 - 10 nov.2025 | ||
| + | * update t19 + refs t8,19 - 12 nov.2025 | ||
| + | * update refs t8,19,21 - 13 nov.2025 | ||
| * ** Schelet și teste: ** [[https://github.com/oop-pub/schelet-tema1-2025]] | * ** Schelet și teste: ** [[https://github.com/oop-pub/schelet-tema1-2025]] | ||
| Line 276: | Line 292: | ||
| - se va mânca animalul de pe pătrățica curentă dacă există: | - se va mânca animalul de pe pătrățica curentă dacă există: | ||
| * se va crește masa **animalului curent**: ''animalMass += preyMass''. | * se va crește masa **animalului curent**: ''animalMass += preyMass''. | ||
| - | * entitatea **Soil** de pe pătrățica curentă va primi ''+0.5 organicMatter''. | + | * la **urmatoarea interactiune Animal -> Soil**, entitatea **Soil** de pe pătrățica unde se afla animalul la momentul interactiunii va primi ''+0.5 organicMatter''. |
| * **animalul mâncat** va dispărea de pe hartă. | * **animalul mâncat** va dispărea de pe hartă. | ||
| - dacă nu există un animal: | - dacă nu există un animal: | ||
| Line 284: | Line 300: | ||
| * se va actualiza masa **apei**: ''waterMass -= waterToDrink''. | * se va actualiza masa **apei**: ''waterMass -= waterToDrink''. | ||
| * se va crește masa **animalului curent**: ''animalMass += (waterToDrink + plantMass)''. | * se va crește masa **animalului curent**: ''animalMass += (waterToDrink + plantMass)''. | ||
| - | * entitatea **Soil** de pe pătrățica curentă va primi ''+0.8 organicMatter''. | + | * la **urmatoarea interactiune Animal -> Soil**, entitatea **Soil** de pe pătrățica unde se afla animalul la momentul interactiunii va primi ''+0.8 organicMatter''. |
| * se va mânca entitatea **Water** **sau** **Plant**, în funcție de care entitate este deblocată prima de robot: | * se va mânca entitatea **Water** **sau** **Plant**, în funcție de care entitate este deblocată prima de robot: | ||
| * dacă se va mânca planta: | * dacă se va mânca planta: | ||
| * **planta** va muri. | * **planta** va muri. | ||
| * se va crește masa **animalului curent**: ''animalMass += plantMass''. | * se va crește masa **animalului curent**: ''animalMass += plantMass''. | ||
| - | * entitatea **Soil** de pe pătrățica curentă va primi ''+0.5 organicMatter''. | + | * la **urmatoarea interactiune Animal -> Soil**, entitatea **Soil** de pe pătrățica unde se afla animalul la momentul interactiunii va primi ''+0.5 organicMatter''. |
| * dacă se va bea apă: | * dacă se va bea apă: | ||
| * se va calcula **nivelul de apă de băut**: ''waterToDrink = Math.min(animalMass * intakeRate, waterMass), intakeRate = 0.08''. | * se va calcula **nivelul de apă de băut**: ''waterToDrink = Math.min(animalMass * intakeRate, waterMass), intakeRate = 0.08''. | ||
| * se va actualiza masa **apei**: ''waterMass -= waterToDrink''. | * se va actualiza masa **apei**: ''waterMass -= waterToDrink''. | ||
| * se va crește masa **animalului curent**: ''animalMass += waterToDrink''. | * se va crește masa **animalului curent**: ''animalMass += waterToDrink''. | ||
| - | * entitatea **Soil** de pe pătrățica curentă va primi ''+0.5 organicMatter''. | + | * la **urmatoarea interactiune Animal -> Soil**, entitatea **Soil** de pe pătrățica unde se afla animalul la momentul interactiunii va primi ''+0.5 organicMatter''. |
| * dacă **nicio** entitate de pe pătrățica curentă nu a fost deblocată la un pas anterior sau prezent de către robot nu se va mânca nimic. | * dacă **nicio** entitate de pe pătrățica curentă nu a fost deblocată la un pas anterior sau prezent de către robot nu se va mânca nimic. | ||
| * în această situație **nu** se va produce îngrășământ. | * în această situație **nu** se va produce îngrășământ. | ||
| Line 301: | Line 317: | ||
| <note tip> | <note tip> | ||
| - | Un animal consumă doar entitățile deblocate de robot; animalele străine sunt mâncate imediat dacă este cazul. | + | Un animal consumă doar entitățile deblocate de robot. |
| + | |||
| + | Însă, animalele carnivore și parazite pot să se hrănească și cu animale nescanate. | ||
| </note> | </note> | ||
| Line 358: | Line 376: | ||
| | Plant | Contribuie la creștere | +0.2 la fiecare iterație | | | Plant | Contribuie la creștere | +0.2 la fiecare iterație | | ||
| + | <note important> | ||
| + | În cazul în care animalul consumă toata cantitatea din sursa de apă, atunci aceasta **va fi eliminată de pe hartă**. | ||
| + | |||
| + | </note> | ||
| \\ | \\ | ||
| Line 557: | Line 579: | ||
| <note important> | <note important> | ||
| **Toate interacțiunile cu Plant, Animal și Water sunt posibile doar după ce TerraBot a scanat entitatea respectivă.** Abia după scanare pot începe actualizările automate asociate acelei entități. | **Toate interacțiunile cu Plant, Animal și Water sunt posibile doar după ce TerraBot a scanat entitatea respectivă.** Abia după scanare pot începe actualizările automate asociate acelei entități. | ||
| + | </note> | ||
| + | |||
| + | <note important> | ||
| + | Dacă o entitate este eliminată de pe hartă, însă **a fost scanată și salvată anterior în inventarul robotului**, aceasta va rămâne în inventar în continuare. | ||
| </note> | </note> | ||
| Line 865: | Line 891: | ||
| Mesaje posibile pentru această comandă: | Mesaje posibile pentru această comandă: | ||
| - | * <code bash>"The simulation was paused until charging is finished."</code> | + | * <code bash>"Robot battery is charging."</code> |
| * <code bash>"ERROR: Robot still charging. Cannot perform action"</code> | * <code bash>"ERROR: Robot still charging. Cannot perform action"</code> | ||
| * <code bash>"ERROR: Simulation not started. Cannot perform action"</code> | * <code bash>"ERROR: Simulation not started. Cannot perform action"</code> | ||
| Line 888: | Line 914: | ||
| { | { | ||
| "command": "rechargeBattery", | "command": "rechargeBattery", | ||
| - | "message": "The simulation was paused until charging is finished.", | + | "message": "Robot battery is charging.", |
| "timestamp": 10 | "timestamp": 10 | ||
| } | } | ||
| Line 1204: | Line 1230: | ||
| * componenta aerului | * componenta aerului | ||
| + | <note important> | ||
| + | Se dorește monitorizarea furtunilor de nisip, astfel încât pentru tipul de aer **DesertAir**, va apărea în structura componentei aerului și **câmpul cu valori booleene "desertStorm"**, afectat de succesul comenzii **changeWeatherConditions**. În general, valoarea acestui câmp va fi **false**, dar în cazul declanșării furtunilor de nisip, pentru 2 iterații valoarea devine **true**. | ||
| + | |||
| + | Exemplu: | ||
| + | <spoiler Click pentru exemplu apariție desertStorm> | ||
| + | <code json> | ||
| + | { | ||
| + | "command" : "printEnvConditions", | ||
| + | "output" : { | ||
| + | ... | ||
| + | "air" : { | ||
| + | "type" : "DesertAir", | ||
| + | "name" : "Dry Desert Air", | ||
| + | "mass" : 900000.0, | ||
| + | "humidity" : 60.0, | ||
| + | "temperature" : 15.0, | ||
| + | "oxygenLevel" : 20.0, | ||
| + | "airQuality" : 3.0, | ||
| + | "desertStorm" : true | ||
| + | } | ||
| + | }, | ||
| + | "timestamp" : 22 | ||
| + | }, | ||
| + | </code> | ||
| + | </spoiler> | ||
| + | </note> | ||
| Mesaje posibile pentru această comandă: | Mesaje posibile pentru această comandă: | ||