Scoretab est un script vous permettant de compter vos points dans les jeux de société par exemple
Fonctionnalités : - Affichage visuel - Calculs automatiques - Prise en charge de mods (voir bowlib et tarotlib) (fonctionne aussi sur Epsilon)
Commandes : - Se déplacer dans la grille : flèches directionnelles - Ajouter un joueur : se positionner sur + et appuyer sur OK - Ajouter une entrée : se positionner sur la colonne du joueur concerné et appuyer sur var - Supprimer une entrée : se positionner sur l’entrée à supprimer, appuyer sur la touche “supprimer” et entrer quelque chose dans la boite de dialogue (pour annuler, n’écrivez rien et appuyez simplement sur entrer) - Modifier une valeur : positionnez vous sur la valeur à modifier et appuyez sur OK - Charger un mod : appuyez sur la touche “Boite à outils” et entrez le nom du mod
https://my.numworks.com/python/golem64/bowlib https://my.numworks.com/python/golem64/tarotlib
Des améliorations du script et de la compatibilité arriveront bientôt.
from math import * from kandinsky import * from ion import * #from os import * from time import * from random import * lib="" def drawTab(tab,offsetx,offsety,selected=None,width=61,height=17): try: lib.draw() except: fill_rect(0,0,320,222,(255,255,255)) j=-1 for j in range(len(tab)): player=tab[j] draw_string((player[0]+" "*100)[0:int(width/10)],130+(j-offsetx)*width+1,-1,(255,255,255),(100,100,100)) fill_rect(130+(j-offsetx)*width,0,1,222,(0,0,0)) fill_rect(130+(j-offsetx)*width+width,0,1,222,(0,0,0)) if offsety+1<len(player): for i in range(offsety+1,len(player)): if j-offsetx==0 and i==selected: sel=(255,0,0) else: sel=(255,255,255) draw_string((str(player[i])+" "*120)[0:int(width/10)],130+(j-offsetx)*width+1,height*(i-offsety),(0,0,0),sel) fill_rect(130+(j-offsetx)*width,height*(i-offsety),width,1,(0,0,0)) fill_rect(130+(j-offsetx)*width,height*(i-offsety+1),width,1,(0,0,0)) tot=0 for i in range(1,len(player)): tot+=player[i] draw_string((str(tot)+" "*120)[0:int(width/10)],130+(j-offsetx)*width+1,222-height,(0,0,0),(200,100,0)) fill_rect(130+(j-offsetx)*width,222-height-1,width,1,(0,0,0)) fill_rect(130+(j+1-offsetx)*width,0,width,222,(0,0,0)) if j-offsetx+1==0: sel=(255,0,0) else: sel=(255,255,255) fill_rect(130+(j+1-offsetx)*width+1,0,width-2,222,sel) draw_string("+",130+(j+1-offsetx)*width+int(width/2)-5,105,(0,0,0),sel) def e(): print("\n"*12) scores=[] p={"x":0,"y":0,"s":1,"w":61} drawTab(scores,p['x'],p['y'],p['s']) stop=0 key=[] hold=0 tick=monotonic() while not KEY_ONOFF in key and not stop: key=[] for i in range(53): if keydown(i): key.append(i) if key: if not hold: hold=monotonic() elif monotonic()-hold<0.5: key=[] else: hold=0 if monotonic()-tick>0.2: key=[] tick=monotonic() try: lib.main() except: pass try: lib.move() except: x=p["x"] y=p["y"] s=p["s"] w=p["w"] if KEY_RIGHT in key: x+=1 if KEY_LEFT in key: x-=1 if p["x"]!=len(scores): if KEY_DOWN in key: s+=1 if KEY_UP in key: s-=1 if KEY_PLUS in key: w+=10 if KEY_MINUS in key: w-=10 if KEY_ANS in key: w=61 if x<0: x=len(scores) if x>len(scores): x=0 if x!=len(scores): if s<1: s=len(scores[x])-1 if s>len(scores[x])-1: s=1 if s-y<1: while s-y<1: y-=1 if s-y>11: while s-y>11: y+=1 if y<0: y=0 if w<21: w=21 p={"x":x,"y":y,"s":s,"w":w} if KEY_OK in key: try: lib.edit() except: if p["x"]==len(scores): e() v=input("Joueur "+str(len(scores)+1)+" > ") if v: scores.append([v,0]) else: e() v=input("Modifier valeur > ") if v: scores[p['x']][p['s']]=int(v) if KEY_VAR in key: try: lib.add() except: if p["x"]!=len(scores): e() v=input("Ajouter valeur > ") if v: scores[p['x']].append(int(v)) if KEY_BACKSPACE in key: try: lib.rem() except: if p["x"]!=len(scores): e() v=input("Supprimer valeur ? > ") if v: scores[x].pop(p['s']) p['s']=1 if not len(scores[p['x']])-1: scores.pop(p['x']) if KEY_TOOLBOX in key: e() v=input("Nom du mod > ") if v: try: scores=[] p['x']=0 p['y']=0 p['s']=1 lib=__import__(v) except: print("Impossible de charger le mod") sleep(1) if key: drawTab(scores,p['x'],p['y'],p['s'],p['w'])