Commit Graph

  • 7548f3ec71 Validate hash match in TT lookup master stefiosif 2026-03-15 15:21:05 +02:00
  • a5e8453bd4 Update README stefiosif 2025-04-04 19:18:48 +03:00
  • 5966b1984c Change hashing operator % to & stefiosif 2025-04-04 18:00:55 +03:00
  • 6b009383fe Replace u64 bitboards with tuple struct stefiosif 2025-03-29 23:28:17 +02:00
  • 6653d8034f Improve attack table init, add inline to fetch fns stefiosif 2025-03-29 20:57:03 +02:00
  • d1bdc140a5 Fix overflow bug, clean up code stefiosif 2025-03-28 23:38:00 +02:00
  • 6211e5be89 Add history maluses stefiosif 2025-03-28 23:35:02 +02:00
  • 2d04a07b2a Add log product formula for LMR stefiosif 2025-03-28 23:32:44 +02:00
  • 0c953c4ac1 Clear history table on ucinewgame stefiosif 2025-03-28 23:19:57 +02:00
  • 478ed3511a Use labels to break from outer loop, group tunable constants stefiosif 2025-03-02 01:11:29 +02:00
  • 91345848c6 Spawn a separate thread to receive UCI messages via mpsc channel, simplify output to println stefiosif 2025-03-01 23:54:51 +02:00
  • 7accc28aba Simplify History struct into a Vec stefiosif 2025-02-18 20:12:29 +02:00
  • 0cd2cffd10 Insert TT entries at the end of quiescence stefiosif 2025-02-18 18:26:49 +02:00
  • b0e19a5b49 Do TT cutoffs only on non pv nodes stefiosif 2025-02-14 08:46:46 +02:00
  • 5a6cff2e40 Add aspiration windows stefiosif 2025-02-14 00:36:29 +02:00
  • cd0d0c95d5 Fix test where game state was pruned so TT lookup failed stefiosif 2025-02-13 20:53:02 +02:00
  • bc6c867eb2 Merge branch 'nmp' stefiosif 2025-02-13 20:40:36 +02:00
  • dd79dc61ba Add RFP stefiosif 2025-02-13 20:37:12 +02:00
  • 2b94b7af79 Try NMP only on non pv nodes stefiosif 2025-02-10 19:53:39 +02:00
  • a69c697892 Add LMR stefiosif 2025-02-08 19:49:39 +02:00
  • 614590b18e Add history heuristics, reorder killer move to come after captures stefiosif 2025-02-07 19:51:18 +02:00
  • bdd065efff Do TT cutoffs before LMP, use TT move as starting best_move and readability changes stefiosif 2025-02-07 19:41:54 +02:00
  • b98100aa71 Add uci movetime, hash and initialize TT based on size in MBs stefiosif 2025-02-04 23:53:18 +02:00
  • 908a87bd26 Reduce size of eval to i16 stefiosif 2025-02-04 20:02:29 +02:00
  • 55056537f3 Change History and Mailbox to tuple structs, use builder pattern for Move_Info stefiosif 2025-02-04 19:19:17 +02:00
  • 77660d21f8 Add more tests stefiosif 2025-02-03 22:07:48 +02:00
  • abfa6d3c1f Add rstest crate and add more tests stefiosif 2025-02-03 20:42:30 +02:00
  • ea6800183d Encode Move into a u16 stefiosif 2025-02-03 20:01:20 +02:00
  • 888b3866b9 Add Null-move pruning stefiosif 2025-01-29 23:09:01 +02:00
  • 91ad3de8b1 Add check extention stefiosif 2025-01-28 20:03:14 +02:00
  • 3f08e194f4 Add log for soft limit reach, tweak values, clippy stefiosif 2025-01-28 00:21:19 +02:00
  • ccba6451aa Add one killer move per ply stefiosif 2025-01-27 22:21:21 +02:00
  • b4f61f6504 Add depth based time limit stefiosif 2025-01-27 22:20:45 +02:00
  • a01310c7b7 Add TT cutoffs stefiosif 2025-01-26 23:58:44 +02:00
  • 53beda7fe3 Refactor time info, update zobrist to tuple struct, naming and clippy stefiosif 2025-01-26 20:16:01 +02:00
  • 36aa30ea17 Run UCI by default stefiosif 2025-01-26 20:12:18 +02:00
  • 7667f7b5d2 Use increment from uci winc/binc in time management stefiosif 2025-01-26 11:00:55 +02:00
  • 2d9076cd1d Add depth based logging stefiosif 2025-01-25 21:47:11 +02:00
  • 2ed92f9253 Add PVS stefiosif 2025-01-25 21:45:15 +02:00
  • 62c524174e Fix and simplify move ordering stefiosif 2025-01-25 16:39:04 +02:00
  • d8cc3b74a2 Change a/b to fail-soft stefiosif 2025-01-25 09:16:51 +02:00
  • 29d69b5ab1 Add repetition detection stefiosif 2025-01-19 20:15:23 +02:00
  • 1c7100f510 Use TT to store best move after each ID iteration stefiosif 2025-01-18 17:44:27 +02:00
  • 824f8a37b5 Add TT lookups in quiescence, move TT inside Game, remove redundant occupancy and time limit functions stefiosif 2025-01-18 13:01:06 +02:00
  • e9729cf95d Update README stefiosif 2025-01-12 23:25:56 +02:00
  • 2c9181993f Implement PeSTO eval stefiosif 2025-01-12 23:02:10 +02:00
  • 365bd71a6f Add anyhow, strum and strum_macros stefiosif 2025-01-12 20:03:07 +02:00
  • d9e76a224f Reduce bitboards from 12 to 8, add color info in mailbox representation stefiosif 2025-01-12 20:02:16 +02:00
  • f7604b27a5 Implement Index<T>, IndexMut<T> for Castle, PieceType and Color enums, use swap_remove instead of remove on sort_moves stefiosif 2024-12-01 10:52:38 +02:00
  • 316f40e6e5 Remove tt cutoffs, fix capture move sorting, refactor stefiosif 2024-11-30 00:04:53 +02:00
  • f5b7056347 Merge branch 'master' of https://github.com/stefiosif/zeal stefiosif 2024-11-13 21:48:14 +02:00
  • c2414c3f6e Make mvv_lva to map pieces to their material score instead of abritrary matrix stefiosif 2024-11-13 21:13:05 +02:00
  • 3328cd6ae5 Merge branch 'master' of https://github.com/stefiosif/zeal stefiosif 2024-11-13 21:43:13 +02:00
  • 39322ff0e1 Add time limits, use anyhow crate to improve error handling, remove depth limit on quiescence search stefiosif 2024-11-13 21:16:49 +02:00
  • 6cbde05e1e Add time limits, use anyhow crate to improve error handling, remove depth limit on quiescence search stefiosif 2024-11-13 21:16:49 +02:00
  • 30d90cb3a0 Make mvv_lva to map pieces to their material score instead of abritrary matrix stefiosif 2024-11-13 21:13:05 +02:00
  • 429485ae73 Use one TT per game, use time manger in ID stefiosif 2024-11-10 14:22:24 +02:00
  • cb26faf892 Fix size overflow of rook attack magic bitboard stefiosif 2024-11-10 14:21:28 +02:00
  • aba551ce7f Initiate end game psqt based on material scores stefiosif 2024-11-10 14:19:26 +02:00
  • e2d3185bbe Add tt node in case of best score >= alpha stefiosif 2024-11-10 14:17:55 +02:00
  • c724eca21c Use LazyLock for attack tables, remove all unsafe blocks stefiosif 2024-11-03 23:48:45 +02:00
  • 1b28de5064 Refactor based on clippy, move tt to search module and call iterative deepening from uci_go stefiosif 2024-11-03 01:19:12 +02:00
  • 802bdcdb37 Add basic iterative deepening implementation stefiosif 2024-10-29 22:55:35 +02:00
  • ff6bbafc50 Add depth limit on quiescence, add node/timer measurements stefiosif 2024-10-16 21:36:48 +03:00
  • b2df931d48 Probe TT at each negamax recursion and store entries based on bounds stefiosif 2024-10-14 23:57:54 +03:00
  • 33617df497 Add basic parts of the Transposition Table stefiosif 2024-10-13 17:32:42 +03:00
  • c40e8478c8 Add tests for Zobrist hashing stefiosif 2024-10-09 20:54:12 +03:00
  • 7f6cfb93a2 Remove redundant PieceType params stefiosif 2024-10-06 11:32:39 +03:00
  • 3fd3b1ea96 Rename fn names for better readability stefiosif 2024-10-06 11:15:29 +03:00
  • 28409d203a Add Zobrist hashing stefiosif 2024-10-06 03:31:33 +03:00
  • 70ba30ba1a Replace loops with mailbox lookups and move make/unmake tests to game.rs stefiosif 2024-09-21 17:51:39 +03:00
  • 8a40186f8b Update gitignore stefiosif 2024-09-21 15:42:53 +03:00
  • a96d3d27b1 Pass Mailbox instead of Game on related functions for clarity stefiosif 2024-09-21 15:42:41 +03:00
  • 1ed4a0c2f9 Add README.md stefiosif 2024-09-20 23:46:09 +03:00
  • f74f1ef364 Implement redundant mailbox representation stefiosif 2024-09-19 22:57:03 +03:00
  • 3739e6e169 Fix sigkill 9 running out of memory issue stefiosif 2024-09-15 20:27:48 +03:00
  • f128b35252 Move make/unmake and History on Game stefiosif 2024-09-15 18:38:32 +03:00
  • 3383435af7 Move MoveParameter handling inside make/unmake_move stefiosif 2024-09-15 17:08:51 +03:00
  • 6badbcd776 Rename movegen module files and make readability improvements stefiosif 2024-09-15 11:25:22 +03:00
  • 062a2fe903 Rename project stefiosif 2024-09-14 22:34:47 +03:00
  • 49b413d24f Refactor make_move, internal functions, move parsing and add more tests stefiosif 2024-09-14 20:55:00 +03:00
  • b26357a205 Add move ordering heuristic MVV/LVA stefiosif 2024-09-14 20:29:53 +03:00
  • d3c4078fcc Change PSQT at endgame stefiosif 2024-09-14 20:22:45 +03:00
  • 2093d91dfa Refactor some clippy-pedantic errors stefiosif 2024-09-06 20:30:57 +03:00
  • 6b9650a6f0 Improve readability and remove redundant code stefiosif 2024-09-06 20:07:10 +03:00
  • 2081ddac56 Add clap and update scripts stefiosif 2024-09-06 19:05:42 +03:00
  • 0815837cd5 Return early if king is under check and small refactorings stefiosif 2024-09-04 18:57:00 +03:00
  • fec27b0d02 Implement quiescence search for leaf nodes stefiosif 2024-09-04 18:56:20 +03:00
  • e817229d12 Convert minimax to negamax and implement alpha-beta pruning stefiosif 2024-09-03 20:35:08 +03:00
  • ba0cbf4d7d Add minimax and adapt UCI tests stefiosif 2024-09-01 14:15:02 +03:00
  • e61d247411 Make more readability refactorings stefiosif 2024-08-28 23:27:40 +03:00
  • 46cf0f0d1f Implement unmake move stefiosif 2024-08-28 21:08:32 +03:00
  • 21076da68c Add utility functions for readability and refactor make_move stefiosif 2024-08-28 21:07:22 +03:00
  • 6c8f445fa9 Add LICENSE stefiosif 2024-08-15 00:08:04 +03:00
  • 336e2d8284 Add UCI communication example stefiosif 2024-08-15 00:07:49 +03:00
  • b3d5930037 Remove uncommitted move_ordering from mod.rs stefiosif 2024-08-14 22:01:10 +03:00
  • ed711f905d Refactor project structure to use submodules stefiosif 2024-08-14 21:58:20 +03:00
  • 69cabd5b58 Rename Kind to PieceType for clarity stefiosif 2024-08-14 20:53:08 +03:00
  • c5267d0e2b Fix uci_position bugs and add test stefiosif 2024-08-14 00:25:15 +03:00
  • a07324d81d Implement halfmove/fullmove counters stefiosif 2024-08-14 00:24:05 +03:00