/**
  * $Id: A5BDA1BCA5B92854657374414929.txt,v 1.1.1.1 2009/06/01 12:21:04 kamoi Exp $
  * Copyright 2004 kamoland.com All rights reserved.
  */
 
 package com.kamoland.rensacommon.ai.decider;
 
 import com.kamoland.rensacommon.ai.AiUtil;
 import com.kamoland.rensacommon.ai.Tumi;
 import com.kamoland.rensacommon.ai.TumiDecider;
 import com.kamoland.rensacommon.rule.PuField;
 
 /**
  * 即消し積みの実装
  * 
  * @author kamoland.com
  * @version
  * <pre>
  * 2004/05/08 新規作成
  * </pre>
  *
  */
 public class TestAI implements TumiDecider {
 
    /**
     * 積みに対する評価得点を算出する
     * @param beforeField 自分のフィールド(NEXT積み適用前)
     * @param afterField 自分のフィールド(NEXT積み適用後)
     * @param fallenTumi NEXT積み(重力落下後)
     * @param nextTumos ツモ色.NEXT:[0][0]〜[0][1],NEXT2:[1][0]〜[1][1]
     * @param enemyFields 敵のフィールド
     * @param isAnyEnemyDoingRensa いずれかの敵が連鎖を発動中
     */
    public long evaluateTumi(PuField beforeField, PuField afterField, Tumi fallenTumi, byte[][] nextTumos, PuField[] enemyFields, boolean isAnyEnemyDoingRensa) {
 
        // ★1.連結個数を求める
        int cc1 = AiUtil.countConnected(afterField, fallenTumi.getI()[0], fallenTumi.getJ()[0], fallenTumi.getCol()[0]);
        int cc2 = AiUtil.countConnected(afterField, fallenTumi.getI()[1], fallenTumi.getJ()[1], fallenTumi.getCol()[1]);
 
        int cc = cc1 + cc2;
 
        // ★2.上を消す
        if (cc > 0) {
            cc += (13 - fallenTumi.getJ()[0]);
        }
        
        return cc;
    }
 }


© 2024 KMIソフトウェア