random checking
random checkin
k
quiessence experiment
k
k
Fixed: Major flaw in min-max code where min was calling min instead of max
Changed: Cutoff test to include having no moves possible, since we are switching to having inCheck check moves at generation and not selection for expansion
Experiment: MutableInt class for alpha/beta so they can be changed by reference; maybe will allow better pruning?
Version will stalemate SicilianDefenseAI.dll
Fixed: Help.capturesPossible() due to how pieceColor() works, empty spaces were being detected as White pieces
Changed: .gitignore to include /misc/ folder for saved states related to bugs and AI dlls for testing.
Changed: heuristic; pawn bonus divided by 2; modified values for check/checkmate bonus
Added: different way to partially order the moves, but it is not currently being used.
Yippie! Will checkmate current ver of SicilianDefenseAI.dll playing as both black or white
Fixed: major error in min() and max() where they weren't passing on the right move to the child node
Fixed: min() and max() were getting heuristic values for state AND lastMove but the lastMove was made by the enemy color, the heuristic assumes it was made by our color
Fixed: MutableInt class boolean comparisons (will probably ditch class altogether in favor of StudentAI object scope vars)
Experiment: Added decision tree for debugging; will remove later because it really clutters the code
Deleted: handlePawnQueening() and pawnToQueen() because MakeMove() (in framework) executed in Help.futureState() replaces pawns with queens if necessary and we do flag setting in Help.flagEnemy()
Changed: partialOrder() to take bool that will sort small or large values first for min() and max() respectively
Changed: Help.flagEnemy() to NOT call stalemate; we will let the other team figure out that they are screwed AFTER we move.
Experiment: Simplified heuristic for debugging
NOTE: Help.inDanger() still has boundry case error possibilitiy
	-did not check if potential enemy attack would put them in check
	*tried to change it and got infinite recursion because inDanger() would be calling inCheck() calling inDanger() ...
	*need to fix inDanger().  Our piece is only in danger if their attack move
	doesn't put them in check, but their attacking move only puts them in check
	when their king can be attacked, but their king can only be attacked if our
	attack move doesn't expose our king to attack, and our king can only be
	attacked if	their attack wouldn't put them in check, etc....
Version checkmated Gerty
Version checkmated Gerty.dll in 17 moves and 20 moves
Added: Heuristic.clearCache() to avoid ballooning memory that persists between moves
Merge branch 'bestSoFar'