Location: PHPKode > projects > Skrupel KI > skrupelki/ki_leicht/politik_leicht/politik_leicht.php
<?php
/**
 * Autor: Wasserleiche (hide@address.com)
 * 
 * Impementierung von politik_basis.
 */
class politik_leicht extends politik_basis {
	
	/**
	 * Ueberprueft, ob ein anderer Spieler im aktuellen Spiel staerker ist oder nicht. Es wird einfach 
	 * gecheckt, ob der aktuelle Platz hoeher ist oder nicht.
	 * return: true, falls der Spieler einen hoeheren Platz hat, 
	 * 		   false, sonst.
	 */
	function spielerIstStaerker($comp_id) {
		$spiel_id = eigenschaften::$spiel_id;
		$platz = ki_basis::ermittleRangVonSpieler($comp_id, "platz", $spiel_id);
		$eigener_platz = ki_basis::ermittleRangVonSpieler(eigenschaften::$comp_id, "platz", $spiel_id);
		return $platz > $eigener_platz;
	}
	
	/**
	 * Hier wird auf alle Politik-Anfragen reagiert, die der KI-Spieler erhaelt. Anfragen weren in dieser 
	 * Implementierung nur angenommen, wenn der andere Spieler staerker ist (siehe $this->spielerIstStaerker()) 
	 * und wenn es mindestens einen Spieler gibt, mit dem kein Buendnis besteht.
	 */
	function verwaltePolitikAnfragen() {
		$anfragen = $this->ermittlePolitikAnfragen();
		$nur_ein_gegner = count(eigenschaften::$gegner_ids) == 1;
		$spiel_id = eigenschaften::$spiel_id;
		$comp_id = eigenschaften::$comp_id;
		$eigener_platz = ki_basis::ermittleRangVonSpieler($comp_id, "platz", $spiel_id);
		foreach($anfragen as $anfrage) {
			//Ist nur ein Gegner da, so wird keinerlei Buendnis mit ihm eingegangen.
			if($nur_ein_gegner) {
				$this->lehneAnfrageAb($anfrage[0]);
				continue;
			}
			$sender = $anfrage[1];
			$art = $anfrage[2];
			$sender_platz = ki_basis::ermittleRangVonSpieler($sender, "platz", $spiel_id);
			//Ist  der Spieler momentan schwaecher als die KI selbst, ist er fuer Politik uninteressant.
			if(!($this->spielerIstStaerker($sender))) $this->lehneAnfrageAb($anfrage[0]);
			else {
				$politik_status = $this->ermittlePolitikStatus();
				//Ist nur noch ein Spieler uebrig, mit dem kein Buendnis besteht, wird abgelehnt.
				if(count($politik_status) == count(eigenschaften::$gegner_ids) - 1) 
					$this->lehneAnfrageAb($anfrage[0]);
				else $this->nimmAnfrageAn($anfrage);
			}
		}
	}
}
?>
Return current item: Skrupel KI