qubic_engine 0.1.7

qubic engine
Documentation
use crate::{ai::*, board::*};
use std::collections::HashMap;

pub const DEPTH_MAP: [u8; 10] = [0, 0, 0, 1, 2, 1, 2, 3, 4, 3];
pub const DEV_MAP: [[f32; 64]; 8] = [
    [1.0; 64],
    [1.0; 64],
    [1.0; 64],
    [
        0.00023564827,
        0.011686152,
        0.015564729,
        0.013733372,
        0.016759345,
        0.016790409,
        0.019889168,
        0.019412171,
        0.020400593,
        0.021228548,
        0.021922741,
        0.023651369,
        0.023125546,
        0.027115768,
        0.025359962,
        0.029008463,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
        0.035195634,
    ],
    [
        0.007361489,
        0.007361489,
        0.009618516,
        0.011485383,
        0.012293955,
        0.014231108,
        0.015126785,
        0.015767794,
        0.017048826,
        0.017582234,
        0.018945903,
        0.020255374,
        0.02000505,
        0.02252229,
        0.021318335,
        0.024271078,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
        0.016909406,
    ],
    [0.024136018; 64],
    [0.032862082; 64],
    [0.02634399988612208; 64],
];
pub const MEAN_MAP: [[f32; 64]; 8] = [
    [1.0; 64],
    [1.0; 64],
    [1.0; 64],
    [
        -0.015228582,
        0.0100631025,
        0.0011834982,
        -0.003180927,
        -0.006689078,
        -0.0048709903,
        -0.0056480314,
        -0.004055424,
        0.00038922764,
        -0.0005062959,
        0.004786205,
        0.0017949641,
        0.00813577,
        0.0051450166,
        0.010049712,
        0.0062723346,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
        0.011223597,
    ],
    [1.0; 64],
    [1.0; 64],
    [1.0; 64],
    [1.0; 64],
];

pub type MpcEntry = (u8, f32, f32);

pub const T: f32 = 2.0;

pub const fn get_mpc_id(stone: usize, depth: u8) -> usize {
    return ((depth as usize) << 6) | stone;
}

/*
pub fn negscoutf_hash_mpc(
    b: &Board,
    depth: u8,
    alpha: f32,
    beta: f32,
    gen: u8,
    hashmmap: &mut HashMap<u128, (Fail, u8)>,
    mpcmap: &[MpcEntry],
    top: bool,
    stone: usize,
) -> (u8, Fail, i32) {
    use Fail::*;
    let mut count = 0;
    let actions = b.valid_actions;

    // 下限が0を下回る場合はスキップするようにする
}
*/