Ryan Heath
Ryan Heath
You mean `board.IsWhiteToMove` ? For example, before you make a move `board.IsWhiteToMove` returns true for white. Then when you call `board.MakeMove(move)`, `board.IsWhiteToMove` will return false for white, it is black's...
@DrBrask I have a workaround for the tuples, also the timer should not include the calculation time anymore. Is it still slow for you? 20sec is waaay to slow, I...
Not necessarily, unless we could run the different bots in their own process space, memory sizes contain everything. You would not be able to determine the memory usage of a...
The original code does checkmate in one. Are you sure you have not changed EvilBot? [Original EvilBot.cs](https://github.com/SebLague/Chess-Challenge/blob/a268bc3cad410c7782472c0ad6418ed921fa6c5c/Chess-Challenge/src/Evil%20Bot/EvilBot.cs)
This probably will not fix the issue, but it is a small optimization. The [] operation does an Add anyways when the key is not present.
The original code and your code are doing the same thing under the hood. public TValue this[TKey key] { ... set { bool modified = TryInsert(key, value, InsertionBehavior.OverwriteExisting); ... }...
True, that's why I said your code have lowered the probability, but it has not removed the main cause. If the key was not present in the dictionary, it still...
Parallel.For is too clever ;) It sometimes will not use multiple threads when the workload is done fast enough. Try this instead, depending on your system you might want to...
My sample code was to show that `[ ]` is not necessarily thread-safe with an ordinary dictionary. Fixing the actual code might be a lot harder ... My sample code...
Combine it yourself? `board.IsInCheckMate() || board.IsDraw()`