Java macht mir mein Leben schwer...

shaluniska

Grünschnabel
Hallo erstmal !

Ich hab ein Problem... Ich habe ne Aufgabe, Damenspiel zu programmieren. Alles läuft zwar gut, aber wenn ich Computer gegen Computer spielen lasse, dann sieht man nur das Ergebniss.
Ich hab das nicht mit sleeps hingekriegt. Sleep(1000). es geht... aber -> ich sehe trozdem nicht wie sich da was bewegt. Wieder nur das Ergebniss.

Mit den Threads hab ich auch versucht. Klappts nicht. Programmiere in Java nur eine Woche. Bis dahin in Visual Basic. Da gibts es ne schöne:

"Doevents" anweisung, was ich eigentlich brauche.

Ich bitte um Hilfe, da ich schon mehr als 48St. nach einer Lösung suche... :(((

Hab nur 3 klassen:

Code:
import java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;
import javax.swing.border.*;
import java.util.Scanner;
import java.awt.event.*; 
import javax.swing.JOptionPane;
 
public class Buttontester
{
	static boolean move=false;
	static int a, b,x,y;
	static boolean geklickt=false;
	static boolean erstesmal=true;
	static int Anzahlrot=12;
	static int Anzahlgelb=12;
	
	static JButton[][] myBtns = new JButton[8][8];
	static JFrame frm = new JFrame("Damenspiel");
	static JLabel l = new JLabel();
	static JPanel pane = new JPanel();
	static JButton btn = new JButton();
	static String spieler1="";
	static String spieler2="";
	static String computer1="";
	static String computer2="";
	static boolean zwang=false;
	
	static Icon damerot = new ImageIcon("damerot.gif");
	static Icon rot = new ImageIcon("rot.gif");
	static Icon damegelb = new ImageIcon("damegelb.gif");
	static Icon gelb = new ImageIcon("gelb.gif");
	
	
	static void ergebnis(){
		if (Anzahlgelb==0) JOptionPane.showMessageDialog(null, "ROT GEWINNT !", "Damenspiel", 1);
		else  JOptionPane.showMessageDialog(null, "GELB GEWINNT !", "Damenspiel", 1);
	}
	
	static void waechseln(){

		if (spieler1=="Ja") spieler1="Nein";
   		else if (spieler1=="Nein") spieler1="Ja";		
   		if (spieler2=="Ja") spieler2="Nein";
   		else if (spieler2=="Nein") spieler2="Ja";
   		
   		if (computer1=="Ja") computer1="Nein";	
   		else if (computer1=="Nein"){
   			computer1="Ja";
   			Computer.moegliche_schlaege();
   		}
   		if (computer2=="Ja") computer2="Nein";
   		else if (computer2=="Nein"){
   			computer2="Ja";
   			Computer.moegliche_schlaege();
   			}
   		move=false;
	}
	
	static boolean richtung(){
	 if (myBtns[x][y].getIcon()==damerot || myBtns[x][y].getIcon()==damegelb){
		 if (Spieler.pruefen()==false) move=false;
	 }else{
		if (myBtns[x][y].getIcon()==rot){
			if (b>x){ if (Spieler.pruefen()==false)move=false;
			}else move=false; 
		}else if (myBtns[x][y].getIcon()==gelb){
			if (x>b){
				if (Spieler.pruefen()==false)move=false;		  
			}else move=false;
		}
	 }
	return true;
	}
	
	static void bewegen(){
		if (move){
			if (((spieler1=="Ja" || spieler2=="Ja"))){
				if (Spieler.zwangfalse==true){
					if (zwang==false){
						int altex=a, altey=b, altea=x,alteb=y;
						Computer.moegliche_schlaege();
							if (zwang){
								if (Computer.r1==b && Computer.r2==a && Spieler.pruefen()){
									x=altex;y=altey;
									move=true;
									zwang=false;
								}
							}
						x=altea;y=alteb;
					}
				}
				Spieler.zwangfalse=true;
			}
			if (zwang==false && (spieler1!="Ja" || spieler2!="Ja")){
	        	if (myBtns[x][y].getIcon()!=null )
		        		myBtns[b][a].setIcon(myBtns[x][y].getIcon());
		        	if (myBtns[b][a].getIcon()== rot && b==7 && myBtns[x][y].getIcon() != damerot)
		        		myBtns[b][a].setIcon(damerot);	
		        	else if( myBtns[b][a].getIcon()== gelb && b==0 && myBtns[x][y].getIcon() != damegelb)
		        		myBtns[b][a].setIcon(damegelb);
		
		            if (((x%2)+y)%2 == 0)
		            myBtns[x][y].setIcon(null);	            
		        	geklickt=false;
		        	frm.setFocusable(true);
			}else if (geklickt==false && zwang) JOptionPane.showMessageDialog(null, "Zwangsprung wurde nicht beachtet !", "Damenspiel", 2);
		}

		if (Anzahlgelb!=0 && Anzahlrot!=0){ 
			if (geklickt==false){

				if ((spieler1=="Ja" || spieler2=="Ja") && (zwang==false && geklickt==false && move==true )&& Anzahlgelb>0 && Anzahlrot >0){
					waechseln();
					move=false;
				}
			}
			
		}else ergebnis();
	}
	
	
	static void click(){
		if ((spieler1=="Ja" && (btn.getIcon()==rot || btn.getIcon()==damerot)) || (spieler2=="Ja" && (btn.getIcon()==gelb || btn.getIcon()==damegelb)) || (btn.getIcon()==null && ((spieler1=="Ja" && (myBtns[x][y].getIcon()==rot ||myBtns[x][y].getIcon()==damerot)) || (spieler2=="Ja" && (myBtns[x][y].getIcon()==gelb || myBtns[x][y].getIcon()==damegelb))))){
				
			if (((b%2)+a)%2 == 0 ){
    		 //wenn es diagonal geht...
    		 if ( Math.abs(x-b)==Math.abs(y-a) ){
    			// Wenn das neu feld gleich null und das vorherrige geklick wurde
        		if (btn.getIcon()==null && geklickt){
            		if (((myBtns[x][y].getIcon()==rot || myBtns[x][y].getIcon()==gelb || myBtns[x][y].getIcon()==damegelb || myBtns[x][y].getIcon()==damerot))){
            			move=true;
            			// Züruck gehen verbieten ausser der Dame
            		   if (myBtns[x][y].getIcon() == damegelb || myBtns[x][y].getIcon() == damerot){
            			   if (Spieler.pruefen()==false) move =false;

            		   }else richtung();	
            		   geklickt=false;
            		} 		
        		}else{
        			if (btn.getIcon()!=null)
        			btn.setBorder( new LineBorder(Color.green,3,  true));
        			geklickt=true;
        		}
        	//-else hat gefehlt!
        }else {
//neu    	damit keine Schwarze Felder angeklickt werden und normale schon...
        	if (btn.getIcon()!=null)
        	btn.setBorder( new LineBorder(Color.green,3,  true));
			geklickt=true;
        }
	}else{
		if (btn.getIcon()!=null)
			btn.setBorder( new LineBorder(Color.green,3,  true));
			geklickt=true;
		}
    		
    	btn.setFocusable(false);
    	bewegen();
    	
    	}else{
    		if (btn.getIcon()!=null)
    			if (spieler1=="Ja") JOptionPane.showMessageDialog(null, "Spieler 1 ist jetzt dran !", "Damenspiel", 1);
	    		else if (spieler2=="Ja") JOptionPane.showMessageDialog(null, "Spieler 2 ist jetzt dran !", "Damenspiel", 1);
	    		else if (computer1=="Ja") JOptionPane.showMessageDialog(null, "Computer 2 ist jetzt dran !", "Damenspiel", 1);
	    		else if (computer2=="Ja") JOptionPane.showMessageDialog(null, "Computer 2 ist jetzt dran !", "Damenspiel", 1);
    	}
	}
	//Spiel neu laden
	static void spiel_neu_laden(){
		Anzahlgelb=12;
		Anzahlrot=12;
		zwang=false;
		l.setVisible(false);
		for (int indy =0; indy< 8; indy++) 
	        for (int indx = 0; indx < 8; indx++)
	        {
	        	if (erstesmal){
		            myBtns[indy][indx] = new JButton();
		            myBtns[indy][indx].setBounds(20, 20, 90, 90);
	        	}
	            if (((indy%2)+indx)%2 == 0){

	            	myBtns[indy][indx].setBackground(Color.black);
	            	if (indy <3) myBtns[indy][indx].setIcon(rot);
	            	else if (indy >4) myBtns[indy][indx].setIcon(gelb);
	            	else myBtns[indy][indx].setIcon(null);

	            } else 	myBtns[indy][indx].setBackground(Color.gray );
	    
	       myBtns[indy][indx].setFocusable(false);
	    // nur beim Ersten Mal werden die Buttons hinzugefügt und mit den weiteren Eigenschaften gesetzt.
		if (erstesmal){
		    myBtns[indy][indx].setName(Integer.toString(indx+1)+" "+Integer.toString(indy+1));
		    myBtns[indy][indx].setBorder( new LineBorder(myBtns[indy][indx].getBackground(),3,  true) );
		    myBtns[indy][indx].addMouseListener
		    	    (
		    		    	new MouseAdapter(){
		    			    	public void mouseClicked( MouseEvent e ) { 
		    			            if ( e.getClickCount() > 1 ) 
		    			            	myBtns[5][3].setIcon(damegelb);
		    			    	} 

		    				    public void mousePressed( MouseEvent e ) { 

	    			            	btn = (JButton)e.getSource();
	    			            	l.setBackground(btn.getBackground());
	    			            	
	    			            	btn.setEnabled(false);
	    			            	btn.setBackground(l.getBackground());
	    			            	btn.setEnabled(true);

	    			            	myBtns[b][a].setBorder( new LineBorder(myBtns[b][a].getBackground(),3,  true) );
	    			            		
	    			            	x=b;
		    			            y=a;
	    			            	Scanner scanner = new Scanner(btn.getName());
	    			            	a=scanner.nextInt()-1;
	    			            	b=scanner.nextInt()-1;
	    			           	    // Schwarzes feld?
	    			            	click();
		    				    }
		    		    	}
		    		    );   
				}
				if (erstesmal) 
				pane.add(myBtns[indy][indx]);
				
			}
		if (erstesmal){
			pane.setBackground(Color.gray);
	        frm.getContentPane().add(pane);
	        frm.setSize(700, 700);
	        //frm.pack();
		}
		erstesmal=false;
		if (computer1=="Ja" || computer2=="Ja"){
			
			System.out.println("he");
			Computer.moegliche_schlaege();
		}
	}

    static void frame_erstellen()
    {
         
        GridLayout gl = new GridLayout(0, 8);   
        pane.setLayout(gl);

  		frm.addKeyListener(new KeyListener()
	   { 
		   public void keyTyped( KeyEvent e ) {} 
		   public void keyReleased( KeyEvent e ) {} 
		   
		   public void keyPressed( KeyEvent e ) { 
			   
			//   if(e.getKeyCode()==32)waechseln();
 
		   }
		}
  );
  		
//  	Spielerauswahl - Form erstellen
  		
        final JFrame sp_ausw = new JFrame("Spieler - Auswahl");
		sp_ausw.setDefaultCloseOperation(sp_ausw.EXIT_ON_CLOSE);
		GridBagConstraints constraints = 
            new GridBagConstraints();
		
		constraints.gridwidth=3;
		
		sp_ausw.setLayout(new GridBagLayout());
		Component c;

		final JRadioButton rb1 = new JRadioButton(); 
		final JRadioButton rb2 = new JRadioButton();
		final JRadioButton rb3 = new JRadioButton(); 
		final JRadioButton rb4 = new JRadioButton(); 
		ButtonGroup gr = new ButtonGroup(); 
		gr.add(rb1);
		gr.add(rb3);
		ButtonGroup gr2 = new ButtonGroup();
		gr2.add(rb2);
		gr2.add(rb4);
		
		
	    constraints.gridwidth = GridBagConstraints.RELATIVE;
	    constraints.insets = new Insets(-90, -130, -5, 0);
	    constraints.anchor = GridBagConstraints.WEST;
	    rb1.setSelected(true);
	    sp_ausw.add(rb1, constraints);
	    
	    constraints.fill = GridBagConstraints.REMAINDER;
	    constraints.insets = new Insets(-85, -105, 0, 5);
	    TextField text1 = new TextField("Spieler1");
	    sp_ausw.add(text1, constraints);
	    
	    constraints.gridwidth = GridBagConstraints.RELATIVE;
	    constraints.insets = new Insets(-95,0, -10,0);
	    constraints.fill = GridBagConstraints.RELATIVE;
	    rb2.setSelected(true);
	    sp_ausw.add(rb2, constraints);
	   
	    constraints.gridwidth = GridBagConstraints.RELATIVE;
	    constraints.fill = GridBagConstraints.RELATIVE;
	    constraints.insets = new Insets(-85, 5, 0, 5);
	    TextField text2 = new TextField("Spieler2");
	    sp_ausw.add(text2, constraints);
	    
	    constraints.gridwidth = GridBagConstraints.RELATIVE;
	    constraints.anchor = GridBagConstraints.WEST;
	    constraints.insets = new Insets(-35, -242, -20, 5);
	    sp_ausw.add(rb3,constraints);
	    
	    constraints.fill = GridBagConstraints.RELATIVE;
	    constraints.insets = new Insets(-17, -217, 0, 5);
	    c = new Button("Computer1 ");
	    sp_ausw.add(c, constraints);
	    
	    constraints.anchor = GridBagConstraints.WEST;
	    constraints.insets = new Insets(-35, -110, -20, 5);
	    sp_ausw.add(rb4,constraints);
	    
	    constraints.gridwidth = GridBagConstraints.RELATIVE;
	    constraints.fill = GridBagConstraints.RELATIVE;
	    constraints.insets = new Insets(-17, -85, 0, 5);
	    c = new Button("Computer2 ");
	    sp_ausw.add(c, constraints);
	    
	    constraints.fill = GridBagConstraints.RELATIVE;
	    constraints.insets = new Insets(70, -238, 0, 5);
	    c = new JButton("Spiel starten");
	    c.addMouseListener
	    (
		    	new MouseAdapter(){
			    	public void mouseClicked( MouseEvent e ) {
			    		boolean select =false;
			           sp_ausw.setAlwaysOnTop(false);
			           if (rb1.isSelected()){
			        	   if (select) spieler1="Nein";
			        	   else spieler1="Ja";
			        	   select=true;
			           }else spieler1="";
			           if (rb3.isSelected()){
			        	   if (select)computer1="Nein";
			        	   else computer1="Ja";
			        	   select=true;
			           }else computer1="";
			           if (rb2.isSelected()){
			        	   if (select) spieler2="Nein";
			        	   else spieler2="Ja";
			        	   select=true;
			           }else spieler2="";
			           if (rb4.isSelected()){
			        	   if (select) computer2="Nein";
			        	   else computer2="Ja";
			        	   select=true;
			           } else computer2="";
			           sp_ausw.setVisible(false);
			           	spiel_neu_laden();
			    	}
		    	}

	    );
	    sp_ausw.add(c, constraints);
	    
	    constraints.fill = GridBagConstraints.RELATIVE;
	    constraints.insets = new Insets(70, -108, 0, 5);
	    c = new JButton("Abbrechen");
	    sp_ausw.add(c, constraints);
	    
	    
	   final Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
        sp_ausw.setAlwaysOnTop(true);
		sp_ausw.setSize(300, 200);
		sp_ausw.setVisible(false);
		sp_ausw.setResizable(false);
		
     //  Menu erstellen

  		 JMenuBar menuBar = new JMenuBar(); 
         JMenu fileMenu = new JMenu( "Spiel" );
         JMenu fileMenu2 = new JMenu("Einstellungen");
         menuBar.add( fileMenu ); 
         menuBar.add(fileMenu2);
         frm.setJMenuBar(menuBar);
         
         Action exitAction1 = new AbstractAction( "Neues Spiel" ) { 
       	  public void actionPerformed( ActionEvent e ) { 
       	    spiel_neu_laden();
       	  } 
       };
       
       Action exitAction = new AbstractAction( "Beenden" ) { 
       	  public void actionPerformed( ActionEvent e ) { 
       	    System.exit( 0 ); 
       	  } 
       };
	    Action exitAction3 = new AbstractAction( "Spieler Auswahl" ) { 
     	  public void actionPerformed( ActionEvent e ) { 
     		sp_ausw.setLocation((int)(screen.getWidth()/2-sp_ausw.getWidth()/2),(int)(screen.getHeight()/2-sp_ausw.getHeight()/2)); 
     	    sp_ausw.setVisible(true);
     	  } 
     };
     	fileMenu.add(exitAction3);
     	fileMenu.addSeparator();
     	fileMenu.add(exitAction1);
     	fileMenu.add(exitAction);
     	
        frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frm.setSize(650, 650);
        frm.setLocation((int) screen.getWidth()/2-(frm.getWidth()/2),(int)(screen.getHeight()/2-frm.getHeight()/2));
        frm.setVisible(true);
    }
 
    public static void main(String[] args)
    {
       frame_erstellen();
    }
}

****************************************

import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import java.util.Timer;
import java.util.TimerTask;
public class Computer extends Buttontester{
	
	static boolean gefunden=false,ergebnis=false;
	static int r1=x,r2=y,anz;
	static String[] speichern=new String [100];
	static boolean schritte_suchen=false;
	static boolean gefahr =false;
	static boolean schritt=false;
	static int zaehler=0;
	
	static	boolean gegner_finden(){	
		
	int vertikal=0,horizontal=0,f=0,g=0;
	if (schritte_suchen==false) zaehler=0;
	else schritt=false;
	if (myBtns[x][y].getIcon()!=damegelb && myBtns[x][y].getIcon()!=damerot){
			for(f=x-1;f<=x+1;f++)
				for(g=y-1; g<=y+1;g++){
					if (f>=0 && f<=7 && g>=0 && g<=7 && ((f%2)+g)%2 == 0){
						if (((myBtns[f][g].getIcon()==gelb || myBtns[f][g].getIcon()==damegelb) &&(myBtns[x][y].getIcon()==rot || myBtns[x][y].getIcon()==damerot)) || ((myBtns[f][g].getIcon()==rot || myBtns[f][g].getIcon()==damerot)&& (myBtns[x][y].getIcon()==gelb || myBtns[x][y].getIcon()==damegelb))){	
							//Wenn was zum Schlagen gesucht wird, wird weiter gemacht...
							if (schritte_suchen==false){
								if ( ((myBtns[f][g].getIcon()==gelb || myBtns[f][g].getIcon()==damegelb) && f>x) ||((myBtns[f][g].getIcon()==damerot || myBtns[f][g].getIcon()==rot) && f<x)){					
									if(x<f)	vertikal=1; //unten
									else vertikal=-1;	//	oben 
									if (y<g) horizontal=1; //rechts
									else horizontal=-1; //links

									if ((f+vertikal)>=0 && (f+vertikal)<=7 && (g+horizontal)>=0 && (g+horizontal)<=7 && ((f+vertikal%2)+(g+horizontal))%2 == 0){
										if (myBtns[f+vertikal][g+horizontal].getIcon()==null){
												if (computer1=="Ja" || computer2=="Ja"){
													speichern[zaehler++]=Integer.toString(f+vertikal)+" "+Integer.toString(g+horizontal);	
												}else return true;
										}
									}
								}
							}
					// Wenn das Feld leer ist und nach weiteren Schritten gesucht wird...
					}else{				
						if (schritte_suchen && (myBtns[f][g].getIcon()==null)){
						//	System.out.println("x="+x+ " y="+y+" f="+f+" g="+g);
							if ( (myBtns[x][y].getIcon()==gelb && f<x) ||(myBtns[x][y].getIcon()==rot && f>x)){
								speichern[zaehler]=Integer.toString(f)+" "+Integer.toString(g)+" "+
								Integer.toString(x)+" "+Integer.toString(y);
								schritt=true;
							
								// Prüfen auf Gefahr...	- > Vor dir....	
								if(x<f)	vertikal=1; //unten
								else vertikal=-1;	//	oben 
								if (y<g) horizontal=1; //rechts
								else horizontal=-1; //links
								
								if ((f+vertikal)>=0 && (f+vertikal)<=7 && (g+horizontal)>=0 && (g+horizontal)<=7 && ((f+vertikal%2)+(g+horizontal))%2 == 0)
									if (((myBtns[f+vertikal][g+horizontal].getIcon()==gelb || myBtns[f+vertikal][g+horizontal].getIcon()==damegelb) &&(myBtns[x][y].getIcon()==rot || myBtns[x][y].getIcon()==damerot)) || ((myBtns[f+vertikal][g+horizontal].getIcon()==rot || myBtns[f+vertikal][g+horizontal].getIcon()==damerot)&& (myBtns[x][y].getIcon()==gelb || myBtns[x][y].getIcon()==damegelb)))
										speichern[zaehler]=speichern[zaehler]+" g";
								
								// Prüfen von der anderen Seite...
								if (horizontal==1) horizontal=-1;
								else horizontal=1;
								if ((f+vertikal)>=0 && (f+vertikal)<=7 && (g+horizontal)>=0 && (g+horizontal)<=7 && ((f+vertikal%2)+(g+horizontal))%2 == 0)
									if (((myBtns[f+vertikal][g+horizontal].getIcon()==gelb || myBtns[f+vertikal][g+horizontal].getIcon()==damegelb) &&(myBtns[x][y].getIcon()==rot || myBtns[x][y].getIcon()==damerot)) || ((myBtns[f+vertikal][g+horizontal].getIcon()==rot || myBtns[f+vertikal][g+horizontal].getIcon()==damerot)&& (myBtns[x][y].getIcon()==gelb || myBtns[x][y].getIcon()==damegelb))){
										
										if (horizontal==1) horizontal=-1;
										else horizontal=1;
										if (vertikal==1) vertikal=-1;
										else vertikal=1;
										
										if ((f+vertikal)>=0 && (f+vertikal)<=7 && (g+horizontal)>=0 && (g+horizontal)<=7 && ((f+vertikal%2)+(g+horizontal))%2 == 0)
											if (myBtns[f+vertikal][g+horizontal].getIcon()==null)
												speichern[zaehler]=speichern[zaehler]+" g";
									}
							zaehler++;
							}
						}
					}
						
			}
		}
		if (computer1=="Ja" || computer2=="Ja"){
			if (zaehler>0 && schritte_suchen==false) return entscheiden();
			else if (schritt && schritte_suchen==true) return true;
			else return false;
		}else return false;
	//Wenn es die Dame ist...
	//Funktioniert alles wunderbar
	}else{
		f=-1;
		g=-1;
		vertikal=-1;
		horizontal=-1;
		gefunden=true;
		int anzahl=0;
		if (schritte_suchen==false)
		zaehler=0;
		anzahl=0;
		while (gefunden){	
			 if (x+f>=0 && x+f<=7 && y+g>=0 && y+g<=7){
					 if (myBtns[x+f][y+g].getIcon()!=null && ((myBtns[x+f][y+g].getIcon()!= gelb && myBtns[x+f][y+g].getIcon()!= damegelb &&  myBtns[x][y].getIcon()==damegelb)||(myBtns[x+f][y+g].getIcon()!= damerot && myBtns[x+f][y+g].getIcon()!= rot && myBtns[x][y].getIcon()==damerot))){
						 anzahl++;
						 if (x+f+vertikal>=0 && x+f+vertikal<=7 && y+g+horizontal>=0 && y+g+horizontal<=7){
							 if (myBtns[x+f+vertikal][y+g+horizontal].getIcon()==null){
								if (schritte_suchen==false){
									if (anzahl==1){
									if (spieler1=="Ja" || spieler2=="Ja") return true;
									else speichern[zaehler++]=Integer.toString(f+x+vertikal)+" "+Integer.toString(g+y+horizontal);
									}
								}
								 
							 }
					 }
				 }else{
					 if (myBtns[x+f][y+g].getIcon()==null){
						 if (schritte_suchen){
							 if (anzahl==0){
								 speichern[zaehler++]=Integer.toString(f+x)+" "+Integer.toString(g+y)+" "+Integer.toString(x)+" "+Integer.toString(y);
							 }
						 } 
				 	}
				 }
			 }else{ 
				 	anzahl=0;
					 f=0;
				 	 g=0;
				 if (horizontal==-1 && vertikal==-1){ 
					 horizontal=1;
				 }else if (horizontal==1 && vertikal==-1){
					 vertikal=1;
				 }else if(horizontal ==1 && vertikal==1){
					 horizontal=-1;
				 }else if (horizontal==-1) gefunden = false; 
			 }
			 f=f+vertikal;
			 g=g+horizontal;
			}
		
			if (zaehler==0) return false;
			else if (schritte_suchen==false)
				return entscheiden();
			else return true;
	}	
}

	static void moegliche_schlaege(){
		ergebnis=true;
		boolean schlagen=false;
		boolean weiter=true;
		schritte_suchen=false;
		
		for (int indy =0; indy< 8 && weiter; indy++) 
	        for (int indx = 0; indx < 8 && weiter; indx++)
	        {
	        	if ((computer2=="Ja" && (myBtns[indy][indx].getIcon()==gelb || myBtns[indy][indx].getIcon()==damegelb)) || (computer1=="Ja" && (myBtns[indy][indx].getIcon()==rot || myBtns[indy][indx].getIcon()==damerot))|| (spieler1=="Ja" && (myBtns[indy][indx].getIcon()==rot || myBtns[indy][indx].getIcon()==damerot))||(spieler2=="Ja" && (myBtns[indy][indx].getIcon()==gelb || myBtns[indy][indx].getIcon()==damegelb))){	
	        		x=indy;
	        		y=indx;
	        		// Den ersten gefundenen gegner Schlagen !:) so weit es geht...
	        		if (gegner_finden()){
	        			schlagen=true;
	        			ergebnis=true;
	        			if ((spieler1=="Ja" || spieler2=="Ja")){
	        				if (schritte_suchen==false)
	        					zwang=true;
	        					weiter=false;
	        			}else{
				        		while (ergebnis)
				        		{
				        			b=r1;
					        		a=r2;
					        		
					        		
					        		
		//			     **************************************
		//			     **************************************
		//			     **************************************
		
					        		if ( (myBtns[x][y].getIcon()==rot && b>x) ||(myBtns[x][y].getIcon()==gelb && x>b) || (myBtns[x][y].getIcon()==damegelb || myBtns[x][y].getIcon()==damerot) ){	
						        		if (move=richtung()){
						        				 bewegen();
		//Hier würde sehr gerne doevents haben :((((( HILFE !!				        				 
						        		} 		
						        		weiter=false;
					        		}else ergebnis =false;
					        		x=b;
					        		y=a;	
					        		ergebnis=gegner_finden();		
				        		}
	        				}
	        		}
	        	}
	        }

		if (schlagen==false &&(computer1=="Ja" || computer2=="Ja")){ // wenn nichts zum Schalgen gibts
			schritte_suchen=true;
			for (int indy =0; indy< 8; indy++) 
		        for (int indx = 0; indx < 8; indx++)
		        {
		        	if ((computer2=="Ja" && (myBtns[indy][indx].getIcon()==gelb || myBtns[indy][indx].getIcon()==damegelb)) || (computer1=="Ja" && (myBtns[indy][indx].getIcon()==rot || myBtns[indy][indx].getIcon()==damerot))){	
		        		x=indy;
		        		y=indx;
		        	//	System.out.println("x = "+x+"y ="+y);
		        		if(ergebnis=gegner_finden()){
		        			schlagen=true;
		        			move=true;
		        		}
		        	}
		        }
			if (schlagen==false){
					if (computer2=="Ja") Anzahlgelb=0;
					else Anzahlrot=0;
					ergebnis();
			
			}else{
				entscheiden();
				bewegen();
			}
		}
		if (schlagen &&(computer1=="Ja" || computer2=="Ja")&&Anzahlrot>0 &&Anzahlgelb>0){
			waechseln();
		}
	}
	
	
	static boolean entscheiden(){

		int i=0;
		int richtige=0;
		String[] loeschen=new String[100];
		Scanner scanner=new Scanner("");
		
			while (speichern[i]!=null && speichern[i]!=""){
				if (schritte_suchen)
					if (speichern[i].length()==7) loeschen[richtige++]=speichern[i];
				i++;
			}
		if (schritte_suchen){
			if (richtige>1){
				i=(int)Math.round(Math.random()*(richtige-1));
				scanner= new Scanner(loeschen[i]);
				r1=scanner.nextInt();
		    	r2=scanner.nextInt();
			}else{
				if (i>1) i=(int)Math.round(Math.random()*(i-1));
				else i=0;
				scanner= new Scanner(speichern[i]);
				r1=scanner.nextInt();
		    	r2=scanner.nextInt();
			}
		}else {
			if (i>1) i=(int)Math.round(Math.random()*(i-1));
			else i=0;
			scanner= new Scanner(speichern[i]);
			r1=scanner.nextInt();
	    	r2=scanner.nextInt();
		}
    	if (schritte_suchen){
    		x=scanner.nextInt();
    		y=scanner.nextInt();
    		System.out.println("x= "+x+" y="+y);
    		b=r1;
    		a=r2;
    	}
    	i=0;
    	while(speichern[i]!=null){
    		speichern[i]=null;
    		i++;
    	}
    	i=0;
    	while(loeschen[i]!=null){
    		loeschen[i]=null;
    		i++;
    	}
    	zaehler=0;
    	schritte_suchen=false;
    	return true;
	}
	
}

import javax.swing.JOptionPane;


public class Spieler extends Buttontester {
	
	static boolean zwangfalse=true;
	static boolean pruefen(){
			
	if (myBtns[x][y].getIcon()!= damegelb && myBtns[x][y].getIcon()!= damerot){
		// Wenn es nicht die Dame ist...	
		if (Math.abs(a-y)==2 ){
				if (myBtns[(x+b)/2][(y+a)/2].getIcon()!=null){
					if	(myBtns[(x+b)/2][(y+a)/2].getIcon()!=myBtns[x][y].getIcon()){	
						//Falls geschlagen wird, wirden gelben bzw Roten runtergezaehlt...
						if (myBtns[(x+b)/2][(y+a)/2].getIcon()==gelb || myBtns[(x+b)/2][(y+a)/2].getIcon()==damegelb)
							Anzahlgelb--;
						else Anzahlrot--;
						myBtns[(x+b)/2][(y+a)/2].setIcon(null);
						// Zwangssprung?
						if (spieler1=="Ja" || spieler2=="Ja")
							zwangfalse=false;
						if (zwang) zwang=false;
						System.out.println("gelb ="+Anzahlgelb+"rot ="+Anzahlrot);
						return true;
					//Wenn es sich beim Springen um die gleich Farbe handelt.. 	
					}else return false;
				 //Wenn das Feld, wo gesprungen wird nicht leer ist...
				}return false;
			// Wenn das Feld grösser ist als Math.abs(2)	
			}else
				// Wenn es nur um ein Feld bewegt wird...
				if (Math.abs(a-y)==1) return true;
				else return false;
			
	}else{
		// Hier wird geguckt, in welche Richtung wir uns mit der Dame bewegen				
		int zaehlervertik=0;
		int zaehlerhoriz=0;
		if(x<b)	zaehlervertik=1; //unten
		else zaehlervertik=-1;	//	oben 
		if (a>y) zaehlerhoriz=1; //rechts
		else zaehlerhoriz=-1; //links
						
		//Fängt an von dem nächsten Feld zu überprüfen.	
		int horizontal=y+zaehlerhoriz;
		int vertikal=x+zaehlervertik;
		// Anzahl an Gelb und Rot				
		int anzahl=0;
		int ax=0;
		int ay=0;
		
		// Bewegen bis zu dem angeklickten Feld...
		while(a!=horizontal && b!=vertikal){
			if (myBtns[vertikal][horizontal].getIcon()!=null)
				 if( (myBtns[x][y].getIcon()==damegelb && (myBtns[vertikal][horizontal].getIcon()!=gelb && myBtns[vertikal][horizontal].getIcon()!=damegelb)) || (myBtns[x][y].getIcon()==damerot &&(myBtns[vertikal][horizontal].getIcon()!=rot && myBtns[vertikal][horizontal].getIcon()!=damerot))){  
					 anzahl++;
					 if (anzahl>1)
						 return false;
					// Beim ersten Auftrette der gegnerischen Farbe.. werde seine Koordinaten gespeichert..
					ax=vertikal;
					ay=horizontal;
					//Wenn irgeneine Farbe ungleich der Damenfarbe auf dem Weg auftritt, wird false zurückgegeben
				 }else return false;
							
		vertikal=vertikal+zaehlervertik;
		horizontal=horizontal +zaehlerhoriz;
		}
		//wenn die Schleife ohne Störungen bis zum Ende durchläuft, sind die Felder entweder leer oder ein Gegner vorhanden
		if ( Math.abs(ax-b)==Math.abs(ay-a)){
			if (anzahl==1){
				// Runterzaelen
				if (myBtns[ax][ay].getIcon()==gelb || myBtns[ax][ay].getIcon()==damegelb)
					Anzahlgelb--;
				else Anzahlrot--;
				myBtns[ax][ay].setIcon(null);
				System.out.println("gelb ="+Anzahlgelb+"rot ="+Anzahlrot);
				if (spieler1=="Ja" || spieler2=="Ja")
					zwangfalse=false;
				if (zwang) zwang=false;	
			}
			return true;
		//Falls das Feld nicht in der Damen - Diagonale liegt		
		}else 
			if (anzahl==0) return true;
			else return false;
	}
  }
}


Danke im Voraus !

Mfg Alex
 
Moin!
Bitte formatiere deine Code Postings das nächste mal. Das ist nämlich wirklich unschön zu lesen.
Eine Sache ist mir sofort aufgefallen:
Code:
if(spieler1=="Ja")

Objekte, und dazu gehören auch Strings, werden immer mit der equals() Methode verglichen! Nur Primitive werden mit "=="!
Also
Code:
if(spieler1.equals("Ja"))

Korrigiere diese Stellen alle mal, vielleicht klappt es ja dann..

*grüssle*
MeinerEiner
 
Hallo, ich weiss nicht wie ich mein Quellcode im Forum formatieren soll... Poste zum ersten Mal. Hab zwar geändert, aber es hat nicht viel gebracht. Trozdem danke, für dein Vorschlag.
 
Hallo, ich weiss nicht wie ich mein Quellcode im Forum formatieren soll... Poste zum ersten Mal. Hab zwar geändert, aber es hat nicht viel gebracht. Trozdem danke, für dein Vorschlag.

also
probeire esmal mit
[*php]text[*/php] (alles ohne -> * )
[*html]text[*/html]
[*code]text[*/code]
damit lässt sich das formatieren
des weiteren ssolltest du auch leerzeilen und eingerückte zeilen
mit benutzen
sons bleibste als er bald hängen
lass mcih raten
nutz du den windows editor oder note pad?
 
Da es hier um Java geht, könntest du [code] benutzen (natürlich ohne Leerzeichen) und gleichzeitig sollte man sich an die Netiquette #15 halten, Groß - und Kleinschreibung.

Java:
import java.awt.*;
import java.awt.event.ActionEvent;
import javax.swing.*;
import javax.swing.border.*;
import java.util.Scanner;
import java.awt.event.*;
import javax.swing.JOptionPane;

Dann sieht das nämlich so aus ;)
 
Acriss ;) direkt ausm Eclipse...

Danke für Formatierung. Da kennt ihr euch schon mal gut aus. Wie siehts aber mit meinem Quellcode aus Kann mir da jemand helfen
 
Zurück