a2_tutoriel.py

Created by memoire44

Created on March 03, 2026

3.61 KB

Ce script n’est pas nécessaire au bon fonctionnement du Mémoire44. Il permet de consulter un tutoriel pendant le jeu qui permet aux nouveaux joueurs d’assimiler les touches.

Les joueurs habitués ont intérêt à ne pas le téléverser pour gagner en RAM et en stockage. Vous pouvez téléverser 3 batailles supplémentaires si vous ne le mettez pas !


from kandinsky2 import *

tuto = [
  {'n': "Fermer/Annuler",   'k': "<x",
   'd': "annuler toute action en cours, et revenir à l'écran de jeu.",
   'i': [
     {'d': "Allez-y, essayez !"}
  ]},

  {'n': "Jouer une carte", 'd': "Jouer une carte :",
   'i': [
       {'k': "var",   'd': "ouvrir la main des Alliés."},
       {'k': "x,n,t", 'd': "ouvrir celle des Allemands (Xnt comme aXe)."},
       {'d': "naviguez avec les flèches."},
       {'k': "OK",    'd': "valider."}
  ]},

  {'n': "Déplacer",         'k': ",",
   'd': "déplacer une unité.",
   'i': [
     {'d': "curseur vert."},
     {'d': "choisir sa nouvelle case en déplaçant le curseur avec les flèches."},
     {'k': ",",       'd': "déposer l'unité."}
  ]},

  {'n': "Attaquer/soigner", 'd': "Attaquer/soigner une unité.",
   'i': [
      {'k': "ln",      'd': "attaquer, curseur rouge."},
      {'k': "i",       'd': "soigner, curseur blanc."},
      {'k': "1-6", 'd': "donner le nombre de dés, qui s'affichent à droite."},
      {'k': "0-4",     'd': "donner le nombre de pions gagnés/perdus."}
  ]},

  {'n': "Obstacles",
   'd': "Gérer les obstacles sur la case du curseur :",
   'i': [
     {'k': "cos", 'd': "barbelés."},
     {'k': "sin", 'd': "sacs de sable."},
     {'d': "en appuyant sur la touche :",
      'i': [
       {'d': "s'il y en a déjà, ils sont ôtés."},
       {'d': "sinon, on en dépose pour le joueur dont c'est le tour."}
     ]}
  ]},

  {'n': "Médailles",        'k': "",
   'd': "gérer les médailles sur la case du curseur.",
   'i': [
     {'d': "s'il y en a une, elle est gagnée par son destinataire."},
     {'d': "sinon, pressez 'xnt' ou 'var' pour redéposer une médaille du joueur correspondant."}
  ]},

  {'n': "Plus d'options", 'd': "Plus de touches.",
   'i': [
     {'k': "π",   'd': "afficher les règles spéciales du scénario."},
     {'k': "log", 'd': "lancer les dés à tout moment."},
     {'k': "x^2", 'd': "surprise !"}
  ]},

  {'n': "Joueur avancé",     'k': "×",
   'd': "masquer 'TUTORIEL → Ans', pour les habitués.",
   'i': [
     {'d': "Vous pourrez toujours consulter ce tutoriel via 'Ans'."},
     {'d': "Astuce : Pressez 'EXE' à la sélection du scénario plutôt que 'OK' pour masquer directement."}
  ]}
]


def accueil_tuto(item = 0):
  ind_tuto = item
  changed = True
  max = 8
  fill("white")
  draw_string("Tutoriel", 120, 5, "white", cm44)

  while not S():
    if changed:
      draw_selection_string([tuto[i]['n'] for i in range(len(tuto))],
                            15, 50, cm44, "white", ind_tuto)
      changed = 0
      sleep(0.2)

    changed = changed_selected(ind_tuto, len(tuto)-1)
    ind_tuto += changed
  
  result = ind_tuto if O() else None
  while S(): pass
  return result


def aff_item_tuto(item, tab, nb_lines = 0):
  line_init = nb_lines
  tab_init = tab

  if 'k' in item:
    draw_string(item['k'], tab, 20*nb_lines, "white", cm44)
    draw_string(" : ", tab + 10*len(item['k']), 20*nb_lines)
    tab += 10*len(item['k']) + 30
  
  nb_lines += draw_multilines_string(item['d'], tab, 20*nb_lines, 31-tab//10)
  tab = tab_init + 20
  if 'i' in item:
    for i in range(len(item['i'])):
      draw_string("", tab, 20*nb_lines)
      nb_lines += aff_item_tuto(item['i'][i], tab + 20, nb_lines)
  return nb_lines - line_init


def item_tuto(ind_tuto):
  fill("white")
  aff_item_tuto(tuto[ind_tuto], 5)
  draw_string("Retour : 'OK'", 5, 205)
  while not S(): pass
  result = O()
  while S(): pass
  return result


def ans_pressed():
    item = accueil_tuto(0)
    sleep(0.1)
    while item != None:
      if item_tuto(item):
        item = accueil_tuto(item)
      else:
        item = None

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.