Polestar
Polestar is a free, open-source leveling guide addon for WoW: Forever: an in-game arrow and leveling routes that make sense for every race 1 to 60, plus class quests.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
Le Skyjo à deux (ou à huit), chacun sur son téléphone. Une page web, un code à trois chiffres, et c'est parti. Pas de compte, pas de pub, pas de store. Règles officielles, y compris les deux qui font le sel du jeu : l'élimination des colonnes de trois cartes identiques, et le doublement du score de celui qui ferme la manche sans avoir, à lui seul, le plus petit total.Read the full README ↗
Le Skyjo à deux (ou à huit), chacun sur son téléphone. Une page web, un code à trois chiffres, et c'est parti. Pas de compte, pas de pub, pas de store.
Règles officielles, y compris les deux qui font le sel du jeu : l'élimination des colonnes de trois cartes identiques, et le doublement du score de celui qui ferme la manche sans avoir, à lui seul, le plus petit total.
Deux règles maison s'y ajoutent, assumées. Une ligne entière de cartes identiques saute elle aussi — les quatre sur une grille intacte, les trois qui restent quand une colonne éliminée a fait un trou dedans : un trou n'est pas une carte qui dépareille. Et la carte en main est publique, même sortie de la pioche : à distance, une carte grise au milieu de la table ne raconte rien de ce que l'adversaire est en train de peser. Le jeu de société ne connaît ni l'une ni l'autre ; la page Règles de l'application signale les deux écarts pour qu'on ne les emporte pas par erreur sur une vraie table.
Et un mode spicy, en option, que l'hôte choisit dans le salon avant de
distribuer. Il n'ajoute rien au tour de jeu — ni au comptage, ni aux
éliminations, ni à la pénalité de fermeture : il ajoute trois cartes au paquet.
Deux -5, du point sec (à deux exemplaires, une colonne de -5 reste
impossible). Un joker, qui vaut 0 et complète n'importe quel groupe : une
colonne 7 / joker / 7 saute — et quand il ferme un groupe, il ne part pas à la
défausse avec le reste : il quitte la manche. Sur la défausse, le joueur
suivant n'avait qu'à se servir ; rendu à la pioche, il revenait à quelqu'un qui
n'avait rien fait pour l'avoir, et le voir y retourner annonçait à toute la
table qu'il reviendrait. Un joker se gagne une fois et se dépense une fois : sa
case s'efface sur place, sans voler vers aucune pile. Et quatre cartes Vol,
qui échangent une de tes cartes contre celle d'un adversaire, face visible ou
non : la carte garde sa face en changeant de grille, donc un dos volé reste un
dos — personne ne l'a vu, pas même le voleur — et le nombre de dos change de
camp, jusqu'à fermer la manche quand on donne son dernier. Les deux grilles
rejouent ensuite leurs éliminations, si bien qu'on peut prendre la carte qui
ferme sa colonne comme laisser à sa victime celle qui ferme la sienne.
Le Vol n'a pas de valeur, donc pas de place dans une grille : il n'existe que
dans la pioche, et ne se déclenche qu'en étant pioché. Ce n'est pas un détail
d'implémentation mais la règle qui fixe sa fréquence — environ un par manche à
deux joueurs. Le joker, lui, vit dans une grille, et c'est ce qui a coûté le
plus cher : une case de grille cesse d'être un nombre. Elle reste pourtant
value: 0 avec un drapeau, pour que le comptage n'ait pas une ligne à changer ;
seules les éliminations regardent le drapeau, parce que ce sont elles que le
joker change.
Comme sur les flippers : trois lettres et un score, sans compte ni modération. Au Skyjo le meilleur score est le plus bas, alors la borne a deux écrans — les meilleurs scores (les totaux les plus bas parmi ceux qui n'ont pas franchi la barre) et le mur de la honte (les plus hauts parmi ceux qui l'ont franchie). La barre partage proprement les deux : chacun n'a droit qu'à un tableau, et chaque partie en nourrit au moins un.
Il se montre à deux moments. En fin de partie, sur chaque téléphone : si ton total entre dans les dix, la borne te demande tes initiales aux molettes ▲ ▼ (on peut tenir le bouton), puis fait clignoter ta ligne. Sur l'accueil, laissé vingt secondes sans qu'on y touche : il passe en mode démo, comme une borne au fond d'un bar, et fait défiler titre, records et honte jusqu'à ce qu'on le touche. Le lien « Les records » y mène tout de suite.
La seule vérification qui vaille est côté serveur : le score n'est jamais lu
dans la requête, mais dans l'état de la partie terminée. Le reste, on s'en
fiche. Les records vivent dans skyjo.records, à part des parties, et
survivent à leur purge.
navigateur ──POST /api/games/:code──▶ Next.js ──RPC──▶ Postgres
▲ │
│ moteur de règles (TS pur)
│ │
└────── Supabase Realtime ◀───────────┘
(la vue d'après, en entier)
Trois idées structurent le tout.
Le moteur ne connaît ni le réseau ni la base. src/lib/skyjo/ est un
réducteur pur : (état, action) → état. Il se teste sans rien démarrer, avec un
mélange déterministe par graine, et c'est là que vivent toutes les règles.
Le serveur fait autorité. Le navigateur n'écrit jamais dans la base et ne lit
jamais l'état complet d'une partie. Il envoie une intention, le serveur la
valide contre le moteur, écrit le nouvel état, puis renvoie une projection
expurgée (toView) : les cartes face cachée y sont présentes mais sans leur
valeur, et la pioche se résume à un compteur. La carte en main, elle, est
publique — c'est une règle maison, pas un oubli : ce qui reste secret, c'est
l'ordre de la pioche et le dos des grilles. Tricher demanderait de deviner
l'état, pas de lire une réponse.
Le temps réel ne transporte rien de secret. Deux tables : skyjo.games
(méta publique — code, version, à qui de jouer) diffusée en temps réel, et
skyjo.game_states (l'état complet) sur laquelle la RLS est active sans aucune
policy, donc illisible pour tout rôle client. Ce qui circule sur le canal, c'est
la projection expurgée — la même que le serveur rendrait à qui la demanderait, et
rien de plus.
This is the beginning of the README. Read the rest at the original. Read the full README ↗