Location: PHPKode > projects > Skrupel KI > skrupelki/ki_basis/politik_basis/politik_basis.php
<?php
/**
 * Autor: Wasserleiche (hide@address.com)
 * 
 * Abstrakte Oberklasse fuer politisches Verhalten.
 */
abstract class politik_basis {
	
	/**
	 * Hier wird auf alle Politik-Anfragen reagiert, die der KI-Spieler erhaelt.
	 */
	abstract function verwaltePolitikAnfragen();
	
	/**
	 * Ermittelt alle politischen Anfragen von anderen Spielern an die KI und 
	 * gibt diese zurueck.
	 * returns: Alle Poltik-Anfragen an den KI-Spieler.
	 */
	function ermittlePolitikAnfragen() {
		$spiel_id = eigenschaften::$spiel_id;
		$comp_id = eigenschaften::$comp_id;
		$anfragen_array = array();
		$anfragen = @mysql_query("SELECT id, partei_b, art FROM skrupel_politik_anfrage 
				WHERE (spiel='$spiel_id') AND (partei_a='$comp_id')");
		while($anfrage = @mysql_fetch_row($anfragen)) {
			$anfragen_array[] = $anfrage;
		}
		return $anfragen_array;
	}
	
	/**
	 * Lehnt die politische Anfrage der uebergebenen ID ab (dh. die Anfrage wird aus der Datenbank geloescht).
	 * arguments: $anfrage_id - Die Datenbank-ID der politischen Anfrage, die abgelehnt wird.
	 */
	function lehneAnfrageAb($anfrage_id) {
		@mysql_query("DELETE FROM skrupel_politik_anfrage WHERE id='$anfrage_id'");
	}
	
	/**
	 * Nimmt die uerbergebene politische Anfrage an.
	 * arguements: $anfrage - Array, das aus der Datenbank-ID der Anfrage, dem Sender der Anfrage 
	 * 						  und der Art der Anfrage besteht.
	 */
	function nimmAnfrageAn($anfrage) {
		$neue_ID = ki_basis::ermittleNaechsteID("skrupel_politik");
		$spiel_id = eigenschaften::$spiel_id;
		$comp_id = eigenschaften::$comp_id;
		@mysql_query("INSERT INTO skrupel_politik (id, partei_a, partei_b, status, optionen, spiel) 
			VALUES ('$neue_ID', '$anfrage[1]', '$comp_id', '$anfrage[2]', '0', '$spiel_id')");
		@mysql_query("DELETE FROM skrupel_politik_anfrage WHERE id='$anfrage[0]'");
	}
		
	/**
	 * Ermittelt die politischen Verhaeltnisse zu allen anderen Spielern im aktuellen Spiel und gibt diese zurueck.
	 * returns: Alle politischen Verhaeltnisse zu den anderen Spielern.
	 */
	function ermittlePolitikStatus() {
		$spiel_id = eigenschaften::$spiel_id;
		$comp_id = eigenschaften::$comp_id;
		$politik_array = array();
		$politik_status = @mysql_query("SELECT partei_a, status FROM skrupel_politik WHERE (spiel='$spiel_id') 
				AND (partei_b='$comp_id')");
		while($status = @mysql_fetch_row($politik_status)) {
			$politik_array[] = $status;
		}
		$politik_status = @mysql_query("SELECT partei_b, status FROM skrupel_politik WHERE (spiel='$spiel_id') 
				AND (partei_a='$comp_id')");
		while($status = @mysql_fetch_row($politik_status)) {
			$politik_array[] = $status;
		}
		return $politik_array;
	}
	
	/**
	 * Ermittelt das politische Verhaeltnis zum uebergebenen Spieler.
	 * arguments: $andere_comp_id - Die ID des Spielers (spielintern), dessen politisches Verhaeltnis 
	 * 								zum KI-Spieler ermittelt werden soll.
	 * returns: Den Status des politischen Verhaeltnisses zum uebergebenen Spieler.
	 */
	function ermittlePolitikVerhaeltnis($andere_comp_id, $comp_id, $spiel_id) {
		$spiel_id = eigenschaften::$spiel_id;
		$comp_id = eigenschaften::$comp_id;
		$politik_status = @mysql_query("SELECT status FROM skrupel_politik WHERE (spiel='$spiel_id') 
				AND (((partei_a='$andere_comp_id') AND (partei_b='$comp_id')) 
				OR ((partei_a='$comp_id') AND (partei_b='$andere_comp_id')))");
		$politik_status = @mysql_fetch_array($politik_status);
		return $politik_status['status'];
	}
}
?>
Return current item: Skrupel KI