Documentation joueur

Programmer un robot, lire une carte, comprendre un tour.

La documentation conserve les sujets joueur, LiteralScraps et référence des blocs dans un shell commun.

Les captures seront ajoutées plus tard. Le média sera ajouté après validation des captures et des droits.

Choisissez un sujet pour apprendre à jouer, écrire un script et utiliser les blocs actuellement documentés.

Documentation Joueur

Cette page explique comment jouer et programmer un robot dans Learn From Scraps sans devoir lire le code du projet.

Principe

Chaque robot possede un script. Au debut de son tour, le moteur execute la fonction d'entree my_turn, ou son alias localise mon_tour. Les actions appelees dans ce script consomment des points d'action, modifient la position du robot, attaquent, soignent, lisent la carte ou changent le terrain.

Exemple minimal :

my_turn {
  say("Ready")
  move_forward()
  sword_swing()
}

Tour de jeu

  • Le robot commence son tour avec ses points d'action disponibles.
  • Les actions sont executees dans l'ordre du script.
  • Certaines actions coutent plus cher si elles sont repetees dans le meme tour, par exemple move_forward, move_backward, jump et dash.
  • Si une action est impossible, le moteur peut depenser les AP puis journaliser un avertissement de gameplay selon l'action.
  • Les getters comme get_pos_x() ou scan_tile(x, y) ne sont pas des actions de combat : ils servent a lire l'etat du jeu.

Carte et tuiles

Les cartes utilisent des codes courts :

CodeSensEffet general
FLFloorTuile normale praticable.
WLWallMur destructible selon les actions.
IWIndestructible WallMur infranchissable et non destructible.
HOHoleTrou, dangereux ou bloquant selon l'action.
SPSpikesPieges/pics, infligent des degats quand un robot arrive dessus.
WAWaterEau, traitee comme obstacle par la perception actuelle.

Programmer son robot

Utilisez my_turn comme point d'entree :

my_turn { if (scan_tile(1, 0) = "enemy") { sword_swing() } else { move_forward() } } Vous pouvez creer des fonctions :

my_turn {
  if (scan_tile(1, 0) = "enemy") {
    sword_swing()
  } else {
    move_forward()
  }
}

def attack_if_close {
  if (scan_tile(1, 0) = "enemy") {
    sword_swing()
  }
}

my_turn {
  attack_if_close()
}

Lire l'environnement

Les blocs de perception permettent de prendre des decisions :

  • get_pos_x() et get_pos_y() donnent votre position.
  • scan_tile(x, y) renvoie empty, ally, enemy, obstacle ou out_of_bounds.
  • is_tile_empty(x, y) indique si une tuile peut etre consideree vide.
  • get_tile_type(x, y) renvoie le code de tuile comme FL ou WL.
  • get_tile_occupant_type(x, y) renvoie ally, enemy, unknown_entity, none, obstacle ou out_of_bounds.
  • get_tile_occupant_id(x, y) renvoie l'id visible de l'occupant, ou une chaine vide.
  • get_entity_x(id), get_entity_y(id), get_entity_health(id), is_entity_alive(id) et get_entity_team(id) lisent une entite connue.

Actions principales

  • Mouvement : move_forward, move_backward, turn, face_north, face_south, face_east, face_west, jump, dash.
  • Attaque : sword_swing, spear, kick, pistol, grenade, bazooka, lighter, fire_wave, tazer, lazer, ultra_lazer.
  • Support : heal, cooling_system, repair_system, say.
  • Terrain : place_trap, dig.

Alias localises

Les exemples historiques de cette page gardent les noms d'action anglais, mais le backend accepte aussi des alias ASCII pour les scripts de joueurs :

La reference complete est dans Reference Blocs.

  • Francais : mon_tour, fonction, repeter, tourner, avancer, reculer, regarder_nord, charger, lancer_grenade, soigner, creuser, dire.
  • Espagnol : mi_turno, funcion, repetir, girar, avanzar, retroceder, mirar_norte, embestir, lanzar_granada, curar, cavar, decir.

Effets de statut

  • overheat inflige des degats pendant plusieurs tours et peut etre retire avec cooling_system().
  • short-circuit reduit les AP et peut etre retire avec repair_system().

Conseils

  • Utilisez say("message") pour deboguer visuellement une strategie.
  • Testez d'abord des scripts courts.
  • Lisez la carte avec les getters avant de lancer une action risquee.
  • Gardez assez d'AP pour vous repositionner apres une attaque.
  • Les actions a zone ou projectile peuvent toucher plusieurs cases selon leur pattern.

Besoin du contexte ?

Découvrez le jeu, la pédagogie et les réponses pratiques.