Cold Clear 2 is a modern Tetris versus bot and a complete rewrite and evolution of Cold Clear.

Overview

Cold Clear 2

Cold Clear 2 is a modern Tetris versus bot and a complete rewrite and evolution of Cold Clear. It implements the Tetris Bot Protocol for interaction with a frontend, such as Quadspace.

Technical Features

  • Column-major bitboards
  • Multithreaded search
  • Transposition-aware game tree
  • MCTS-inspired tree expansion

License

Cold Clear 2 is licensed under either Apache License Version 2.0 or MIT License, at your option.

You might also like...
🦀 Temporary repository for the rewrite of Smoothie in Rust

Warning As with a lot of projects, this one is also a WIP, expect broken code 👍 smoothie-rs Temporary repository hosting the code for Smoothie's futu

A comprehensive collection of resources and learning materials for Rust programming, empowering developers to explore and master the modern, safe, and blazingly fast language.

🦀 Awesome Rust Lang ⛰️ Project Description : Welcome to the Awesome Rust Lang repository! This is a comprehensive collection of resources for Rust, a

An open source artifact manager. Written in Rust back end and an Vue front end to create a fast and modern experience

nitro_repo Nitro Repo is an open source free artifact manager. Written with a Rust back end and a Vue front end to create a fast and modern experience

A command line tool written in Rust and designed to be a modern build tool + package manager for C/C++ projects.

CCake CCake is a command line tool written in Rust and designed to be a modern build tool + package manager for C/C++ projects. Goals To be easily und

A Modern And Secure CLI Tool For Managing Environment Variables
A Modern And Secure CLI Tool For Managing Environment Variables

Envio is a command-line tool that simplifies the management of environment variables across multiple profiles. It allows users to easily switch between different configurations and apply them to their current environment

mdBook is a utility to create modern online books from Markdown files.

Create book from markdown files. Like Gitbook but implemented in Rust

exa is a modern replacement for ls.
exa is a modern replacement for ls.

exa exa is a modern replacement for ls. README Sections: Options — Installation — Development exa is a modern replacement for the venerable file-listi

Modern file system navigation tool on Unix
Modern file system navigation tool on Unix

monat -- Modern file system Navigator 简体中文 Introduction monat is a Unix shell auxiliary command focusing on the navigation of the file system, especia

A simple, modern fuzzy finder tool to run examples in a Cargo project.

cargo-rx cargo-rx is a simple, modern Runner for Examples in a Cargo project. This crate provides a single executable: rx. Basically anywhere you woul

Comments
  • Suggestion responds with empty move list

    Suggestion responds with empty move list

    I'm not super familiar with rust, so my ability to debug the issue is fairly limited. I tried reading through the source, and it does seem like the deserialization present in CC2 is different than the current tbp-spec. Specifically, with how the start message is represented. Although, tbf, the documentation for the tbp-spec could just be leaving out some information that CC2 accounts for. Anyhow, on to the issue.

    I've tried various forms of the start message, followed by a suggest message, all of which end in CC2 sending this suggestion:

    {
      "type": "suggestion",
      "moves": [],
      "move_info": {
        "nodes": 0,
        "nps": 0.0,
        "extra": "0.0% of selections expanded, overall speed: 0.0 Mnps"
      }
    }
    

    As you can see, the moves list is empty, and the move_info represents that as well.

    This could all be just me misinterpreting how start message is supposed to look as well, so if you could offer an example for me to test- that'd be greatly appreciated as well :')

    opened by daymxn 3
  • faster move gen by replacing hash map with [[[bool; 4]; 25]; 10]

    faster move gen by replacing hash map with [[[bool; 4]; 25]; 10]

    i tried replacing hash map with [[[bool; 4]; 25]; 10] and got some improvement in finding underground locks, no improvement in finding above stack locks.

    empty/I                 time:   [3.9706 us 3.9844 us 3.9999 us]
                            change: [-0.4758% +0.0272% +0.5738%] (p = 0.92 > 0.05)
                            No change in performance detected.
    Found 14 outliers among 100 measurements (14.00%)
      2 (2.00%) high mild
      12 (12.00%) high severe
    empty/O                 time:   [2.2432 us 2.2508 us 2.2600 us]
                            change: [-1.2114% -0.5206% +0.0680%] (p = 0.11 > 0.05)
                            No change in performance detected.
    Found 11 outliers among 100 measurements (11.00%)
      4 (4.00%) high mild
      7 (7.00%) high severe
    empty/T                 time:   [4.3354 us 4.3541 us 4.3756 us]
                            change: [-0.3336% +0.4321% +1.1594%] (p = 0.26 > 0.05)
                            No change in performance detected.
    Found 13 outliers among 100 measurements (13.00%)
      8 (8.00%) high mild
      5 (5.00%) high severe
    empty/L                 time:   [3.6484 us 3.6622 us 3.6776 us]
                            change: [-0.8810% -0.3863% +0.1238%] (p = 0.14 > 0.05)
                            No change in performance detected.
    Found 15 outliers among 100 measurements (15.00%)
      7 (7.00%) high mild
      8 (8.00%) high severe
    empty/J                 time:   [3.6452 us 3.6559 us 3.6683 us]
                            change: [-0.5886% -0.1681% +0.3141%] (p = 0.47 > 0.05)
                            No change in performance detected.
    Found 11 outliers among 100 measurements (11.00%)
      3 (3.00%) high mild
      8 (8.00%) high severe
    empty/S                 time:   [3.6630 us 3.6760 us 3.6919 us]
                            change: [-1.1938% -0.4172% +0.3716%] (p = 0.29 > 0.05)
                            No change in performance detected.
    Found 14 outliers among 100 measurements (14.00%)
      4 (4.00%) high mild
      10 (10.00%) high severe
    empty/Z                 time:   [3.6418 us 3.6553 us 3.6712 us]
                            change: [-0.6419% -0.0282% +0.5809%] (p = 0.93 > 0.05)
                            No change in performance detected.
    Found 13 outliers among 100 measurements (13.00%)
      4 (4.00%) high mild
      9 (9.00%) high severe
    
    tspin/I                 time:   [3.5904 us 3.5980 us 3.6066 us]
                            change: [-0.6264% +0.1900% +1.1189%] (p = 0.67 > 0.05)
                            No change in performance detected.
    Found 15 outliers among 100 measurements (15.00%)
      3 (3.00%) high mild
      12 (12.00%) high severe
    tspin/O                 time:   [1.9749 us 1.9826 us 1.9911 us]
                            change: [-2.1759% -1.6861% -1.1658%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 14 outliers among 100 measurements (14.00%)
      6 (6.00%) high mild
      8 (8.00%) high severe
    tspin/T                 time:   [4.4118 us 4.4245 us 4.4386 us]
                            change: [-10.940% -10.279% -9.6240%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 12 outliers among 100 measurements (12.00%)
      5 (5.00%) high mild
      7 (7.00%) high severe
    tspin/L                 time:   [3.7636 us 3.7781 us 3.7954 us]
                            change: [-8.6718% -7.7160% -6.8341%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 13 outliers among 100 measurements (13.00%)
      2 (2.00%) high mild
      11 (11.00%) high severe
    tspin/J                 time:   [3.7569 us 3.7667 us 3.7787 us]
                            change: [-8.2669% -7.4324% -6.6021%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 16 outliers among 100 measurements (16.00%)
      4 (4.00%) high mild
      12 (12.00%) high severe
    tspin/S                 time:   [3.6540 us 3.6684 us 3.6848 us]
                            change: [+0.2953% +0.8696% +1.5409%] (p = 0.00 < 0.05)
                            Change within noise threshold.
    Found 14 outliers among 100 measurements (14.00%)
      5 (5.00%) high mild
      9 (9.00%) high severe
    tspin/Z                 time:   [3.6600 us 3.6756 us 3.6926 us]
                            change: [-8.4859% -7.5394% -6.7363%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 14 outliers among 100 measurements (14.00%)
      7 (7.00%) high mild
      7 (7.00%) high severe
    
    dtd/I                   time:   [4.0429 us 4.0727 us 4.1086 us]
                            change: [+0.1255% +0.7642% +1.4466%] (p = 0.02 < 0.05)
                            Change within noise threshold.
    Found 19 outliers among 100 measurements (19.00%)
      5 (5.00%) high mild
      14 (14.00%) high severe
    dtd/O                   time:   [2.1878 us 2.1952 us 2.2049 us]
                            change: [-0.9129% -0.4554% +0.0186%] (p = 0.06 > 0.05)
                            No change in performance detected.
    Found 16 outliers among 100 measurements (16.00%)
      6 (6.00%) high mild
      10 (10.00%) high severe
    dtd/T                   time:   [5.2238 us 5.2389 us 5.2568 us]
                            change: [-17.388% -16.791% -16.214%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 18 outliers among 100 measurements (18.00%)
      11 (11.00%) high mild
      7 (7.00%) high severe
    dtd/L                   time:   [4.0684 us 4.0866 us 4.1099 us]
                            change: [-6.7258% -6.1156% -5.4530%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 18 outliers among 100 measurements (18.00%)
      7 (7.00%) high mild
      11 (11.00%) high severe
    dtd/J                   time:   [4.2975 us 4.3066 us 4.3181 us]
                            change: [-10.494% -10.008% -9.5361%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 11 outliers among 100 measurements (11.00%)
      3 (3.00%) high mild
      8 (8.00%) high severe
    dtd/S                   time:   [3.8563 us 3.8681 us 3.8824 us]
                            change: [-0.5871% -0.0810% +0.4407%] (p = 0.77 > 0.05)
                            No change in performance detected.
    Found 15 outliers among 100 measurements (15.00%)
      5 (5.00%) high mild
      10 (10.00%) high severe
    dtd/Z                   time:   [3.8629 us 3.8732 us 3.8856 us]
                            change: [-11.044% -10.108% -9.3039%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 10 outliers among 100 measurements (10.00%)
      3 (3.00%) high mild
      7 (7.00%) high severe
    
    terrible/I              time:   [13.719 us 13.757 us 13.803 us]
                            change: [-74.513% -74.267% -74.037%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 14 outliers among 100 measurements (14.00%)
      8 (8.00%) high mild
      6 (6.00%) high severe
    terrible/O              time:   [7.6202 us 7.6441 us 7.6708 us]
                            change: [-54.877% -54.532% -54.187%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 12 outliers among 100 measurements (12.00%)
      3 (3.00%) high mild
      9 (9.00%) high severe
    terrible/T              time:   [11.857 us 11.904 us 11.960 us]
                            change: [-64.749% -64.279% -63.861%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 16 outliers among 100 measurements (16.00%)
      4 (4.00%) high mild
      12 (12.00%) high severe
    terrible/L              time:   [10.919 us 10.945 us 10.976 us]
                            change: [-63.691% -63.411% -63.151%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 10 outliers among 100 measurements (10.00%)
      1 (1.00%) high mild
      9 (9.00%) high severe
    terrible/J              time:   [11.059 us 11.088 us 11.121 us]
                            change: [-59.809% -59.588% -59.365%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 10 outliers among 100 measurements (10.00%)
      6 (6.00%) high mild
      4 (4.00%) high severe
    terrible/S              time:   [10.985 us 11.023 us 11.065 us]
                            change: [-76.858% -76.700% -76.525%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 11 outliers among 100 measurements (11.00%)
      8 (8.00%) high mild
      3 (3.00%) high severe
    terrible/Z              time:   [10.796 us 10.832 us 10.871 us]
                            change: [-72.138% -71.911% -71.706%] (p = 0.00 < 0.05)
                            Performance has improved.
    Found 16 outliers among 100 measurements (16.00%)
      8 (8.00%) high mild
      8 (8.00%) high severe
    
    opened by citrus610 1
  • Fix bug where speculation corrupts when no queue provided at start

    Fix bug where speculation corrupts when no queue provided at start

    I noticed a bug that after few moves, CC2 returns a suggestion message with no moves. (moves.length = 0)

    When the piece queue was empty at the start message, CC2 delays the execution of bot.start(). After the first new_piece message, it will append the first piece to the queue and continue starting up.

    But this causes a problem if seven_bag randomizer is used because this does not remove the first piece from bag_state. This state is invalid and makes speculation corrupted.

    This PR fixes this bug by modifying the code to remove the first piece from bag_state correctly.

    (Sorry if my English is unclear)

    opened by SoRA-X7 1
  • An error or something

    An error or something

    I got this error,(↓) but I don't know how to fix it. screen shot of the error Also, I would like to know the flags and options for cold clear, if you don't mind.

    opened by ghost 1
Owner
Mark Carlson
Mark Carlson
Generic Differential Evolution for Rust

Differential Evolution Simple and powerful global optimization using a Self-Adapting Differential Evolution for Rust. See Wikipedia's article on Diffe

Martin Leitner-Ankerl 13 Apr 30, 2022
skyWM is an extensible tiling window manager written in Rust. skyWM has a clear and distinct focus adhering to the KISS and Unix philosophy.

Please note: skyWM is currently in heavy development and is not usable as of yet. Documentation and versions will change quickly. skyWM skyWM is an ex

MrBeeBenson 74 Dec 28, 2022
A complete imgui-rs example using dependencies only from crates.io.

Dear imgui-rs, hello. This is a fairly basic, but complete and standalone example application for the Rust version of dear imgui (https://github.com/o

null 0 Nov 30, 2022
A program that provides LLMs with the ability to complete complex tasks using plugins.

SmartGPT SmartGPT is an experimental program meant to provide LLMs (particularly GPT-3.5 and GPT-4) with the ability to complete complex tasks without

Corman 8 Apr 19, 2023
TI-89-style calculator, maybe turing complete

I will make a fully capable graphing calculator in Rust and you can't stop me. As always, I'm not using libraries or any of that. Everything here is h

Neptunal 4 Jun 2, 2023
A Turing-complete but dead-simple spaced repetition CLI that helps you learn stuff.

Forne — Learn Stuff Forne is a Turing-complete spaced repetition engine to help you learn stuff your way. What does that mean? Well, there are a few p

Sam Brew 9 May 12, 2023
Pure-Rust rewrite of the Linux fontconfig library (no system dependencies) - using ttf-parser and allsorts

rust-fontconfig Pure-Rust rewrite of the Linux fontconfig library (no system dependencies) - using allsorts as a font parser in order to parse .woff,

Felix Schütt 28 Oct 29, 2022
XP rust rewrite "v8" with serenity, focused on maintainability, stability and performance.

XP v8 The official XP v8 rewrite built with Rust and serenity-rs. Contributions We're always looking for contributors! If you want to contribute, plea

XP Discord Bot 3 Aug 28, 2023
Cross-platform Rust rewrite of the GNU coreutils

Cross-platform Rust rewrite of the GNU coreutils

null 13k Jan 8, 2023
rewrite of hosts-creator in rust

hc-rs -> hosts-creator-rust fetch and merge multiple hosts files this is a WIP whats done fetching hosts files merging hosts files removing duplicate

null 2 Nov 20, 2022