From: Ricard G. Olivares<Ric...@uv...> - 2010-08-20 20:52:39
|
I'm answering a post under patches in sourceforge. [quote]First it is not clear to me from this or from your mailing list post what changes would be necessary to the Games table. It seems to me that having the gameID in this times table is all you need to link the two.[/quote] Yes, with this table (times table) I would not need anything in games table. But I would prefer to have it, as it will take little memory space but will load MySQL less. The difference is that when I'm showing a game, I can query the time control too, and then I don't need to search the whole times table to search which entry corresponds to the game I'm showing. Maybe it is not much waste, but I rather make the application as well-designed as possible. I will need to add another field to the games table (for a total of two), which is 'isFromTournament' to point the tournament (if any, otherwise NULL, to ensure backward compatibility) which owns the game (and of course a tournaments table). So as I'm adding one field already, there is no reason not to add two. [quote]Second, I'd like for WebChess to be "simple first" with the option to layer on complexity like these time controls.[/quote] Yeah, I want it to be as simple as possible too. I don't feel the need to have a config option to enable time-control games. This will complicate matters unnecessary for the admin. What I was thinking is show the user a little box field 'use clock' (or something like this). In case it is selected, it will show a little form with simple time settings. Nothing too complicated. Maybe something like: X time for the whole game or X time each Y movements. Another box for increments (I forgot to add it to the table in the feature requested) and nothing more. Maybe even don't show the X time in Y movements, as in normal playing sites there is normally only finish controls. This way we cover all the simple things like X minutes for the whole game (being 1', 3', 5' and 15' the most common, but not appropriate for us), X minutes adding Y seconds each move (being 1'+1s, 3'+1s and 3'+2s the most common). Then, it will show an option for 'advanced settings'. In that case, it will show all the rest of the settings (which we will normally set to default values if the user did not go for the 'advanced settings' option). It is necessary to allow three different controls to allow all the settings I've seen in real live tournaments. Last, but not least, the round options are designed specially to allow the rules of our postal tournament to be implemented (we round the first move up and the second move down). In conclusion: behavior by default: show an option to add a clock to the game (if not selected, then the game will use no clock at all). If so, show very basic settings (maybe X time for the whole game + increments (which will be set to zero by default) only) but allow a 'advanced settings' option, and only then show the bulk of options to the user. I think only when creating a tournament it will be interesting to play with all that options. I did not implement time control in friendly games, only in tournament games :-). I will implement it for everything now, for completeness. I hope I didn't lose you there. I've tried to make the settings as general as possible to allow almost everything, and of course, it gets fuzzy. I just need to see if someone has any more field to add, to allow some case I didn't consider. I'm pretty sure we need all the fields posted, but of course we can use default settings if not told otherwise. I'll make sure backward compatibility is achieved, meaning that using old databases with the new WebChess won't break it (this means, allow NULL as an option in all new options and make NULL option to behave like old WebChess, this way, adding fields as NULL will only make things equal as before). -- Ricard Garrido Olivares |