Adjustments, handle keyStrokes on BaseGame
[vchess.git] / _tmp / TODO
... / ...
CommitLineData
1--> correspondance: stocker sur serveur lastMove + uid + color + movesCount + gameId + variant + timeleft
2fin de partie corr: supprimer partie du serveur au bout de 7 jours (arbitraire)
3// TODO: au moins l'échange des coups en P2P ? et game chat ?
4
5// TODO: surligner "hall" (menu) si nouveau défi perso (reçu) et pas affichage courant
6// de même surligner "my games" si c'est à nous de jouer dans une partie (corr)
7// ==> myGames componentn + Game component must listen for "new move" events
8
9Hall + problems : similar pages, with "New game[problem]" button
10with a list of variants.
11--> but display all challenges (and all problems)
12Possible filter: write a few variant names, to keep only these.
13--> In settings !
14
15Use better-sqlite3 instead of node-sqlite3:
16https://www.npmjs.com/package/better-sqlite3
17
18Canvas for hexagonal board Vue reactivity :
19https://stackoverflow.com/questions/40177493/drawing-onto-a-canvas-with-vue-js
20custom directives ?
21
22Desktop notifications:
23https://developer.mozilla.org/fr/docs/Web/API/notification
24
25Think about this:
26https://alligator.io/vuejs/component-communication/
27https://alligator.io/vuejs/global-event-bus/
28
29CRON task remove unlogged users, finished corr games after 7 days, individual challenges older than 7 days
30
31tell opponent that I got the move, for him to start timer (and lose...)
32 --> no, not needed and impossible if everybody is offline
33 ==> just store this time locally (cheating possible but...)
34board2, board3, board4
35VariantRules2, 3 et 4 aussi
36fetch challenges and corr games from server at startup (room)
37but forbid anonymous to start corr games or accept challenges
38
39Dans variant page, "mes parties" peut toujours contenir corr + importées (deux onglets)
40En fin de partie (observée ou non), bouton "import game" en + de "download game" ==> directement dans indexedDB
41--> sursis de 7 jours pour les parties par correspondance, qui sont encore chargées depuis le serveur
42
43mat en 2 échiqueté : brnkr3/pppp1p1p/4ps2/8/2P2P2/P1qP4/2c1s1PP/R1K5
44(Bb3+ Kb1 Ba2#)
45
46// TODO: decodeURIComponent() for GET/DELETE parameters
47
482) Integrate computer play into rules tab
493) Allow correspondance play (no need for P2P: online moves through the server (which also store them))
504) Write my-games tab (included current/finished/imported)
51 Use Dexie.js, or anything to store games locally
525) Write room tab
53 Use this: https://github.com/feross/simple-peer for online games+challenges+chat
546) Test... and publish
55
56Finish rules translation in Spanish + improve existing ones
57Design: final touch (gain extra space on top, using space on the right)
58Crazyhouse: center reserves, grey if zero available, numbers superimposed
59Promotions: increase pieces sizes, better background.
60Code: use two spaces instead of tabs, everywhere.
61Increase code line length to 100 or more?
62(http://katafrakt.me/2017/09/16/80-characters-line-length-limit/)
63Chat button should be more apparent after game ends (color ?)
64Reinforce security for problems upload (how ?)
65
66Later:
67Let choice of time control, allow correspondance play, several corr games at the same time
68==> need to use indexedDB instead of localStorage. Maybe with Dexie https://dexie.org/
69Each user would have a unique identifier stored in the client DB.
70Allow to cancel games (if opponent doesn't connect again)
71Live games storage would be browser-based: different games on smartphone, home computer, work computer... (why not ?)
72==> (at most 1) running, and finished (which can be deleted from local memory)
73Allow challenging a specific player (by his chosen name)
74But keep the random pairings as main playing way + always playing in ZEN mode
75
76style menu : surligner onglet courant
77
78Interface :
79 - newGame: une modalBox à paramètres, timeControl, type d'adversaire ==> "new Game")
80
81Importer des parties : nécessite de parser le PGN produit (possible, un peu pénible)
82mais permettrait mode analyse (avec bouton "analyse", comme sur ancien site).
83
84espagnol : jugada ou movimiento ?
85fin de la partida au lieu de final de partida ?
86
87Bouton new game ==> human only. Indiquer adversaire (éventuellement), cadence (ou "infini")
88Mode analyse : accessible à tout moment d'une partie (HH, ou computer) terminée + bouton "analyze from here" (sur parties observées)
89
90Coordonnées sur échiquier: sur cases, à gauche (verticale) ou en bas (horizontale)
91
92Import game : en local dans indexedDb, affichage dans "Games --> Imported"
93
94Checkered : si intervention d'un 3eme joueur, initialiser son temps à la moyenne des temps restants des deux autres... ?
95
96Mode contre ordinateur : seulement accessible depuis onglet "Rules" (son principal intérêt)
97
98Hexachess: McCooey et Shafran (deux tailles, randomisation OK)
99http://www.math.bas.bg/~iad/tyalie/shegra/shegrax.html
100http://www.quadibloc.com/chess/ch0401.htm
101
102Inspiration for refactor:
103https://github.com/triestpa/Vue-Chess/blob/master/src/components/chessboard/chessboard.js
104https://github.com/gustaYo/vue-chess