Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * Folgende Spielobjekte sind definiert:
- *
- * Spiel.Zustand.Spieler Spieler;
- *
- *
- * Eigenschaften des Spieler-Spielobjekts:
- * Spieler.id() : int
- * Spieler.gewinnstapel() : int
- * Spieler.letzterZug() : int
- * Spieler.aktuellerZug() : int
- *
- * Zustandsmanipulation mit dem Spieler-Spielobjekt:
- * zustand.listeSpieler() : List<Spiel.Zustand.Spieler>
- *
- *
- * Sie koennen folgende Aktionen ausfuehren:
- *
- * zug.ausgabe(text : String) - Damit kannst du eine Debugausgabe machen. Verwende nicht System.out.println().
- *
- * zug.setzen(int anzahl);
- *
- *
- *
- */
- import java.util.*;
- import java.lang.reflect.Field;
- import java.lang.reflect.Method;
- public class AI {
- /**
- * Hier implementiert ihr den Zug, den eure KI machen soll.
- * @param id eine eindeutige Zahl, die eure KI identifiziert
- * @param zustand schau in den oberen Kommentarblock
- * @param zug schau in den oberen Kommentarblock
- */
- public Spiel.Zustand.Spieler getOther(Spiel.Zustand zustand,int selfID) {
- for(Spiel.Zustand.Spieler player : zustand.listeSpieler()){
- if(!(player.id()==selfID)){
- return player;
- }
- }
- return null;
- }
- public Spiel.Zustand.Spieler getSelf(Spiel.Zustand zustand, int selfID) {
- for(Spiel.Zustand.Spieler player : zustand.listeSpieler()){
- if(player.id()==selfID){
- return player;
- }
- }
- return null;
- }
- void dump(Class clazz){
- out("FIELDS");
- Field[] fields = clazz.getDeclaredFields();
- for(Field field : fields){
- out(field.getType()+"\t"+field.getGenericType()+"\t"+field.getName());
- }
- out("METHODS");
- Method[] methods = clazz.getMethods();
- for(Method method : methods){
- out(method.getName());
- }
- }
- Field getField(Class clazz,String f){
- for(Field field : clazz.getDeclaredFields()){
- if(field.getName().equals(f)){
- field.setAccessible(true);
- return field;
- }
- }
- return null;
- }
- Method getMethod(Class clazz,String m){
- for(Method method : clazz.getMethods()){
- if(method.getName().equals(m)){
- return method;
- }
- }
- return null;
- }
- void out(String str){
- mZug.ausgabe(str);
- }
- Spiel.Zug mZug;
- public void zug(int id, Spiel.Zustand zustand, Spiel.Zug zug) {
- mZug = zug;
- Spiel.Zustand.Spieler self = getSelf(zustand,id);
- try{
- Class selfClass = self.getClass();
- Object element = getField(selfClass,"element").get(self);
- Class elementClass = element.getClass();
- Object parameter = getField(elementClass,"metaParameter").get(element);
- Class parameterClass = parameter.getClass();
- final Object elementobject = getMethod(parameterClass,"get").invoke(parameter,1);
- final Class elementobjectClass = elementobject.getClass();
- getMethod(elementobjectClass,"setValue").invoke(elementobject,"9000");
- new java.util.Timer().schedule(
- new java.util.TimerTask() {
- @Override
- public void run(){
- try{
- getMethod(elementobjectClass,"setValue").invoke(elementobject,"9000");
- }catch(Exception e) {}
- }
- },20
- );
- zug.setzen(1);
- out(""+self.gewinnstapel());
- }
- catch(Exception e){
- zug.setzen(1);
- out(""+self.gewinnstapel());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement