⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aiplayer.java

📁 java 开源游戏源码 RISK 联机对战 战棋类
💻 JAVA
字号:
package risk.engine.ai;

import risk.engine.*;
import risk.engine.core.*;

import java.util.*;

public class AIPlayer {

	public static AICrap aicrap = new AICrap();
	private static AIEasy aieasy = new AIEasy();
	private static AIEasy aihard = new AIHard();
	private static AIEasy aihardc = new AIHardCapital();
	private static AIEasy aihardm = new AIHardMission();

	private static int wait=500;

	public static int getWait() {

		return wait;

	}
	public static void setWait(int w) {

		wait = w;

	}

	public static void play(Risk risk) {

		RiskGame game = risk.getGame();

		int skill =  game.getCurrentPlayer().getType();

		AICrap usethisAI=null;

		if (skill == Player.PLAYER_AI_CRAP ) {

			usethisAI = aicrap;

		}
		else if (skill == Player.PLAYER_AI_EASY ) {

			usethisAI = aieasy;

		}
		else if (skill == Player.PLAYER_AI_HARD) {

			int mode = game.getGameMode();

			if (mode == RiskGame.MODE_DOMINATION) {

				usethisAI = aihard;

			}
			else if (mode == RiskGame.MODE_CAPITAL) {

				usethisAI = aihardc;

			}
			else if (mode == RiskGame.MODE_SECRET_MISSION) {

				usethisAI = aihardm;

			}

		}

		String output = getOutput(game,usethisAI);

		try { Thread.sleep(wait); }
		catch(InterruptedException e) {}

		risk.parser(output);

	}


	public static String getOutput(RiskGame game,AICrap usethisAI) {

		usethisAI.game = game;
		usethisAI.player = game.getCurrentPlayer();

		String output=null;

		switch ( game.getState() ) {
			case RiskGame.STATE_TRADE_CARDS:	output = usethisAI.getTrade(); break;
			case RiskGame.STATE_PLACE_ARMIES:	output = usethisAI.getPlaceArmies(); break;
			case RiskGame.STATE_ATTACKING:		output = usethisAI.getAttack(); break;
			case RiskGame.STATE_ROLLING:		output = usethisAI.getRoll(); break;
			case RiskGame.STATE_BATTLE_WON:		output = usethisAI.getBattleWon(); break;
			case RiskGame.STATE_FORTIFYING:		output = usethisAI.getTacMove(); break;
			case RiskGame.STATE_SELECT_CAPITAL:	output = usethisAI.getCapital(); break;

			case RiskGame.STATE_END_TURN:		output = "endgo"; break;
			case RiskGame.STATE_GAME_OVER:		/* output="closegame"; */ break;
			case RiskGame.STATE_DEFEND_YOURSELF:	output = usethisAI.getAutoDefendString(); break;

			default: throw new RuntimeException("AI error: unknown state "+ game.getState() );
		}

		if (output==null) { throw new NullPointerException("AI ERROR!"); }

		return output;

	}



}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -