Skip to content

Commit

Permalink
refactor: rename function
Browse files Browse the repository at this point in the history
  • Loading branch information
Apricot-S committed Sep 23, 2024
1 parent 52614b6 commit 28f1641
Showing 1 changed file with 19 additions and 22 deletions.
41 changes: 19 additions & 22 deletions src/standard.rs
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ struct BlockCountPattern {
b: BlockCount, // Pattern with the maximum number of melds
}

fn count_shupai_tile_group(
fn count_shupai_block(
single_color_bingpai: &mut [u8],
n: usize,
jiangpai: Option<usize>,
Expand All @@ -241,7 +241,7 @@ fn count_shupai_tile_group(
};
}

let mut max = count_shupai_tile_group(single_color_bingpai, n + 1, jiangpai, four_tiles);
let mut max = count_shupai_block(single_color_bingpai, n + 1, jiangpai, four_tiles);

#[inline]
fn update_max(max: &mut BlockCountPattern, r: BlockCountPattern) {
Expand All @@ -261,7 +261,7 @@ fn count_shupai_tile_group(

if (n <= 6) && single_color_bingpai.has_shunzi(n) {
single_color_bingpai.remove_shunzi(n);
let mut r = count_shupai_tile_group(single_color_bingpai, n, jiangpai, four_tiles);
let mut r = count_shupai_block(single_color_bingpai, n, jiangpai, four_tiles);
single_color_bingpai.restore_shunzi(n);

r.a.num_mianzi += 1;
Expand All @@ -272,7 +272,7 @@ fn count_shupai_tile_group(

if single_color_bingpai.has_kezi(n) {
single_color_bingpai.remove_kezi(n);
let mut r = count_shupai_tile_group(single_color_bingpai, n, jiangpai, four_tiles);
let mut r = count_shupai_block(single_color_bingpai, n, jiangpai, four_tiles);
single_color_bingpai.restore_kezi(n);

r.a.num_mianzi += 1;
Expand All @@ -283,7 +283,7 @@ fn count_shupai_tile_group(

if (n <= 6) && single_color_bingpai.has_qianzhang_dazi(n) {
single_color_bingpai.remove_qianzhang_dazi(n);
let mut r = count_shupai_tile_group(single_color_bingpai, n, jiangpai, four_tiles);
let mut r = count_shupai_block(single_color_bingpai, n, jiangpai, four_tiles);
single_color_bingpai.restore_qianzhang_dazi(n);

if !four_tiles[n + 1] {
Expand All @@ -296,7 +296,7 @@ fn count_shupai_tile_group(

if (n <= 7) && single_color_bingpai.has_liangmen_dazi(n) {
single_color_bingpai.remove_liangmen_dazi(n);
let mut r = count_shupai_tile_group(single_color_bingpai, n, jiangpai, four_tiles);
let mut r = count_shupai_block(single_color_bingpai, n, jiangpai, four_tiles);
single_color_bingpai.restore_liangmen_dazi(n);

let is_wait_consumed_in_hand = match n {
Expand All @@ -316,7 +316,7 @@ fn count_shupai_tile_group(

if single_color_bingpai.has_duizi(n) {
single_color_bingpai.remove_duizi(n);
let mut r = count_shupai_tile_group(single_color_bingpai, n, jiangpai, four_tiles);
let mut r = count_shupai_block(single_color_bingpai, n, jiangpai, four_tiles);
single_color_bingpai.restore_duizi(n);

if Some(n) != jiangpai {
Expand All @@ -330,7 +330,7 @@ fn count_shupai_tile_group(
max
}

fn count_zipai_tile_group(zipai_bingpai: &[u8], jiangpai: Option<usize>) -> BlockCount {
fn count_zipai_block(zipai_bingpai: &[u8], jiangpai: Option<usize>) -> BlockCount {
zipai_bingpai.iter().enumerate().fold(
BlockCount {
num_mianzi: 0,
Expand Down Expand Up @@ -364,7 +364,7 @@ fn count_zipai_tile_group(zipai_bingpai: &[u8], jiangpai: Option<usize>) -> Bloc
)
}

fn count_19m_tile_group(wanzi_bingpai: &[u8], jiangpai: Option<usize>) -> BlockCount {
fn count_19m_block(wanzi_bingpai: &[u8], jiangpai: Option<usize>) -> BlockCount {
wanzi_bingpai.iter().enumerate().fold(
BlockCount {
num_mianzi: 0,
Expand Down Expand Up @@ -419,11 +419,10 @@ fn calculate_replacement_number_inner(
let jiangpai_s = offset_jiangpai(jiangpai, 18, 27);
let jiangpai_z = offset_jiangpai(jiangpai, 27, 34);

let z = count_zipai_tile_group(&bingpai[27..34], jiangpai_z);
let pattern_m = count_shupai_tile_group(&mut bingpai[0..9], 0, jiangpai_m, &four_tiles[0..9]);
let pattern_p = count_shupai_tile_group(&mut bingpai[9..18], 0, jiangpai_p, &four_tiles[9..18]);
let pattern_s =
count_shupai_tile_group(&mut bingpai[18..27], 0, jiangpai_s, &four_tiles[18..27]);
let z = count_zipai_block(&bingpai[27..34], jiangpai_z);
let pattern_m = count_shupai_block(&mut bingpai[0..9], 0, jiangpai_m, &four_tiles[0..9]);
let pattern_p = count_shupai_block(&mut bingpai[9..18], 0, jiangpai_p, &four_tiles[9..18]);
let pattern_s = count_shupai_block(&mut bingpai[18..27], 0, jiangpai_s, &four_tiles[18..27]);

let mut min = 14;

Expand Down Expand Up @@ -491,11 +490,10 @@ fn calculate_replacement_number_inner_3_player(
let jiangpai_s = offset_jiangpai(jiangpai, 18, 27);
let jiangpai_z = offset_jiangpai(jiangpai, 27, 34);

let z = count_zipai_tile_group(&bingpai[27..34], jiangpai_z);
let m = count_19m_tile_group(&bingpai[0..9], jiangpai_m);
let pattern_p = count_shupai_tile_group(&mut bingpai[9..18], 0, jiangpai_p, &four_tiles[9..18]);
let pattern_s =
count_shupai_tile_group(&mut bingpai[18..27], 0, jiangpai_s, &four_tiles[18..27]);
let z = count_zipai_block(&bingpai[27..34], jiangpai_z);
let m = count_19m_block(&bingpai[0..9], jiangpai_m);
let pattern_p = count_shupai_block(&mut bingpai[9..18], 0, jiangpai_p, &four_tiles[9..18]);
let pattern_s = count_shupai_block(&mut bingpai[18..27], 0, jiangpai_s, &four_tiles[18..27]);

let mut min = 14;

Expand Down Expand Up @@ -666,10 +664,9 @@ mod tests {
}

#[test]
fn count_shupai_tile_group_works() {
fn count_shupai_block_works() {
let mut single_color_bingpai = [1, 0, 3, 1, 2, 1, 0, 1, 0];
let r =
count_shupai_tile_group(&mut single_color_bingpai, 0, None, &AllTileFlag::ZERO[0..9]);
let r = count_shupai_block(&mut single_color_bingpai, 0, None, &AllTileFlag::ZERO[0..9]);
assert_eq!(r.a.num_mianzi, 1);
assert_eq!(r.a.num_dazi, 3);
assert_eq!(r.a.num_duizi, 0);
Expand Down

0 comments on commit 28f1641

Please sign in to comment.