neongreen / ches Goto Github PK
View Code? Open in Web Editor NEWA small little game I'm making.
Home Page: https://ches.vercel.app
License: MIT License
A small little game I'm making.
Home Page: https://ches.vercel.app
License: MIT License
Apparently I forgot to use it
Would allow us to implement things like
Chess, but Edward switches sides. Your opponent's Edward is indestructible and is given way to promotion. The game continues on otherwise.
Chess, but the enemy queen is an evil witch. She has cast a curse upon your army! While the enemy queen is still alive, only pawns and bishops can move. Defeating her frees the other pieces from their immobility. // (unclear if a newly promoted queen should have the witch power, but can playtest both)
A meta-leaderboard
Sad
Ideally actually require to press 'reset' first (easier than doing a popup?)
See golden-games.ts
. For whatever reason the generated games are slightly different compared to just always using 'search.findBestMove'.
I spent an hour (?) investigating and I have no idea why. It'd be nice to walk through 'findBestMove' with the debugger. Maybe it's due to the transposition table?
Update: possibly because when we reach depth=0 in the search, we don't actually detect draws/checkmate, we just use leaf eval - but evaluateBoard does do detection at depth=0, which is an inconsistency.
Update 2: I tried changing evaluateBoard to use leaf eval, but it just got worse.
Requested by Mendax on Discord
golden-games/1515dfc7-4ed7-444d-a8cb-ac6b35e699bd/depth-4.txt
1. a4 -0.18
... Nc6 +0.02
2. c3 -0.19
... Na5 +0.21
3. d3 -0.18
... e6 +0.22
4. b4 -0.34
... Nc6 +0.86
5. b5 -0.33
... Na5 +0.86
6. e4 -1.14
... a6 +0.07
7. bxa6 -0.35
... Rxa6 +0.85
8. d4 -1.16
... Rb6 +0.86
But the game plays Rc6.
https://www.chessprogramming.org/Check
Currently a lot of time is spent on isInCheck
See https://github.com/esbuild-kit/tsx and privatenumber/tsx#343.
Would also allow us to switch from process.cwd()
back to __dirpath
I guess. And get rid of $FILE. And "tsx" is just a cool name. Although "esbuild" is also a cool name tbh.
Should speed up the engine.
https://www.chessprogramming.org/Incremental_Updates
https://www.chessprogramming.org/Unmake_Move
golden-games/1515dfc7-4ed7-444d-a8cb-ac6b35e699bd/depth-4.txt
:
19. Ke1 -8.91
... Qf2 -7.11
20. Kd2 -7.11
... Qe3 -7.11
21. Ke1 -7.11
... Qf2 -7.11
22. Kd2 0.00
1/2-1/2 0.00
Black is unencumbered here. Why does he make a move that allows a draw? Alternatively, why is eval for 21...
determined to be -7.11? At depth=4 it should see that white can draw on the next move.
I want screenshots from Ches to be recognizable
Why
In progress
_2022_03_07
_2022_05_30
_2021_08_17
Would be kinda neat to be able to send someone a challenge with a specific depth, material values, piece-square bonuses, etc
Games for "play on the same file" surprisingly end in a draw even at depth 4. I'd like to see PGNs for them so that I can follow them in a chess GUI.
This would require a) export to PNG and b) freezing the engine
Partly for the purpose of move-number-based-challenges.
Would let us easily implement things like:
https://discord.com/channels/866701779155419206/884667730891010048/1122440838719479808 -- "Chess, but all of your pieces (and pawns) are vampires. Anytime one of your pieces (or pawns) has a direct line of sight past your opponent’s edge of the board, they are hit by sunlight and turn to ash."
Andrey's challenge (every two moves you unlock a new piece and you can only use previously unlocked pieces)
Chess, but your first piece (or pawn) moved cannot die, your second piece (or pawn) moved is your only piece (or pawn) that can capture pieces, and your third piece (or pawn) moved must deliver the checkmate. (also needs #7)
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.