Spaces:
Sleeping
Sleeping
| ``` | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ HARVESTER AI - COMPARAISON AVANT/APRรS โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ AVANT CORRECTION - Harvester reste immobile | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โโโโโโโโโโโโโโโโโโโ | |
| โ HQ (Spawn) โ | |
| โ Position: โ | |
| โ (200, 200) โ | |
| โโโโโโโโโโฌโโโโโโโโโ | |
| โ Produit Harvester | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Harvester spawnรฉ โ | |
| โ โโ cargo = 0 โ | |
| โ โโ gathering = False โ | |
| โ โโ returning = False โ | |
| โ โโ ore_target = None โ | |
| โ โโ target = (220, 220) [RรSIDUEL!] โ โ | |
| โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โ Tick 1: update_harvester() | |
| โ | |
| โโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Condition de recherche minerai: โ | |
| โ if not gathering AND not target: โ | |
| โ โ | |
| โ not False = True โ โ | |
| โ not (220,220) = False โ โ | |
| โ โ | |
| โ True AND False = FALSE โ โ | |
| โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โ find_nearest_ore() JAMAIS APPELร | |
| โ | |
| โโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Harvester reste IMMOBILE โ | |
| โ โโ ore_target = None โ | |
| โ โโ gathering = False โ | |
| โ โโ target = (220, 220) [BLOQUร] โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โ Ticks 2, 3, 4, 5...โ | |
| โ | |
| ๐ด RESTE IMMOBILE INDรFINIMENT | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ APRรS CORRECTION - Harvester cherche automatiquement | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โโโโโโโโโโโโโโโโโโโ | |
| โ HQ (Spawn) โ | |
| โ Position: โ | |
| โ (200, 200) โ | |
| โโโโโโโโโโฌโโโโโโโโโ | |
| โ Produit Harvester | |
| โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Harvester spawnรฉ โ | |
| โ โโ cargo = 0 โ | |
| โ โโ gathering = False โ | |
| โ โโ returning = False โ | |
| โ โโ ore_target = None โ | |
| โ โโ target = (220, 220) [IGNORร] โ โ | |
| โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โ Tick 1: update_harvester() | |
| โ | |
| โโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Condition de recherche minerai: โ | |
| โ if not gathering AND not ore_target: โ | |
| โ โ | |
| โ not False = True โ โ | |
| โ not None = True โ โ | |
| โ โ | |
| โ True AND True = TRUE โ โ | |
| โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โ find_nearest_ore() APPELร | |
| โ | |
| โโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Minerai trouvรฉ! โ | |
| โ nearest_ore = Position(1200, 800) โ | |
| โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โ Assignation automatique | |
| โ | |
| โโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Harvester activรฉ โ | |
| โ โโ ore_target = (1200, 800) โ โ | |
| โ โโ gathering = True โ โ | |
| โ โโ target = (1200, 800) โ โ | |
| โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โ Ticks 2-50: Mouvement automatique | |
| โ | |
| โโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ ๐ Harvester SE DรPLACE โ | |
| โ Position: (200,200) โ (400,300) โ โ | |
| โ (600,400) โ (800,500) โ โ | |
| โ (1000,600) โ (1200,800) โ โ | |
| โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โ Distance < 20px | |
| โ | |
| โโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ Rรฉcolte automatique โ | |
| โ โโ cargo += 50 (ORE) ou +100 (GEM) โ | |
| โ โโ terrain[y][x] = GRASS โ | |
| โ โโ ore_target = None โ | |
| โโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โ | |
| โ cargo < 180? | |
| โ | |
| โโโโดโโโโ | |
| โ โ | |
| OUI โ โ NON (cargo โฅ 180) | |
| โ โ | |
| Cherche Retourne dรฉpรดt | |
| nouveau returning = True | |
| minerai | |
| (Retour | |
| Tick 1) | |
| โ | |
| Dรฉpose au HQ/Refinery | |
| credits += cargo | |
| cargo = 0 | |
| target = None โ | |
| โ | |
| Retour Tick 1 | |
| (Cherche automatiquement) | |
| ๐ข CYCLE AUTOMATIQUE INFINI โ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๐ TABLEAU COMPARATIF | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| โโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโ | |
| โ รtape โ AVANT (โ) โ APRรS (โ ) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโค | |
| โ Spawn depuis HQ โ target rรฉsiduel โ target rรฉsiduel โ | |
| โ โ โ (mais IGNORร) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโค | |
| โ Condition check โ not target โ not ore_target โ | |
| โ โ = False โ โ = True โ โ | |
| โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโค | |
| โ find_nearest_ore() โ JAMAIS appelรฉ โ Appelรฉ Tick 1 โ | |
| โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโค | |
| โ ore_target assignรฉ โ Non (None) โ Oui (1200, 800) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโค | |
| โ gathering activรฉ โ Non (False) โ Oui (True) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโค | |
| โ Mouvement โ Immobile โ Bouge vers minerai โ | |
| โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโค | |
| โ Rรฉcolte โ Non (bloquรฉ) โ Oui (automatique) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโค | |
| โ Cycle complet โ Non (bloquรฉ) โ Oui (infini) โ | |
| โโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโ | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๐ง CORRECTIONS APPORTรES (Code) | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| Ligne 530 - Nettoyage aprรจs dรฉpรดt: | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| AVANT: | |
| self.game_state.players[unit.player_id].credits += unit.cargo | |
| unit.cargo = 0 | |
| unit.returning = False | |
| unit.gathering = False | |
| unit.ore_target = None | |
| # target pas nettoyรฉ โ | |
| APRรS: | |
| self.game_state.players[unit.player_id].credits += unit.cargo | |
| unit.cargo = 0 | |
| unit.returning = False | |
| unit.gathering = False | |
| unit.ore_target = None | |
| unit.target = None # โ AJOUTร | |
| Lignes 571-577 - Condition de recherche: | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| AVANT: | |
| if not unit.gathering and not unit.target: # โ Vรฉrifie target | |
| nearest_ore = self.find_nearest_ore(unit.position) | |
| if nearest_ore: | |
| unit.ore_target = nearest_ore | |
| unit.gathering = True | |
| unit.target = nearest_ore | |
| APRรS: | |
| if not unit.gathering and not unit.ore_target: # โ Vรฉrifie ore_target | |
| nearest_ore = self.find_nearest_ore(unit.position) | |
| if nearest_ore: | |
| unit.ore_target = nearest_ore | |
| unit.gathering = True | |
| unit.target = nearest_ore | |
| elif unit.target: # โ AJOUTร | |
| unit.target = None # Nettoie rรฉsiduel si pas de minerai | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| ๐ฏ RรSULTAT FINAL | |
| โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| Le Harvester fonctionne maintenant comme dans Red Alert classique: | |
| โ Sort du HQ automatiquement | |
| โ Cherche le minerai le plus proche | |
| โ Se dรฉplace vers le minerai automatiquement | |
| โ Rรฉcolte automatiquement (ORE +50, GEM +100) | |
| โ Retourne au dรฉpรดt (HQ ou Refinery) automatiquement | |
| โ Dรฉpose les crรฉdits automatiquement | |
| โ Recommence le cycle automatiquement | |
| โ Continue indรฉfiniment jusqu'ร รฉpuisement des ressources | |
| "The Harvester must flow... and now it does!" ๐๐ฐโจ | |
| ``` | |