X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=TODO;h=443c8fbd4d07ead27ac310cb695a0d15a260a5c8;hb=55d2512351780eab5b33ff1ce610bab56c36b39d;hp=f0181969014527a856a2d89ca1a9050fc080bb9c;hpb=984b39b4328848869df18ea8faadf37d3a297fc5;p=vchess.git diff --git a/TODO b/TODO index f0181969..443c8fbd 100644 --- a/TODO +++ b/TODO @@ -1,50 +1,53 @@ -Email form instead of clear email: -https://nodemailer.com/smtp/ -https://www.w3schools.com/nodejs/nodejs_email.asp - -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 : - - un menu "jouer" avec sous menus humain, computer, (ou mieux : une modalBox à paramètres, timeControl, type d'adversaire ==> "new Game") - --> cette "modal" doit être affichée par défaut en arrivant sur la page (si pas de chemin renseigné) - --> ou alors non, affichage plutôt des parties en cours (liste avec diags : en 2nd sous-menu "games") - [ friend-->renommé en 'analyse' et devenant un vrai mode analyse (on garde ces trois modes ?) ] - - un menu "joueurs" avec liste "P2P" des connectés (sous-menu de "Jouer" ?) - --> plutôt dans une sorte de "hall" avec liste des connectés ? - - un menu "étudier" avec sous-menus règles, [analyse (également accessible depuis import partie)], problèmes - -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 ? +# Enhancements: +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, and gameover, and newgame) +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). + +Rematch button (change colors, re-apply randomness params (which should be saved somehow somewhere)) + --> need a bit more duplicated logic: in Game page, listen for newgame, and add a "launchGame" function +Will need a 'rematch' field in Game on server + +Put reserve pieces above and below the board. Center them. +Show count of remaining units as a red digit printed on the piece +(can it reach 10? theoretically yes... but then maybe we can just show "0" ?) +Grey "disabled" style for reserve pieces if none available. + +# 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" + +"Capture" Chess (idea of opperwezen, maybe not new): captures are forced, +but the goal is still to checkmate (not lose all material). + +Cannibal Chess with forced captures. + +Knightrelay: implement "official" version as Knightrelay v1 + +Antiking: implement v1 (deterministic) https://www.chessvariants.com/diffobjective.dir/anti-king-chess.html + +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 +Synchrone Chess: allow to anticipate en-passant capture as well :) + +S-chess https://en.wikipedia.org/wiki/Seirawan_chess + +"Ball" Chess: 9x9 board, ball on center square. 2 queens ? +To take the ball when it's free you need to capture it. +To take the ball when it's used, u need to take the piece. +Goal: bring ball to final rank. +Possibles passes : soit à une pièce, soit sur une case. + --> remplace un déplacement de pièce. Par exemple pion a2 passe à cavalier a4 = 1 coup. + --> selon le mode de déplacement standard (donc tout droit pour les pions) +Pas de notion d'échec ou de mat (?) +Si une pièce est mat elle donne le ballon (?)