/** * $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; } } |