benini / scid Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Man pages like tcl.tk ? Is their website created automatically?
Editor with spell checking: vscode with some plug-in? MarkDown plug-in?
Pages for developers: sc_base documentation like tcl.tk pages.
Aggiungere la ricerca tipo:
-variant chess960
-variant standard
-variant !chess960
-variant !standard
Fare un video di presentazione delle novita:
Nella infobar sotto la scacchiera, quando viene visualizzato last move aggiungere tra parentesi anche il tempo dell'ultima mossa
Last move: 1.e4 (36 s)
Nuovo
e aggiungere nella progress bar quando si apre un PGN.
TIP: convertire un database PGN in un database nativo ne velocizza l'apertura (database->copy all games->new database).
Se voglio aggiungere la possibilità di modificare le partite esistenti in un database, appendendo una nuova partita con un tag speciale SCID_replace "sovrascrive la partita nr." diventa importante non modificare l'ordine delle partite.
Non si capisce a cosa si riferisce la scorebar (notation, engine1, engine2, ...)
Add engine
Show best move arrow
Al momento non è possibile importare nessun tag con più di 240 caratteri.
Per quelli extra è necessario modificare encode Game.
Quelli del namebase si potrebbero accettare per tutti i codec, tranne SCID4 (dovrebbe andare in errore in AddName).
Si potrebbe cambiare in un warning e troncare il tag, non è possibile importare tag, nemmeno quelli standard, maggiori di 240 caratteri in totale
bool visitPGN_TagPair(TView tag, TView value) {
linenum_ += std::count(value.first, value.second, '\n');
if (nErrorsAllowed_ < 0) // Skip until the end of the game
return true;
auto tagLen = std::distance(tag.first, tag.second);
auto valueLen = std::distance(value.first, value.second);
if (tagLen == 0 || tagLen + valueLen > 240 ||
!parseTagPair(tag.first, tagLen, value)) // Failure
Quando si fa la ricerca nel testo PGN, bisognerebbe memorizzare l'offset delle mosse della linea principale rispetto al pgn. In questo modo se si trova ad esempio una posizione di matto "eval #" si può impostare il filtro a quella posizione
Warning quando viene chiuso il database?
Visualizzare un tip quando viene impostato un flag delete: le partite sono state marcate per essere cancellate. Compatta il database per eliminarle definitivamente
The difficulty with adapting the SCID code to support chess960 is that simpleMoveT does not have a flag to indicate castling (such as Stockfish's 16-bit move).
The other problem is that simpleMoveT is a public struct, without a constructor, and it is not easy to trace all the points where the moves are created or modified.
encodeComments conta il numero di commenti
Aggiungere il numero di mosse (posizioni, include start_marker) non commentate
Aggiungere ENCODE_COMMENT solo se n_comment < n_nocomment
[x] Iniziare con la possibilità di decodificare entrambe.: se non ci sono ENCODE_COMMENT ma ci sono commenti, aggiungerli sequenzialmente usando nextInPGN()
[x] verificare che end_marker non può avere commenti anche nella decodifica
[ ] Quando si aggiunge gameData in SCID4 bisognerà aggiungere gli ENCODE_COMMENT se ci sono dei commenti
Non è possibile aggiungere gli ENCODE_COMMENT in modo semplice perchè è necessario avere la posizione corrente per identificare una mossa di regina memorizzata in 2-byte (che potrebbero essere invece 2 mosse distinte).
Trattare SCID4 come un codec non più nativo? Decodificando sempre in un Game e poi scrivendo il codice specifico in Codec::AddGame(Game&) ?
Oppure guardare se nell'indexentry il numero di commenti è maggiore di 0, recodificare sempre il game
Allow to search extra tags and replace the option -annotator with -extratags annotator
In benchmark_codec.tcl aggiungere la ricerca del tag TimeControl usato da lichess
Direi che sono vicino ad abbandonarlo fcf2862
Heavily used when parsing PGN to find checks.
Maybe not using List may improve the performance?
Impostarlo come default
[ ] verificare la finestra gamelist
Le barre sopra e sotta la scacchiera hanno lo sfondo bianco. Copiare da chess.com che non usa una barra intera, ma solo il background dietro le scritte.
E la cosa migliore sarebbe non riordinarle mai
Eliminare completamente NameBase::map ed usare sortCache?
E' possibile appendere le partite che sovrascrivono le precedenti alla fine del pgn.
Aggiungendo un tag "Sovrascrive" il game "ID", quando si compatta il PGN vengono automaticamente sovrascritte.
Dovrei però disabilitare il riordino delle partite per i PGN.
Oppure potrei farlo con un processo in background che utilizza il nuovo jthread
Move to version 4.7.4
Evaluate if rocksdb can be a valid alteranative to the binary, custom, SCID4 database format.
PRO:
-- less code to maintain
-- portable format
CONS:
-- external dependency, less easy for users to compile
-- very long compilation times
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.