Java :: Aufgabe #235 :: Lösung #1

2 Lösungen Lösungen öffentlich
#235

Tic-Tac-Toe GUI

Profi - Java von Gelöschte Person - 01.04.2019 um 21:22 Uhr
Programmiere ein Tic-Tac-Toe Spiele mit GUI.
Moduse die es geben sollte:
1 Spieler vs. Computergegner
1 Spieler vs. 1 Spieler
#1
vote_ok
von bumbum94 (60 Punkte) - 13.05.2019 um 11:00 Uhr
Das ganze Programm ist in mehreren Dateien geschrieben.

//Main.java
Quellcode ausblenden Java-Code
package Main;
import java.awt.EventQueue;
import P2P.*;
import P2C.*;
public class Main {

	protected static int win = 0;
	protected static int loose = 0;
	protected static int draw = 0;
	protected static String s1;
	protected static String s2;
	public static void main(String[] args) {
		
		
		
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					startGUI_W();
					
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}
	public static void startGUI() {
		@SuppressWarnings("unused")
		GUI maingame = new GUI(getWin(),getLoose(),getDraw());
	}
	public static void startGUI2() {
		@SuppressWarnings("unused")
		GUI2 maingame = new GUI2(getWin(),getLoose(),getDraw());
	}
	public static void startGUI_W() {
		@SuppressWarnings("unused")
		GUI_W window = new GUI_W();
	}
	static void startGUI_2P() {
		@SuppressWarnings("unused")
		GUI_2P pvp = new GUI_2P();
	}

	public static void setNames(String name, String name2) {
		s1 = name;
		s2 = name2;
	}
	public static String gets1() {
		
		return s1;
	}
	public static String gets2() {
		
		return s2;
	}
	public static String getWin() {
		
		String count = Integer.toString(win);
		
		return count;
	}
	public static void setWin() {
		win++;
	}
	public static String getLoose() {
		
		String count = Integer.toString(loose);
		
		return count;
	}
	public static void setLoose() {
		loose++;
	}
	public static String getDraw() {

		String count = Integer.toString(draw);
		
		return count;
	}
	public static void setDraw() {
		draw++;
	}
	public static void reset() {
		
		
		win = 0;
		loose = 0;
		draw = 0;
		
		startGUI_W();
		
	}
}


//Welcome GUI
Quellcode ausblenden Java-Code
package Main;
import java.awt.BorderLayout;


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;

import P2C.GUI_1P;
import P2P.GUI_2P;

import javax.swing.JLabel;
import javax.swing.ImageIcon;
import java.awt.Font;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;

@SuppressWarnings("serial")
public class GUI_W extends JFrame {

	private JPanel contentPane;

	
	public GUI_W() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		contentPane.setLayout(new BorderLayout(0, 0));
		setContentPane(contentPane);
		
		JLabel lbl_welcome = new JLabel("");
		lbl_welcome.setIcon(new ImageIcon("img/welcome.png"));
		contentPane.add(lbl_welcome, BorderLayout.NORTH);
		
		JPanel panel = new JPanel();
		contentPane.add(panel, BorderLayout.CENTER);
		panel.setLayout(null);
		
		JLabel lblWhleDenSpielmodus = new JLabel("W\u00E4hle den Spielmodus ");
		lblWhleDenSpielmodus.setFont(new Font("Wide Latin", Font.PLAIN, 20));
		lblWhleDenSpielmodus.setBounds(10, 0, 404, 65);
		panel.add(lblWhleDenSpielmodus);
		
		JButton btnSpieler = new JButton("2 Spieler");
		btnSpieler.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String s = e.getActionCommand();
				
				if ("2 Spieler".equals(s) ) {
					
					dispose();
					@SuppressWarnings("unused")
					GUI_2P game = new GUI_2P();
				}
				
				
			}
		});
		btnSpieler.setBounds(60, 76, 89, 23);
		panel.add(btnSpieler);
		
		JButton btnNewButton = new JButton("Gegen PC");
		btnNewButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				String s = e.getActionCommand();
				
				if ("Gegen PC".equals(s) ) {
					
					dispose();
					@SuppressWarnings("unused")
					GUI_1P game = new GUI_1P();
				}
			}
		});
		btnNewButton.setBounds(275, 76, 99, 23);
		panel.add(btnNewButton);
		
		setVisible(true);
	}
}


//GUI für Spieler erstellung
Quellcode ausblenden Java-Code
package P2P;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.SwingConstants;

@SuppressWarnings("serial")
public class GUI_2P extends JFrame {

	private JPanel contentPane;
	private JTextField txt_name;
	private JTextField txt_name2;

	
	public GUI_2P() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		AL al =new AL(this);
		
		JLabel lblNewLabel = new JLabel("");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setIcon(new ImageIcon("img/2p.png"));
		lblNewLabel.setBounds(10, 11, 414, 57);
		contentPane.add(lblNewLabel);
		
		JLabel lblSpieler = new JLabel("Spieler 1:");
		lblSpieler.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblSpieler.setBounds(10, 105, 66, 29);
		contentPane.add(lblSpieler);
		
		JLabel lblSpieler_1 = new JLabel("Spieler 2:");
		lblSpieler_1.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblSpieler_1.setBounds(10, 145, 66, 29);
		contentPane.add(lblSpieler_1);
		
		txt_name = new JTextField();
		txt_name.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txt_name.setBounds(86, 105, 90, 29);
		contentPane.add(txt_name);
		txt_name.setColumns(10);
		
		txt_name2 = new JTextField();
		txt_name2.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txt_name2.setColumns(10);
		txt_name2.setBounds(86, 145, 90, 29);
		contentPane.add(txt_name2);
		
		JButton btnZurck = new JButton("Zur\u00FCck");
		btnZurck.setBounds(335, 227, 89, 23);
		btnZurck.addActionListener(al);
		contentPane.add(btnZurck);
		
		JButton btnStart = new JButton("Start");
		btnStart.setBounds(236, 227, 89, 23);
		btnStart.addActionListener(al);
		contentPane.add(btnStart);
		
		JButton btnReset = new JButton("Reset");
		btnReset.setBounds(10, 227, 89, 23);
		btnReset.addActionListener(al);
		contentPane.add(btnReset);
		
		setVisible(true);
	}
	void setName1(String name) {
		
		txt_name.setText(name);
	}
	void setName2(String name) {
		
		txt_name2.setText(name);
	}
	public String getName() {
		
		String name = txt_name.getText();
		
		return name;
		
	}
	public String getName2() {
		
		String name = txt_name2.getText();
		
		return name;
		
	}
}


//2 Spieler Game GUI
Quellcode ausblenden Java-Code
package P2P;


import javax.swing.JFrame;

import java.awt.Image;

import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

import Main.Main;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;

public class GUI {

	static JFrame frame;
	static JLabel field1, field2, field3, field4, field5, field6, field7, field8, field9;
	static JLabel win = new JLabel(Main.getWin());
	static JLabel loose = new JLabel(Main.getLoose());
	static JLabel draw = new JLabel(Main.getDraw());
	static boolean x = true;
	static ArrayList<Integer> list_p1 = new ArrayList<Integer>();
	static ArrayList<Integer> list_p2 = new ArrayList<Integer>();
	static boolean[] clicked = {false,false,false,false,false,false,false,false,false,false};
	static Border b = LineBorder.createGrayLineBorder();
	
	public GUI(String win, String loose, String draw) {
		initialize();
	}

	
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 500, 574);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		
		@SuppressWarnings("unused")
		Border ub = BorderFactory.createLoweredBevelBorder();

		JPanel panel = new JPanel();
		panel.setBounds(43, 11, 400, 400);
		frame.getContentPane().add(panel);
		panel.setLayout(null);

		field1 = new JLabel("");
		field1.setHorizontalAlignment(SwingConstants.CENTER);
		field1.addMouseListener(new Player(frame, field1, 1));

		field1.setBounds(7, 7, 125, 125);
		field1.setBorder(b);
		panel.add(field1);

		field2 = new JLabel("");
		field2.setHorizontalAlignment(SwingConstants.CENTER);
		field2.addMouseListener(new Player(frame, field2, 2));

		field2.setBounds(138, 7, 125, 125);
		field2.setBorder(b);
		panel.add(field2);

		field3 = new JLabel("");
		field3.setHorizontalAlignment(SwingConstants.CENTER);
		field3.addMouseListener(new Player(frame, field3, 3));
		field3.setBounds(269, 7, 125, 125);
		field3.setBorder(b);
		panel.add(field3);

		field4 = new JLabel("");
		field4.setHorizontalAlignment(SwingConstants.CENTER);
		field4.addMouseListener(new Player(frame, field4, 4));
		field4.setBounds(7, 138, 125, 125);
		field4.setBorder(b);
		panel.add(field4);

		field7 = new JLabel("");
		field7.setHorizontalAlignment(SwingConstants.CENTER);
		field7.addMouseListener(new Player(frame, field7, 7));
		field7.setBounds(7, 269, 125, 125);
		field7.setBorder(b);
		panel.add(field7);

		field5 = new JLabel("");
		field5.setHorizontalAlignment(SwingConstants.CENTER);
		field5.addMouseListener(new Player(frame, field5, 5));
		field5.setBounds(138, 138, 125, 125);
		field5.setBorder(b);
		panel.add(field5);

		field6 = new JLabel("");
		field6.setHorizontalAlignment(SwingConstants.CENTER);
		field6.addMouseListener(new Player(frame, field6, 6));

		field6.setBounds(269, 138, 125, 125);
		field6.setBorder(b);
		panel.add(field6);

		field8 = new JLabel("");
		field8.setHorizontalAlignment(SwingConstants.CENTER);
		field8.addMouseListener(new Player(frame, field8, 8));
		field8.setBounds(138, 269, 125, 125);
		field8.setBorder(b);
		panel.add(field8);

		field9 = new JLabel("");
		field9.setHorizontalAlignment(SwingConstants.CENTER);
		field9.addMouseListener(new Player(frame, field9, 9));
		field9.setBounds(269, 269, 125, 125);
		field9.setBorder(b);
		panel.add(field9);

		JLabel player1 = new JLabel("Spieler 1:");
		player1.setBounds(43, 430, 69, 14);
		frame.getContentPane().add(player1);

		JLabel player2 = new JLabel("Spieler 2:");
		player2.setBounds(43, 455, 69, 14);
		frame.getContentPane().add(player2);

		JLabel name1 = new JLabel(Main.gets1());
		name1.setBounds(99, 430, 70, 14);
		frame.getContentPane().add(name1);

		JLabel name2 = new JLabel(Main.gets2());
		name2.setBounds(99, 455, 70, 14);
		frame.getContentPane().add(name2);

		win.setHorizontalAlignment(SwingConstants.CENTER);
		win.setBounds(397, 430, 46, 14);
		frame.getContentPane().add(win);

		loose.setHorizontalAlignment(SwingConstants.CENTER);
		loose.setBounds(397, 455, 46, 14);
		frame.getContentPane().add(loose);

		draw.setHorizontalAlignment(SwingConstants.CENTER);
		draw.setBounds(397, 480, 46, 14);
		frame.getContentPane().add(draw);

		JLabel lbl_win = new JLabel("Gewonnen:");
		lbl_win.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_win.setBounds(302, 430, 85, 14);
		frame.getContentPane().add(lbl_win);

		JLabel lbl_loose = new JLabel("Verloren:");
		lbl_loose.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_loose.setBounds(302, 455, 85, 14);
		frame.getContentPane().add(lbl_loose);

		JLabel lbl_draw = new JLabel("Unentschieden:");
		lbl_draw.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_draw.setBounds(267, 480, 120, 14);
		frame.getContentPane().add(lbl_draw);

		JButton btnNewGame = new JButton("Neues Spiel");
		btnNewGame.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent arg0) {
			}
		});
		btnNewGame.setBounds(23, 490, 109, 23);
		frame.getContentPane().add(btnNewGame);
		
		frame.setVisible(true);
	}

	void setField1(int f) {

		if (f == 1) {

			ImageIcon img = new ImageIcon("img/cross.png");
			img.getImage().flush();
			img.setImage(img.getImage().getScaledInstance(125, 125, Image.SCALE_DEFAULT));
			field1.setIcon(img);
		}
	}

	static void addList_p1(int i) {

		list_p1.add(i);
	}

	static void addList_p2(int i) {

		list_p2.add(i);
	}

	static void gameWin() {

		if ((list_p1.contains(1) & list_p1.contains(2) & list_p1.contains(3))
				| (list_p1.contains(4) & list_p1.contains(5) & list_p1.contains(6))
				| (list_p1.contains(7) & list_p1.contains(8) & list_p1.contains(9))
				| (list_p1.contains(1) & list_p1.contains(4) & list_p1.contains(7))
				| (list_p1.contains(2) & list_p1.contains(5) & list_p1.contains(8))
				| (list_p1.contains(3) & list_p1.contains(6) & list_p1.contains(9))
				| (list_p1.contains(1) & list_p1.contains(5) & list_p1.contains(9))
				| (list_p1.contains(3) & list_p1.contains(5) & list_p1.contains(7))) {

			JOptionPane.showMessageDialog(null, Main.gets1()+" hat gewonnen!");
			Main.setWin();
			repaint();
		}
		if ((list_p2.contains(1) & list_p2.contains(2) & list_p2.contains(3))
				| (list_p2.contains(4) & list_p2.contains(5) & list_p2.contains(6))
				| (list_p2.contains(7) & list_p2.contains(8) & list_p2.contains(9))
				| (list_p2.contains(1) & list_p2.contains(4) & list_p2.contains(7))
				| (list_p2.contains(2) & list_p2.contains(5) & list_p2.contains(8))
				| (list_p2.contains(3) & list_p2.contains(6) & list_p2.contains(9))
				| (list_p2.contains(1) & list_p2.contains(5) & list_p2.contains(9))
				| (list_p2.contains(3) & list_p2.contains(5) & list_p2.contains(7))) {

			JOptionPane.showMessageDialog(null, Main.gets2()+"hat gewonnen!");
			Main.setLoose();
			repaint();
		}
		if (allClicked() == true) {
			JOptionPane.showMessageDialog(null, "Unentschieden!");
			Main.setDraw();
			repaint();
			
		}
	}

	static void repaint() {

		ImageIcon img = new ImageIcon("img/plain.png");

		field1.setIcon(img);
		field2.setIcon(img);
		field3.setIcon(img);
		field4.setIcon(img);
		field5.setIcon(img);
		field6.setIcon(img);
		field7.setIcon(img);
		field8.setIcon(img);
		field9.setIcon(img);

		list_p1.clear();
		list_p2.clear();

		win.setText(Main.getWin());
		loose.setText(Main.getLoose());
		draw.setText(Main.getDraw());
		setUnClicked();

		frame.repaint();
	}

	static boolean clicked(int i) {

		return clicked[i];
	}

	static void setUnClicked() {

		clicked[9] = false;
		clicked[1] = false;
		clicked[2] = false;
		clicked[3] = false;
		clicked[4] = false;
		clicked[5] = false;
		clicked[6] = false;
		clicked[7] = false;
		clicked[8] = false;
		field1.setBorder(b);
		field2.setBorder(b);
		field3.setBorder(b);
		field4.setBorder(b);
		field5.setBorder(b);
		field6.setBorder(b);
		field7.setBorder(b);
		field8.setBorder(b);
		field9.setBorder(b);
	}
static void setClicked(int i) {
	
	clicked[i] =true;
	
}
	static boolean allClicked() {
		boolean all = false;

		if (clicked[9] == true & clicked[1] == true & clicked[2] == true & clicked[3] == true & clicked[4] == true
				& clicked[5] == true & clicked[6] == true & clicked[7] == true & clicked[8] == true) {
			all = true;
		}

			return all;
	}
}


//MouseListener
Quellcode ausblenden Java-Code
package P2P;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

import javax.swing.border.Border;
import javax.swing.border.LineBorder;

public class Player implements MouseListener {
	
	JFrame frame;
	JLabel field;
	Border b = LineBorder.createGrayLineBorder();
	Border ub = BorderFactory.createLoweredBevelBorder();
	@SuppressWarnings({ "unchecked", "rawtypes" })
	ArrayList<Integer> list_p1 = new ArrayList();
	@SuppressWarnings({ "unchecked", "rawtypes" })
	ArrayList<Integer> list_p2 = new ArrayList();
	
	ImageIcon cross = new ImageIcon("img/cross.png");
	ImageIcon circle = new ImageIcon("img/circle.png");
	
	boolean clicked = false;
	int i;
	
	public Player(JFrame frame, JLabel field,int i) {
		this.frame = frame;
		this.field = field;
		cross.getImage().flush();
		cross.setImage(cross.getImage().getScaledInstance(120, 120,Image.SCALE_DEFAULT));
		circle.getImage().flush();
		circle.setImage(circle.getImage().getScaledInstance(120, 120,Image.SCALE_DEFAULT));
		this.i = i;
		
	}

	@Override
	public void mouseClicked(MouseEvent e) {
		if (GUI.clicked(i) == false) {
			if (GUI.x == true) {
				
				field.setIcon(cross);
				frame.repaint();
				field_list(i);
				GUI.x=false;
				GUI.clicked[i] = true;
				System.out.println(GUI.list_p1);
				GUI.gameWin();
			}else {
				
				field.setIcon(circle);
				frame.repaint();
				field_list(i);
				GUI.x=true;
				GUI.clicked[i] = true;
				System.out.println(GUI.list_p2);
				GUI.gameWin();
		}}
		
	}

	@Override
	public void mouseEntered(MouseEvent e) {
		if (GUI.clicked(i) == false) {
			field.setBorder(ub);
		}
	}

	@Override
	public void mouseExited(MouseEvent e) {
		if (GUI.clicked(i) == false) {
			field.setBorder(b);
		}
		
	}

	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	void field_list(int i) {
		
		if (i ==1 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==2 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==3 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==4 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==5 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==6 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==7 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==8 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==9 && GUI.x ==true) {
			GUI.addList_p1(i);
		}
		if (i ==1 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==2 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==3 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==4 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==5 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==6 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==7 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==8 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		if (i ==9 && GUI.x ==false) {
			GUI.addList_p2(i);
		}
		
	}
	
}


//ActionListener
Quellcode ausblenden Java-Code
package P2P;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;



import Main.Main;

public class AL implements ActionListener {

	GUI_2P frame;
	
	public AL(GUI_2P frame) {
	
		this.frame = frame;
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		
		String s = e.getActionCommand();
		
		if ("Reset".equals(s)) {
			
			frame.setName1("");
			frame.setName2("");			
		}
		if ("Start".contentEquals(s)) {
			
			Main.setNames(frame.getName(), frame.getName2());
			frame.dispose();
			Main.startGUI();
		}
		if ("Zurück".equals(s)) {
			frame.dispose();
			Main.startGUI_W();
		}
		
	}

}


//Jetz der Player vs Pc Part
//Spielererstellung
Quellcode ausblenden Java-Code
package P2C;


import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import java.awt.Font;
import java.util.Random;

import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.ImageIcon;
import javax.swing.SwingConstants;

@SuppressWarnings("serial")
public class GUI_1P extends JFrame {

	private JPanel contentPane;
	private JTextField txt_name;
	private JTextField txt_name2;

	
	public GUI_1P() {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 450, 300);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		AL al =new AL(this);
		
		JLabel lblNewLabel = new JLabel("");
		lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
		lblNewLabel.setIcon(new ImageIcon("img/1p.png"));
		lblNewLabel.setBounds(10, 11, 414, 57);
		contentPane.add(lblNewLabel);
		
		JLabel lblSpieler = new JLabel("Spieler 1:");
		lblSpieler.setHorizontalAlignment(SwingConstants.RIGHT);
		lblSpieler.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblSpieler.setBounds(10, 105, 70, 29);
		contentPane.add(lblSpieler);
		
		JLabel lblSpieler_1 = new JLabel("Spieler(PC):");
		lblSpieler_1.setFont(new Font("Tahoma", Font.PLAIN, 14));
		lblSpieler_1.setBounds(10, 145, 76, 29);
		contentPane.add(lblSpieler_1);
		
		txt_name = new JTextField();
		txt_name.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txt_name.setBounds(86, 105, 90, 29);
		contentPane.add(txt_name);
		txt_name.setColumns(10);
		
		txt_name2 = new JTextField(kiName());
		txt_name2.setFont(new Font("Tahoma", Font.PLAIN, 14));
		txt_name2.setColumns(10);
		txt_name2.setBounds(86, 145, 90, 29);
		contentPane.add(txt_name2);
		
		JButton btnZurck = new JButton("Zur\u00FCck");
		btnZurck.setBounds(335, 227, 89, 23);
		btnZurck.addActionListener(al);
		contentPane.add(btnZurck);
		
		JButton btnStart = new JButton("Start");
		btnStart.setBounds(236, 227, 89, 23);
		btnStart.addActionListener(al);
		contentPane.add(btnStart);
		
		JButton btnReset = new JButton("Reset");
		btnReset.setBounds(10, 227, 89, 23);
		btnReset.addActionListener(al);
		contentPane.add(btnReset);
		
		setVisible(true);
	}
	void setName1(String name) {
		
		txt_name.setText(name);
	}
	void setName2(String name) {
		
		txt_name2.setText(name);
	}
	public String getName() {
		
		String name = txt_name.getText();
		
		return name;
		
	}
	public String getName2() {
		
		String name = txt_name2.getText();
		
		return name;
		
	}
	String kiName() {
		
		Random rand = new Random();
		 
		String[] name = {"Horst","Matilda","Christian","Magarete","Steffan","Claudia","Andreas","Moni"};
		
		int i = rand.nextInt(7);
		
		return name[i];
	}
}


//PvC Game GUI
Quellcode ausblenden Java-Code
package P2C;

import javax.swing.JFrame;
import java.awt.Image;
import javax.swing.JPanel;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

import Main.Main;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import java.util.ArrayList;

public class GUI2 {

	static JFrame frame;
	static JLabel field1, field2, field3, field4, field5, field6, field7, field8, field9;
	static JLabel win = new JLabel(Main.getWin());
	static JLabel loose = new JLabel(Main.getLoose());
	static JLabel draw = new JLabel(Main.getDraw());
	static boolean x = true;
	static ArrayList<Integer> list_p1 = new ArrayList<Integer>();
	static ArrayList<Integer> list_p2 = new ArrayList<Integer>();
	static boolean[] clicked = {false,false,false,false,false,false,false,false,false,false};
	static Border b = LineBorder.createGrayLineBorder();
	
	public GUI2(String win, String loose, String draw) {
		initialize();
	}

	/**
	 * Initialize the contents of the frame.
	 */
	private void initialize() {
		frame = new JFrame();
		frame.setBounds(100, 100, 500, 574);
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.getContentPane().setLayout(null);

		
		@SuppressWarnings("unused")
		Border ub = BorderFactory.createLoweredBevelBorder();

		JPanel panel = new JPanel();
		panel.setBounds(43, 11, 400, 400);
		frame.getContentPane().add(panel);
		panel.setLayout(null);

		field1 = new JLabel("");
		field1.setHorizontalAlignment(SwingConstants.CENTER);
		field1.addMouseListener(new Player(frame, field1, 1));

		field1.setBounds(7, 7, 125, 125);
		field1.setBorder(b);
		panel.add(field1);

		field2 = new JLabel("");
		field2.setHorizontalAlignment(SwingConstants.CENTER);
		field2.addMouseListener(new Player(frame, field2, 2));

		field2.setBounds(138, 7, 125, 125);
		field2.setBorder(b);
		panel.add(field2);

		field3 = new JLabel("");
		field3.setHorizontalAlignment(SwingConstants.CENTER);
		field3.addMouseListener(new Player(frame, field3, 3));
		field3.setBounds(269, 7, 125, 125);
		field3.setBorder(b);
		panel.add(field3);

		field4 = new JLabel("");
		field4.setHorizontalAlignment(SwingConstants.CENTER);
		field4.addMouseListener(new Player(frame, field4, 4));
		field4.setBounds(7, 138, 125, 125);
		field4.setBorder(b);
		panel.add(field4);

		field7 = new JLabel("");
		field7.setHorizontalAlignment(SwingConstants.CENTER);
		field7.addMouseListener(new Player(frame, field7, 7));
		field7.setBounds(7, 269, 125, 125);
		field7.setBorder(b);
		panel.add(field7);

		field5 = new JLabel("");
		field5.setHorizontalAlignment(SwingConstants.CENTER);
		field5.addMouseListener(new Player(frame, field5, 5));
		field5.setBounds(138, 138, 125, 125);
		field5.setBorder(b);
		panel.add(field5);

		field6 = new JLabel("");
		field6.setHorizontalAlignment(SwingConstants.CENTER);
		field6.addMouseListener(new Player(frame, field6, 6));

		field6.setBounds(269, 138, 125, 125);
		field6.setBorder(b);
		panel.add(field6);

		field8 = new JLabel("");
		field8.setHorizontalAlignment(SwingConstants.CENTER);
		field8.addMouseListener(new Player(frame, field8, 8));
		field8.setBounds(138, 269, 125, 125);
		field8.setBorder(b);
		panel.add(field8);

		field9 = new JLabel("");
		field9.setHorizontalAlignment(SwingConstants.CENTER);
		field9.addMouseListener(new Player(frame, field9, 9));
		field9.setBounds(269, 269, 125, 125);
		field9.setBorder(b);
		panel.add(field9);

		JLabel player1 = new JLabel("Spieler 1:");
		player1.setBounds(43, 430, 69, 14);
		frame.getContentPane().add(player1);

		JLabel player2 = new JLabel("Spieler 2:");
		player2.setBounds(43, 455, 69, 14);
		frame.getContentPane().add(player2);

		JLabel name1 = new JLabel(Main.gets1());
		name1.setBounds(99, 430, 70, 14);
		frame.getContentPane().add(name1);

		JLabel name2 = new JLabel(Main.gets2());
		name2.setBounds(99, 455, 70, 14);
		frame.getContentPane().add(name2);

		win.setHorizontalAlignment(SwingConstants.CENTER);
		win.setBounds(397, 430, 46, 14);
		frame.getContentPane().add(win);

		loose.setHorizontalAlignment(SwingConstants.CENTER);
		loose.setBounds(397, 455, 46, 14);
		frame.getContentPane().add(loose);

		draw.setHorizontalAlignment(SwingConstants.CENTER);
		draw.setBounds(397, 480, 46, 14);
		frame.getContentPane().add(draw);

		JLabel lbl_win = new JLabel("Gewonnen:");
		lbl_win.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_win.setBounds(302, 430, 85, 14);
		frame.getContentPane().add(lbl_win);

		JLabel lbl_loose = new JLabel("Verloren:");
		lbl_loose.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_loose.setBounds(302, 455, 85, 14);
		frame.getContentPane().add(lbl_loose);

		JLabel lbl_draw = new JLabel("Unentschieden:");
		lbl_draw.setHorizontalAlignment(SwingConstants.RIGHT);
		lbl_draw.setBounds(267, 480, 120, 14);
		frame.getContentPane().add(lbl_draw);

		JButton btnNewGame = new JButton("Neues Spiel");
		btnNewGame.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				
				String s = e.getActionCommand();
				
				if ("Neues Spiel".equals(s)) {
					frame.dispose();
					win.setText("0");
					loose.setText("0");
					draw.setText("0");
					Main.reset();
					
				}
			}
		});
		btnNewGame.setBounds(23, 490, 109, 23);
		frame.getContentPane().add(btnNewGame);
		
		frame.setVisible(true);
	}

	void setField1(int f) {

		if (f == 1) {

			ImageIcon img = new ImageIcon("img/cross.png");
			img.getImage().flush();
			img.setImage(img.getImage().getScaledInstance(125, 125, Image.SCALE_DEFAULT));
			field1.setIcon(img);
		}
	}

	static void addList_p1(int i) {

		list_p1.add(i);
	}

	static void addList_p2(int i) {

		list_p2.add(i);
	}

	static void gameWin() {

		if ((list_p1.contains(1) & list_p1.contains(2) & list_p1.contains(3))
				| (list_p1.contains(4) & list_p1.contains(5) & list_p1.contains(6))
				| (list_p1.contains(7) & list_p1.contains(8) & list_p1.contains(9))
				| (list_p1.contains(1) & list_p1.contains(4) & list_p1.contains(7))
				| (list_p1.contains(2) & list_p1.contains(5) & list_p1.contains(8))
				| (list_p1.contains(3) & list_p1.contains(6) & list_p1.contains(9))
				| (list_p1.contains(1) & list_p1.contains(5) & list_p1.contains(9))
				| (list_p1.contains(3) & list_p1.contains(5) & list_p1.contains(7))) {

			JOptionPane.showMessageDialog(null, Main.gets1()+" hat gewonnen!");
			Main.setWin();
			repaint();
		}
		if ((list_p2.contains(1) & list_p2.contains(2) & list_p2.contains(3))
				| (list_p2.contains(4) & list_p2.contains(5) & list_p2.contains(6))
				| (list_p2.contains(7) & list_p2.contains(8) & list_p2.contains(9))
				| (list_p2.contains(1) & list_p2.contains(4) & list_p2.contains(7))
				| (list_p2.contains(2) & list_p2.contains(5) & list_p2.contains(8))
				| (list_p2.contains(3) & list_p2.contains(6) & list_p2.contains(9))
				| (list_p2.contains(1) & list_p2.contains(5) & list_p2.contains(9))
				| (list_p2.contains(3) & list_p2.contains(5) & list_p2.contains(7))) {

			JOptionPane.showMessageDialog(null, Main.gets2()+" hat gewonnen!");
			Main.setLoose();
			repaint();
		}
		if (allClicked() == true) {
			JOptionPane.showMessageDialog(null, "Unentschieden!");
			Main.setDraw();
			repaint();
			
		}
	}

	static void repaint() {

		ImageIcon img = new ImageIcon("img/plain.png");

		field1.setIcon(img);
		field2.setIcon(img);
		field3.setIcon(img);
		field4.setIcon(img);
		field5.setIcon(img);
		field6.setIcon(img);
		field7.setIcon(img);
		field8.setIcon(img);
		field9.setIcon(img);

		list_p1.clear();
		list_p2.clear();

		win.setText(Main.getWin());
		loose.setText(Main.getLoose());
		draw.setText(Main.getDraw());
		setUnClicked();

		frame.repaint();
	}

	static boolean clicked(int i) {

		return clicked[i];
	}

	static void setUnClicked() {

		clicked[9] = false;
		clicked[1] = false;
		clicked[2] = false;
		clicked[3] = false;
		clicked[4] = false;
		clicked[5] = false;
		clicked[6] = false;
		clicked[7] = false;
		clicked[8] = false;
		field1.setBorder(b);
		field2.setBorder(b);
		field3.setBorder(b);
		field4.setBorder(b);
		field5.setBorder(b);
		field6.setBorder(b);
		field7.setBorder(b);
		field8.setBorder(b);
		field9.setBorder(b);
	}
static void setClicked(int i) {
	
	clicked[i] =true;
	
}
	static boolean allClicked() {
		boolean all = false;

		if (clicked[9] == true & clicked[1] == true & clicked[2] == true & clicked[3] == true & clicked[4] == true
				& clicked[5] == true & clicked[6] == true & clicked[7] == true & clicked[8] == true) {
			all = true;
		}

			return all;
	}
}


//MouseListener
Quellcode ausblenden Java-Code
package P2C;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.ArrayList;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.border.Border;
import javax.swing.border.LineBorder;

public class Player implements MouseListener {
	
	JFrame frame;
	JLabel field;
	Border b = LineBorder.createGrayLineBorder();
	Border ub = BorderFactory.createLoweredBevelBorder();
	@SuppressWarnings({ "unchecked", "rawtypes" })
	ArrayList<Integer> list_p1 = new ArrayList();
	@SuppressWarnings({ "unchecked", "rawtypes" })
	ArrayList<Integer> list_p2 = new ArrayList();
	
	ImageIcon cross = new ImageIcon("img/cross.png");
	ImageIcon circle = new ImageIcon("img/circle.png");
	
	boolean clicked = false;
	int i;
	
	public Player(JFrame frame, JLabel field,int i) {
		this.frame = frame;
		this.field = field;
		cross.getImage().flush();
		cross.setImage(cross.getImage().getScaledInstance(120, 120,Image.SCALE_DEFAULT));
		circle.getImage().flush();
		circle.setImage(circle.getImage().getScaledInstance(120, 120,Image.SCALE_DEFAULT));
		this.i = i;
		
	}

	@Override
	public void mouseClicked(MouseEvent e) {
		if (GUI2.clicked(i) == false) {
			if (GUI2.x == true) {
				
				field.setIcon(cross);
				frame.repaint();
				field_list(i);
				GUI2.x=false;
				GUI2.clicked[i] = true;
				System.out.println(GUI2.list_p1);
				GUI2.gameWin();
				@SuppressWarnings("unused")
				KI ki = new KI(frame, field, i,circle);
			}else {
				
			
		}}
		
	}

	@Override
	public void mouseEntered(MouseEvent e) {
		if (GUI2.clicked(i) == false) {
			field.setBorder(ub);
		}
	}

	@Override
	public void mouseExited(MouseEvent e) {
		if (GUI2.clicked(i) == false) {
			field.setBorder(b);
		}
		
	}

	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub
		
	}
	void field_list(int i) {
		
		if (i ==1 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==2 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==3 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==4 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==5 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==6 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==7 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==8 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==9 && GUI2.x ==true) {
			GUI2.addList_p1(i);
		}
		if (i ==1 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==2 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==3 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==4 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==5 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==6 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==7 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==8 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		if (i ==9 && GUI2.x ==false) {
			GUI2.addList_p2(i);
		}
		
	}
	
}


// KI
Quellcode ausblenden Java-Code
package P2C;

import java.util.Random;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.border.Border;

public class KI extends Player {

	Random rand = new Random();
	ImageIcon circle;
	Border ub = BorderFactory.createLoweredBevelBorder();
	JLabel fieldki;
	int p;

	public KI(JFrame frame, JLabel field, int i) {
		super(frame, field, i);
		play();
	}

	public KI(JFrame frame, JLabel field, int i, ImageIcon circle) {
		super(frame, field, i);
		this.circle = circle;
		play();
	}

	void play() {

//		PC gewinnmöglichkeiten werden geprüft
		if (((GUI2.list_p2.contains(2) & GUI2.list_p2.contains(3))
				|| (GUI2.list_p2.contains(4) & GUI2.list_p2.contains(7))
				|| (GUI2.list_p2.contains(5) & GUI2.list_p2.contains(9))) & GUI2.clicked[1] == false) {

			fieldki = GUI2.field1;
			p = 1;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(3))
				|| (GUI2.list_p2.contains(5) & GUI2.list_p2.contains(8))) & GUI2.clicked[2] == false) {

			fieldki = GUI2.field2;
			p = 2;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();

		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(2))
				|| (GUI2.list_p2.contains(6) & GUI2.list_p2.contains(9))
				|| (GUI2.list_p2.contains(5) & GUI2.list_p2.contains(7))) & GUI2.clicked[3] == false) {

			fieldki = GUI2.field3;
			p = 3;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(7))
				|| (GUI2.list_p2.contains(5) & GUI2.list_p2.contains(6))) & GUI2.clicked[4] == false) {

			fieldki = GUI2.field4;
			p = 4;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();

		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(9))
				|| (GUI2.list_p2.contains(2) & GUI2.list_p2.contains(8))
				|| (GUI2.list_p2.contains(3) & GUI2.list_p2.contains(7))
				|| (GUI2.list_p2.contains(4) & GUI2.list_p2.contains(6))) & GUI2.clicked[5] == false) {

			fieldki = GUI2.field5;
			p = 5;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(3) & GUI2.list_p2.contains(9))
				|| (GUI2.list_p2.contains(4) & GUI2.list_p2.contains(5))) & GUI2.clicked[6] == false) {

			fieldki = GUI2.field6;
			p = 6;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(4))
				|| (GUI2.list_p2.contains(3) & GUI2.list_p2.contains(5))
				|| (GUI2.list_p2.contains(8) & GUI2.list_p2.contains(9))) & GUI2.clicked[7] == false) {

			fieldki = GUI2.field7;
			p = 7;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(2) & GUI2.list_p2.contains(5))
				|| (GUI2.list_p2.contains(7) & GUI2.list_p2.contains(9))) & GUI2.clicked[8] == false) {

			fieldki = GUI2.field8;
			p = 8;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p2.contains(1) & GUI2.list_p2.contains(5))
				|| (GUI2.list_p2.contains(3) & GUI2.list_p2.contains(6))
				|| (GUI2.list_p2.contains(7) & GUI2.list_p2.contains(8))) & GUI2.clicked[9] == false) {

			fieldki = GUI2.field9;
			p = 9;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		// Spieler gewinnmöglichkeiten werden geprüft
		else if (((GUI2.list_p1.contains(2) & GUI2.list_p1.contains(3))
				|| (GUI2.list_p1.contains(4) & GUI2.list_p1.contains(7))
				|| (GUI2.list_p1.contains(5) & GUI2.list_p1.contains(9))) & GUI2.clicked[1] == false) {

			fieldki = GUI2.field1;
			p = 1;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(3))
				|| (GUI2.list_p1.contains(5) & GUI2.list_p1.contains(8))) & GUI2.clicked[2] == false) {

			fieldki = GUI2.field2;
			p = 2;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(2))
				|| (GUI2.list_p1.contains(6) & GUI2.list_p1.contains(9))
				|| (GUI2.list_p1.contains(5) & GUI2.list_p1.contains(7))) & GUI2.clicked[3] == false) {

			fieldki = GUI2.field3;
			p = 3;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(7))
				|| (GUI2.list_p1.contains(5) & GUI2.list_p1.contains(6))) & GUI2.clicked[4] == false) {

			fieldki = GUI2.field4;
			p = 4;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();

		} else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(9))
				|| (GUI2.list_p1.contains(2) & GUI2.list_p1.contains(8))
				|| (GUI2.list_p1.contains(3) & GUI2.list_p1.contains(7))
				|| (GUI2.list_p1.contains(4) & GUI2.list_p1.contains(6))) & GUI2.clicked[5] == false) {

			fieldki = GUI2.field5;
			p = 5;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		} else if (((GUI2.list_p1.contains(3) & GUI2.list_p1.contains(9))
				|| (GUI2.list_p1.contains(4) & GUI2.list_p1.contains(5))) & GUI2.clicked[6] == false) {

			fieldki = GUI2.field6;
			p = 6;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(4))
				|| (GUI2.list_p1.contains(3) & GUI2.list_p1.contains(5))
				|| (GUI2.list_p1.contains(8) & GUI2.list_p1.contains(9))) & GUI2.clicked[7] == false) {

			fieldki = GUI2.field7;
			p = 7;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		else if (((GUI2.list_p1.contains(2) & GUI2.list_p1.contains(5))
				|| (GUI2.list_p1.contains(7) & GUI2.list_p1.contains(9))) & GUI2.clicked[8] == false) {

			fieldki = GUI2.field8;
			p = 8;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		else if (((GUI2.list_p1.contains(1) & GUI2.list_p1.contains(5))
				|| (GUI2.list_p1.contains(3) & GUI2.list_p1.contains(6))
				|| (GUI2.list_p1.contains(7) & GUI2.list_p1.contains(8))) & GUI2.clicked[9] == false) {

			fieldki = GUI2.field9;
			p = 9;

			fieldki.setIcon(circle);
			fieldki.setBorder(ub);
			GUI2.frame.repaint();
			field_list(p);
			GUI2.x = true;
			GUI2.clicked[p] = true;
			System.out.println(GUI2.list_p2);
			GUI2.gameWin();
		}

		else {

			int f = 1 + rand.nextInt(9);

			while (GUI2.list_p2.contains(f) | GUI2.list_p1.contains(f)) {

				f = 1 + rand.nextInt(9);
			}

			switch (f) {
			case 1:
				GUI2.field1.setIcon(circle);
				GUI2.field1.setBorder(ub);
				GUI2.frame.repaint();
				field_list(1);
				GUI2.x = true;
				GUI2.clicked[1] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 2:
				GUI2.field2.setIcon(circle);
				GUI2.field2.setBorder(ub);
				GUI2.frame.repaint();
				field_list(2);
				GUI2.x = true;
				GUI2.clicked[2] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 3:
				GUI2.field3.setIcon(circle);
				GUI2.field3.setBorder(ub);
				GUI2.frame.repaint();
				field_list(3);
				GUI2.x = true;
				GUI2.clicked[3] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 4:
				GUI2.field4.setIcon(circle);
				GUI2.field4.setBorder(ub);
				GUI2.frame.repaint();
				field_list(4);
				GUI2.x = true;
				GUI2.clicked[4] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 5:
				GUI2.field5.setIcon(circle);
				GUI2.field5.setBorder(ub);
				GUI2.frame.repaint();
				field_list(5);
				GUI2.x = true;
				GUI2.clicked[1] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 6:
				GUI2.field6.setIcon(circle);
				GUI2.field6.setBorder(ub);
				GUI2.frame.repaint();
				field_list(6);
				GUI2.x = true;
				GUI2.clicked[6] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 7:
				GUI2.field7.setIcon(circle);
				GUI2.field7.setBorder(ub);
				GUI2.frame.repaint();
				field_list(7);
				GUI2.x = true;
				GUI2.clicked[7] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 8:
				GUI2.field8.setIcon(circle);
				GUI2.field8.setBorder(ub);
				GUI2.frame.repaint();
				field_list(8);
				GUI2.x = true;
				GUI2.clicked[8] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;
			case 9:
				GUI2.field9.setIcon(circle);
				GUI2.field9.setBorder(ub);
				GUI2.frame.repaint();
				field_list(9);
				GUI2.x = true;
				GUI2.clicked[9] = true;
				System.out.println(GUI2.list_p2);
				GUI2.gameWin();
				break;

			}

		}

	}

}


//ActionListener
Quellcode ausblenden Java-Code
package P2C;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;



import Main.Main;

public class AL implements ActionListener {

	GUI_1P frame;
	
	public AL(GUI_1P frame) {
	
		this.frame = frame;
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		
		String s = e.getActionCommand();
		
		if ("Reset".equals(s)) {
			
			frame.setName1("");
			frame.setName2(frame.kiName());			
		}
		if ("Start".contentEquals(s)) {
			
			Main.setNames(frame.getName(), frame.getName2());
			frame.dispose();
			Main.startGUI2();
		}
		if ("Zurück".equals(s)) {
			frame.dispose();
			Main.startGUI_W();
		}
		
	}

}


Bitte seid gnädig xD wäre bestimmt auch kompakter gegangen ich bin aber jetz erstmal froh das es läuft ^^

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben