X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=TODO;h=9fec5b71b73605c6ead05e948a745568b9586e32;hp=7ea4813d40d5b0d537c93793060d31230e4c704f;hb=b9a5fe01da415dfbea740651c04e6e10dace2c21;hpb=fd08ab2c5b8931bb8c95cf7e9f2f95122647f991 diff --git a/TODO b/TODO index 7ea4813d..9fec5b71 100644 --- a/TODO +++ b/TODO @@ -1,76 +1,37 @@ -Sur index, introduction menu remplacé par "mes parties", montrant parties (corr) en cours toutes variantes confondues -Dans variant page, "mes parties" peut toujours contenir corr + importées (deux onglets) -En fin de partie (observée ou non), bouton "import game" en + de "download game" ==> directement dans indexedDB ---> sursis de 7 jours pour les parties par correspondance, qui sont encore chargées depuis le serveur - -mat en 2 échiqueté : brnkr3/pppp1p1p/4ps2/8/2P2P2/P1qP4/2c1s1PP/R1K5 -(Bb3+ Kb1 Ba2#) - -// TODO: decodeURIComponent() for GET/DELETE parameters - -1) Finish problems tab -2) Integrate computer play into rules tab -3) Allow correspondance play (no need for P2P: online moves through the server (which also store them)) -4) Write my-games tab (included current/finished/imported) - Use Dexie.js, or anything to store games locally -5) Write room tab - Use this: https://github.com/feross/simple-peer for online games+challenges+chat -6) Test... and publish - -Finish rules translation in Spanish + improve existing ones -Design: final touch (gain extra space on top, using space on the right) -Crazyhouse: center reserves, grey if zero available, numbers superimposed -Promotions: increase pieces sizes, better background. -Code: use two spaces instead of tabs, everywhere. -Increase code line length to 100 or more? -(http://katafrakt.me/2017/09/16/80-characters-line-length-limit/) -Chat button should be more apparent after game ends (color ?) -Reinforce security for problems upload (how ?) - -The mode switch between human/computer/friend (+ problem) is a mess -(example: finished computer game, ongoing friend game, reload, friend game is unreachable) - -Later: -Let choice of time control, allow correspondance play, several games at the same time -==> need to use indexedDB instead of localStorage. Maybe with Dexie https://dexie.org/ -Each user would have a unique identifier stored in the client DB. -Allow to cancel games (if opponent doesn't connect again) -Identity would be browser-based: different games on smartphone, home computer, work computer... (why not ?) -Index might still look the same, and variant page would have another tab "Games" -==> running, and finished (which can be deleted from local memory) -(A true analysis mode could be implemented also, to navigate in completed games --> use a button) -Allow challenging a specific player (by his chosen name) -But keep the random pairings as main playing way + always playing in ZEN mode, -except when accepting an individual challenge. - -style menu : surligner onglet courant - -Interface : - - newGame: une modalBox à paramètres, timeControl, type d'adversaire ==> "new Game") - - friend-->renommé en 'analyse' et devenant un vrai mode analyse (on garde ces trois modes ?) - -problèmes : récupérer 20 ou 50 depuis le serveur, puis les afficher un par un en les analysant directement, -comme sur le site de ProgramFOX ==> présentation unifiée échiquier avec instructions dessus et soluce cachée dessous - -==> il faut pouvoir faire "new Interface(variables)" pour lancer une analyse de problème sans repasser par le mode jeu... - -Importer des parties : nécessite de parser le PGN produit (possible, un peu pénible) -mais permettrait mode analyse (avec bouton "analyse", comme sur ancien site). - -espagnol : jugada ou movimiento ? -fin de la partida au lieu de final de partida ? - -Bouton new game ==> human only. Indiquer adversaire (éventuellement), cadence (ou "infini") -Mode analyse : accessible à tout moment d'une partie (HH, ou computer) terminée. - -Coordonnées sur échiquier: sur cases, à gauche (verticale) ou en bas (horizontale) - -Import game : en local dans indexedDb, affichage dans "Games --> Imported" - -Checkered : si intervention d'un 3eme joueur, initialiser son temps à la moyenne des temps restants des deux autres... - -Mode contre ordinateur : seulement accessible depuis onglet "Rules" (son principal intérêt) - -Hexachess: McCooey et Shafran (deux tailles, randomisation OK) -http://www.math.bas.bg/~iad/tyalie/shegra/shegrax.html -http://www.quadibloc.com/chess/ch0401.htm +# Functionality: +On Game page "mconnect" events => + send lastate to them (because they have the game infos) or just "your turn" - if their turn + remember them to send next "newmove" (or just "it's your turn") later - if not their turn + (=> listen for "mdisconnect" as well) +From MyGames page: send "mconnect" to all online players (me included: potential multi-tabs) + When quit, send mdisconnect (relayed by server if no other MyGames tab). +And remove current "notify through newmove" on server in sockets.js + +Analyse mode when launched from a position: should keep orientation +--> $route query param, "side=w or b" + +Subcursor (intra move) for multi-move variants for better navigation (in BaseGame) + +Allow symmetric mode in all variants (vertical symmetry for racing kings) +flag in challenge, "Symmetric: true / false", option of GenRandInitFen() + +# Misc: +Saw once a "double challenge" bug, one anonymous and a second one logged +Both were asked a challenge probably, and both challenges added as different ones. + +# New variants +8-pieces https://www.youtube.com/watch?v=XZ8K02Da7Ps&list=PLRyjH8DPuzTBiym6lA0r84P8N0HnTtZyN&index=6&t=0s +https://www.chessvariants.com/rules/8-piece-chess +Eightpieces : non-symmetric +Sym8pieces : symmetric (960) + +Generator vatiant, called "Matrix" ? +Peces on first rank never move but generate new pieces. Pawn don't generate. +A generator captured and replaced by a similar piece does not generate. +King does not generate. No castling. En passant possible? +Goal is still checkmate. + +Take(a)n(d)make : if capture a piece, take its power for the last of the turn and make a move like it. +If a pawn taken: direction of the capturer. + ++ Maxima, Interweave, Roccoco, Dynamo, Synchrone, Cannibal (force captures)