Marco Hoheneder
Grünschnabel
hat sich erledigt!
Zuletzt bearbeitet:
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
Also hast du noch gar nix eigenes....The classes Ship.java and
Ocean.java are given and there is no need to change them.
class SchiffeVersenken {
public static Spielfeld s;
private static int i;
public static void main(String[] args) {
Start s = new Start();
s.frmGegnerauswahl.setVisible(true);
while (s.spielArt() == 0) {
}
i = s.spielArt();
if (s.spielArt() == 1) {
s.frmGegnerauswahl.dispose();
spiel1vs1();
}
if (s.spielArt() == 2) {
s.frmGegnerauswahl.dispose();
spielervscom();
}
}
public static void spiel1vs1() {
Dateneingabe de = new Dateneingabe(i);
while(!de.fertig()){
}
s = new Spielfeld();
Com hucom = new Com();
Human spieler1 = new Human(de.getName());
spieler1.spielfeld.setSpielfeld(s);
if (de.check()) {
spieler1.spielfeld = hucom.setzeSchiff(spieler1.spielfeld);
} else {
spieler1.setzSchiff(s);
}
Human spieler2 = new Human(de.getName2());
spieler2.spielfeld.setSpielfeld(s);
if (de.check2()) {
spieler2.spielfeld = hucom.setzeSchiff(spieler2.spielfeld);
} else {
spieler2.setzSchiff(s);
}
Spielablauf sablauf = new Spielablauf(s);
de.frame.dispose();
sablauf.svs(spieler1, spieler2);
}
public static void spielervscom() {
Dateneingabe de = new Dateneingabe(i);
while(!de.fertig()){
}
Com com = new Com();
s = new Spielfeld();
com.spielfeld = com.setzeSchiff(com.spielfeld);
Human spieler = new Human(de.getName());
spieler.spielfeld.setSpielfeld(s);
if (de.check()) {
spieler.spielfeld = com.setzeSchiff(spieler.spielfeld);
} else {
spieler.setzSchiff(s);
}
Spielablauf sablauf = new Spielablauf(s);
de.frame.dispose();
sablauf.svsc(spieler, com);
}
import java.util.ArrayList;
public class Karte {
Feld ek = new Feld();
Feld fk = new Feld();
int[] position = new int[2];
protected int length = 0;
protected int anzahl = 0;
protected String text = null;
protected String text2 = null;
protected boolean check;
public int treffer = 0;
protected Input i = new Input();
private int schlachtschiffAnzahl = 1;
private int kreuzerAnzahl = 2;
private int zerstoererAnzahl = 3;
private int ubootAnzahl = 4;
ArrayList<Schiff> objectlist = new ArrayList<Schiff>();
private Spielfeld s;
public void setSpielfeld(Spielfeld s1) {
s = s1;
}
public void display() {
position[0] = 0;
position[1] = 0;
int x1 = 0;
int y1 = 0;
int x2 = 0;
int y2 = 0;
try {
for (int count = 0; count <= 9; count++) {
for (int counter = 0; counter <= 9; counter++) {
if (fk.i[position[0]] == ('S')) {
s.setData2(x2, y2, 1);
}
if (fk.i[position[0]] == ('X')) {
s.setData2(x2, y2, 2);
}
if (fk.i[position[0]] == ('O')) {
s.setData2(x2, y2, 3);
}
if (x2 != 9) {
x2++;
} else {
x2 = 0;
y2++;
}
position[0]++;
}
for (int counter = 0; counter <= 9; counter++) {
if (ek.i[position[1]] == 'S') {
s.setData(x1, y1, 1);
}
if (ek.i[position[1]] == 'X') {
s.setData(x1, y1, 2);
}
if (ek.i[position[1]] == 'O') {
s.setData(x1, y1, 3);
}
if (x1 != 9) {
x1++;
} else {
x1 = 0;
y1++;
}
position[1]++;
}
}
s.frame.setVisible(true);
} catch (Exception e) {
}
}
public int[] schiffAnzahl() {
int[] sAnzahl = new int[4];
sAnzahl[0] = schlachtschiffAnzahl;
sAnzahl[1] = kreuzerAnzahl;
sAnzahl[2] = zerstoererAnzahl;
sAnzahl[3] = ubootAnzahl;
return sAnzahl;
}
public void schiffeSetzen() {
int schiffcount = 0;
while (schiffcount < schlachtschiffAnzahl) {
objectlist.add(new Schlachtschiff());
schiffcount++;
}
schiffcount = 0;
while (schiffcount < kreuzerAnzahl) {
objectlist.add(new Kreuzer());
schiffcount++;
}
schiffcount = 0;
while (schiffcount < zerstoererAnzahl) {
objectlist.add(new Zerstoerer());
schiffcount++;
}
schiffcount = 0;
while (schiffcount < ubootAnzahl) {
objectlist.add(new UBoot());
schiffcount++;
}
this.display();
boolean check = false;
for (int counter = 0; counter < objectlist.size(); counter++) {
objectlist.get(counter).posi = this.setzeSchiff(
objectlist.get(counter).getLength(), objectlist
.get(counter).getText(), objectlist.get(counter)
.getText2());
for (int count = 0; count < objectlist.get(counter).getLength(); count++) {
while (check != true) {
if (ek.i[objectlist.get(counter).getPosi()[count]] == 'S') {
System.out
.println("Dort ist bereits ein Schiff platziert,");
objectlist.get(counter).posi = this.setzeSchiff(
objectlist.get(counter).getLength(), objectlist
.get(counter).getText(), objectlist
.get(counter).getText2());
} else {
ek.i[objectlist.get(counter).getPosi()[count]] = 'S';
check = true;
}
}
check = false;
}
this.display();
}
}
private int[] setzeSchiff(int l, String t, String t2) {
length = l;
text = t;
text2 = t2;
check = false;
System.out.println(text);
String input = i.inoutput();
try {
if (this.ermittlePosi(input, length)[0] != this.ermittlePosi(input,
length)[1]) {
check = true;
}
} catch (NullPointerException NPE) {
check = false;
}
while (check == false) {
System.out.println(text2);
input = i.inoutput();
try {
if (this.ermittlePosi(input, length)[0] != this.ermittlePosi(
input, length)[1]) {
check = true;
}
} catch (NullPointerException NPE) {
check = false;
}
}
return this.ermittlePosi(input, length);
}
public int[] ermittlePosi(String in, int le) {
int[] posi = new int[le];
in = in.trim();
if (in.length() >= 5)
try {
char[] zeichen1 = in.substring(0, 1).toCharArray();
char[] zeichen2 = in.substring(in.indexOf("-") + 1,
in.indexOf("-") + 2).toCharArray();
int zahl1 = Integer.parseInt(in.substring(1, in.indexOf("-")));
int zahl2 = Integer.parseInt(in.substring(in.indexOf("-") + 2));
{
int counter = 0;
int count = 0;
int count2 = 0;
int count3 = 0;
int count4 = 0;
while (counter <= 9) {
if (ek.y[counter] == zeichen1[0]) {
count = counter;
}
if (ek.x[counter] == zahl1) {
count2 = counter;
}
if (ek.y[counter] == zeichen2[0]) {
count3 = counter;
}
if (ek.x[counter] == zahl2) {
count4 = counter;
}
counter++;
}
if (count * 10 + count2 == (count3 * 10 + count4)
- (length - 1)) {
posi[0] = count * 10 + count2;
for (int pos = 1; pos < le; pos++) {
posi[pos] = posi[0] + pos;
}
}
if (count * 10 + count2 == (count3 * 10 + count4)
+ (length - 1)) {
posi[0] = count * 10 + count2;
for (int pos = 1; pos < le; pos++) {
posi[pos] = posi[0] - pos;
}
}
if (count * 10 + count2 == (count3 * 10 + count4)
- ((length - 1) * 10)) {
posi[0] = count * 10 + count2;
for (int pos = 1; pos < le; pos++) {
posi[pos] = posi[0] + 10 * (pos);
}
}
if (count * 10 + count2 == (count3 * 10 + count4)
+ (length - 1) * 10) {
posi[0] = count * 10 + count2;
for (int pos = 1; pos < le; pos++) {
posi[pos] = posi[0] - 10 * (pos);
}
}
}
} catch (NumberFormatException NFE) {
posi[0] = 0;
posi[1] = 0;
}
return posi;
}
public int checkTreffer(int positi) {
treffer = 0;
for (int count = 0; count < objectlist.size(); count++) {
if (objectlist.get(count).versenkt() == false) {
if (objectlist.get(count).treffer(positi) == true) {
treffer = 1;
if (objectlist.get(count).versenkt() == true) {
treffer = 2;
}
}
}
}
return treffer;
}
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JLabel;
import javax.swing.SwingConstants;
import java.awt.Color;
import java.awt.Font;
import java.awt.SystemColor;
public class Start {
private int back = 0;
public JFrame frmGegnerauswahl;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Start window = new Start();
window.frmGegnerauswahl.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Start() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
public int spielArt(){
return back;
}
private void initialize() {
try{
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
}catch(Exception e){
}
frmGegnerauswahl = new JFrame();
frmGegnerauswahl.getContentPane().setBackground(SystemColor.activeCaption);
frmGegnerauswahl.setUndecorated(true);
frmGegnerauswahl.setOpacity(0.9f);
frmGegnerauswahl.setTitle("Gegnerauswahl");
frmGegnerauswahl.setBounds(0, 0, 450, 300);
frmGegnerauswahl.setLocationRelativeTo(null);
frmGegnerauswahl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frmGegnerauswahl.getContentPane().setLayout(null);
JButton btnNewButton = new JButton("X");
btnNewButton.setFont(new Font("SansSerif", Font.BOLD, 12));
btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
btnNewButton.setBorder(null);
btnNewButton.setBounds(414, 11, 26, 23);
frmGegnerauswahl.getContentPane().add(btnNewButton);
JButton btnNewButton_1 = new JButton("Anderer Spieler");
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
back = 1;
}
});
btnNewButton_1.setFont(new Font("SansSerif", Font.BOLD, 12));
btnNewButton_1.setBounds(56, 142, 150, 28);
frmGegnerauswahl.getContentPane().add(btnNewButton_1);
JButton btnNewButton_2 = new JButton("Computer");
btnNewButton_2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
back = 2;
}
});
btnNewButton_2.setFont(new Font("SansSerif", Font.BOLD, 12));
btnNewButton_2.setBounds(243, 142, 118, 28);
frmGegnerauswahl.getContentPane().add(btnNewButton_2);
JLabel lblNewLabel = new JLabel("Bitte Gegner ausw\u00E4hlen******");
lblNewLabel.setFont(new Font("SansSerif", Font.BOLD, 16));
lblNewLabel.setForeground(Color.WHITE);
lblNewLabel.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel.setHorizontalTextPosition(SwingConstants.CENTER);
lblNewLabel.setBounds(56, 38, 305, 23);
frmGegnerauswahl.getContentPane().add(lblNewLabel);
}
}
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.UIManager;
import javax.swing.JInternalFrame;
import java.awt.BorderLayout;
import java.awt.Color;
import java.beans.PropertyVetoException;
import javax.swing.event.InternalFrameAdapter;
import javax.swing.event.InternalFrameEvent;
import javax.swing.JDesktopPane;
import javax.swing.border.BevelBorder;
import javax.swing.DebugGraphics;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.JTable;
import java.awt.Dimension;
import javax.swing.table.DefaultTableModel;
import javax.swing.ListSelectionModel;
import java.awt.Cursor;
import javax.swing.JToolBar;
import java.awt.Font;
import javax.swing.SwingConstants;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Spielfeld {
public JFrame frame;
private JTable table;
private JTable table_1;
private JLabel lblTreffer;
public boolean klick = false;
public int col;
public int row;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Spielfeld window = new Spielfeld();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public void setklick() {
klick = false;
}
public int getRow() {
return row;
}
public int getCol() {
return col;
}
public void setText(int i) {
if (i == 0){
lblTreffer.setText("Treffer******");
lblTreffer.setVisible(true);
} else if (i == 1) {
lblTreffer.setText("Wasser******");
lblTreffer.setVisible(true);
} else if (i == 2) {
lblTreffer.setText("Versenkt******");
lblTreffer.setVisible(true);
} else if (i == 3) {
lblTreffer.setText("Gewonnen******");
lblTreffer.setVisible(true);
} else if (i == 4) {
lblTreffer.setText("Verloren******");
lblTreffer.setVisible(true);
}
}
public void setData(int x1, int y1, int v3) {
int x = x1;
int y = y1;
String s = " S";
switch (v3) {
case 1:
s = " S";
break;
case 2:
s = " X";
break;
case 3:
s = " O";
break;
}
table_1.setValueAt(s, x, y);
}
public void setData2(int x1, int y1, int v3) {
int x = x1;
int y = y1;
String s = " S";
switch (v3) {
case 1:
s = " S";
break;
case 2:
s = " X";
break;
case 3:
s = " O";
break;
}
table.setValueAt(s, x, y);
}
/**
* Create the application.
*/
public Spielfeld() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
@SuppressWarnings("serial")
private void initialize() {
try {
UIManager
.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Exception e) {
}
frame = new JFrame("Schiffeversenken");
frame.setUndecorated(true);
frame.setSize(800, 600);
frame.setLocationRelativeTo(null);
JInternalFrame internalFrame = new JInternalFrame("Schiffeversenken");
internalFrame.setFrameIcon(null);
internalFrame.setFocusable(false);
internalFrame.setFocusTraversalKeysEnabled(false);
internalFrame.setFocusCycleRoot(false);
internalFrame.setDebugGraphicsOptions(DebugGraphics.NONE_OPTION);
internalFrame.addInternalFrameListener(new InternalFrameAdapter() {
@Override
public void internalFrameClosing(InternalFrameEvent arg0) {
System.exit(0);
}
});
internalFrame.setSize(frame.getSize().width, frame.getSize().height);
try {
internalFrame.setSelected(true);
} catch (PropertyVetoException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
internalFrame.setVisible(true);
internalFrame.setClosable(true);
internalFrame.setBackground(Color.GREEN);
frame.getContentPane().add(internalFrame, BorderLayout.CENTER);
JDesktopPane desktopPane = new JDesktopPane();
desktopPane.setBackground(Color.WHITE);
desktopPane.setForeground(Color.WHITE);
desktopPane.setBorder(new BevelBorder(BevelBorder.LOWERED, null, null,
null, null));
internalFrame.getContentPane().add(desktopPane, BorderLayout.CENTER);
desktopPane.setLayout(null);
JInternalFrame internalFrame_1 = new JInternalFrame("Feindeskarte");
internalFrame_1.setBounds(16, 47, 262, 247);
internalFrame_1.setIconifiable(true);
desktopPane.add(internalFrame_1);
internalFrame_1.getContentPane().setLayout(null);
table = new JTable();
table.addMouseListener(new MouseAdapter() {
@Override
public void mouseReleased(MouseEvent e) {
klick = true;
col = table.getSelectedColumn();
row = table.getSelectedRow();
}
});
table.setCellSelectionEnabled(true);
table.setFocusable(false);
table.setFocusTraversalKeysEnabled(false);
table.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
table.setAutoResizeMode(JTable.AUTO_RESIZE_LAST_COLUMN);
table.setAutoCreateRowSorter(true);
table.setAutoscrolls(false);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setBackground(Color.BLACK);
table.setGridColor(Color.WHITE);
table.setForeground(Color.WHITE);
table.setRowHeight(20);
table.setModel(new DefaultTableModel(
new Object[][] {
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null }, }, new String[] { "New column",
"New column", "New column", "New column", "New column",
"New column", "New column", "New column", "New column",
"New column" }) {
boolean[] columnEditables = new boolean[] { false, false, false,
false, false, false, false, false, false, false };
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
table.setShowVerticalLines(true);
table.setShowHorizontalLines(true);
table.setPreferredSize(new Dimension(50, 50));
table.setBounds(23, 18, 230, 201);
internalFrame_1.getContentPane().add(table);
JLabel lblLabel = new JLabel("label");
lblLabel.setBounds(0, 0, 252, 218);
lblLabel.setIcon(new ImageIcon(Spielfeld.class
.getResource("/com/ris/azubi/schiffe2/Karte.JPG")));
internalFrame_1.getContentPane().add(lblLabel);
JInternalFrame internalFrame_2 = new JInternalFrame("Eigene Karte");
internalFrame_2.setBounds(294, 47, 262, 247);
internalFrame_2.setIconifiable(true);
desktopPane.add(internalFrame_2);
internalFrame_2.getContentPane().setLayout(null);
table_1 = new JTable();
table_1.setCellSelectionEnabled(true);
table_1.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table_1.setModel(new DefaultTableModel(
new Object[][] {
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null },
{ null, null, null, null, null, null, null, null, null,
null }, }, new String[] { "New column",
"New column", "New column", "New column", "New column",
"New column", "New column", "New column", "New column",
"New column" }) {
boolean[] columnEditables = new boolean[] { false, false, false,
false, false, false, false, false, false, false };
public boolean isCellEditable(int row, int column) {
return columnEditables[column];
}
});
table_1.setShowVerticalLines(true);
table_1.setShowHorizontalLines(true);
table_1.setRowHeight(20);
table_1.setPreferredSize(new Dimension(50, 50));
table_1.setGridColor(Color.WHITE);
table_1.setForeground(Color.WHITE);
table_1.setBackground(Color.BLACK);
table_1.setBounds(23, 18, 230, 201);
internalFrame_2.getContentPane().add(table_1);
JLabel label = new JLabel("label");
label.setIcon(new ImageIcon(Spielfeld.class
.getResource("/com/ris/azubi/schiffe2/Karte.JPG")));
label.setBounds(0, 0, 252, 218);
internalFrame_2.getContentPane().add(label);
JToolBar toolBar = new JToolBar();
toolBar.setPreferredSize(new Dimension(790, 4));
toolBar.setFloatable(false);
toolBar.setBounds(2, 0, 783, 24);
desktopPane.add(toolBar);
lblTreffer = new JLabel("");
lblTreffer.setOpaque(true);
lblTreffer.setHorizontalAlignment(SwingConstants.CENTER);
lblTreffer.setFont(new Font("SansSerif", Font.BOLD, 16));
lblTreffer.setForeground(Color.WHITE);
lblTreffer.setBackground(Color.BLACK);
lblTreffer.setPreferredSize(new Dimension(786, 22));
toolBar.add(lblTreffer);
internalFrame_2.setVisible(true);
internalFrame_1.setVisible(true);
frame.setVisible(true);
}
}
public class Human extends Spieler {
public Human(String s){
name = s;
}
public void setzSchiff(Spielfeld sf){
System.out.println();
System.out.println(name + " bitte setzen!");
System.out.println();
spielfeld.schiffeSetzen();
}
}
import java.awt.EventQueue;
public class Dateneingabe {
JFrame frame;
private JTextField text1;
private JTextField text2;
private JLabel lblNewLabel_1;
private int spieler;
private boolean b = false;
private boolean check1;
private boolean check2;
private JCheckBox checkbox1;
private JCheckBox checkbox2;
private String sname1;
private String sname2;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Dateneingabe window = new Dateneingabe(2);
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public Dateneingabe(int i) {
spieler = i;
initialize();
}
public boolean fertig() {
return b;
}
public boolean check() {
return check1;
}
public boolean check2() {
return check2;
}
public String getName() {
return sname1;
}
public String getName2() {
return sname2;
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
try {
UIManager
.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
} catch (Exception e) {
}
frame = new JFrame();
frame.getContentPane().setBackground(new Color(255, 102, 153));
frame.setUndecorated(true);
frame.setOpacity(0.9f);
frame.setTitle("Dateneingabe");
frame.setBounds(0, 0, 450, 300);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
text1 = new JTextField();
text1.setBounds(158, 82, 122, 28);
frame.getContentPane().add(text1);
text1.setColumns(10);
JLabel name1 = new JLabel("Spieler1:");
name1.setFont(new Font("SansSerif", Font.PLAIN, 12));
name1.setBounds(24, 88, 122, 16);
frame.getContentPane().add(name1);
lblNewLabel_1 = new JLabel("Bitte eingeben!");
lblNewLabel_1.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_1.setFont(new Font("SansSerif", Font.BOLD, 16));
lblNewLabel_1.setBounds(101, 16, 247, 25);
frame.getContentPane().add(lblNewLabel_1);
checkbox1 = new JCheckBox("Schiffe automatisch setzen");
checkbox1.setFont(new Font("SansSerif", Font.PLAIN, 12));
checkbox1.setBounds(23, 126, 257, 18);
frame.getContentPane().add(checkbox1);
if (spieler == 1) {
JLabel name2 = new JLabel("Spieler2:");
name2.setVisible(true);
name2.setBounds(25, 174, 122, 16);
frame.getContentPane().add(name2);
text2 = new JTextField();
text2.setVisible(true);
text2.setColumns(10);
text2.setBounds(159, 168, 122, 28);
frame.getContentPane().add(text2);
checkbox2 = new JCheckBox("Schiffe automatisch setzen");
checkbox2.setVisible(true);
checkbox2.setBounds(24, 212, 256, 18);
frame.getContentPane().add(checkbox2);
JButton weiter2 = new JButton("Weiter");
weiter2.setFont(new Font("SansSerif", Font.BOLD, 12));
weiter2.setVisible(true);
weiter2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (text1.getText().equals("")
|| text2.getText().equals("")) {
lblNewLabel_1.setText("Bitte Namen eingeben!");
} else {
b = true;
check1 = checkbox1.isSelected();
check2 = checkbox2.isSelected();
sname1 = text1.getText();
sname2 = text2.getText();
}
}
});
weiter2.setBounds(328, 253, 90, 28);
frame.getContentPane().add(weiter2);
} else {
JButton weiter1 = new JButton("Weiter");
weiter1.setFont(new Font("SansSerif", Font.BOLD, 12));
weiter1.setVisible(true);
weiter1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (text1.getText().equals("")) {
lblNewLabel_1.setText("Bitte Namen eingeben!");
} else {
b = true;
check1 = checkbox1.isSelected();
sname1 = text1.getText();
}
}
});
weiter1.setBounds(328, 132, 90, 28);
frame.getContentPane().add(weiter1);
}
JButton button = new JButton("X");
button.setFont(new Font("SansSerif", Font.BOLD, 12));
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
button.setBorder(null);
button.setBounds(418, 6, 26, 23);
frame.getContentPane().add(button);
frame.setVisible(true);
}
}
import java.util.ArrayList;
import java.util.Random;
public class Com extends Spieler {
ArrayList<Character> arrayPos = new ArrayList<Character>();
ArrayList<Integer> arrayKoordi = new ArrayList<Integer>();
Random r = new Random();
public Com() {
name = "Com";
fillarrayPos();
}
private void fillarrayPos() {
for (int count = 0; count <= 99; count++) {
arrayPos.add('O');
}
}
private void objectlist(Karte sp){
int schiffcount = 0;
while (schiffcount < spielfeld.schiffAnzahl()[0]) {
sp.objectlist.add(new Schlachtschiff());
schiffcount++;
}
schiffcount = 0;
while (schiffcount < spielfeld.schiffAnzahl()[1]) {
sp.objectlist.add(new Kreuzer());
schiffcount++;
}
schiffcount = 0;
while (schiffcount < spielfeld.schiffAnzahl()[2]) {
sp.objectlist.add(new Zerstoerer());
schiffcount++;
}
schiffcount = 0;
while (schiffcount < spielfeld.schiffAnzahl()[3]) {
sp.objectlist.add(new UBoot());
schiffcount++;
}
}
public Karte setzeSchiff(Karte spielfeld) {
int posi = 0;
int counter = 0;
int countercheck = 0;
int schiffscount = 0;
int zaehler = 0;
int length = 4;
int ausrichtung = 0;
int countarray = 99;
boolean check;
objectlist(spielfeld);
while (zaehler <= 3) {
while (counter < spielfeld.schiffAnzahl()[zaehler]) {
check = false;
while (!check) {
check = true;
posi = r.nextInt(countarray);
ausrichtung = r.nextInt(10);
if (arrayPos.get(posi) == 'X') {
check = false;
} else {
boolean check2 = false;
countercheck = 0;
if (ausrichtung <= 5) {
if (posi + length <= arrayPos.size()) {
for (int count = 9; count <= 99; count = count + 10) {
if (posi <= count && posi + length <= count
&& posi >= countercheck * 10) {
check2 = true;
for (int counti = 0; counti <= length; counti++) {
if (arrayPos.get(posi + counti) == 'X') {
check2 = false;
} else {
arrayKoordi.add(posi + counti);
}
}
}
countercheck++;
}
} else {
for (int count = 9; count <= 99; count = count + 10) {
if (posi <= count && posi - length <= count
&& posi >= countercheck * 10) {
check2 = true;
for (int counti = 0; counti <= length; counti++) {
if (arrayPos.get(posi - counti) == 'X') {
check2 = false;
} else {
arrayKoordi.add(posi - counti);
}
}
}
countercheck++;
}
}
} else {
if (posi + length*10 <= arrayPos.size()) {
for (int count = 9; count <= 99; count = count + 10) {
if (posi <= count && posi + length*10 > 0 && posi + length*10 <= 99) {
check2 = true;
for (int counti = 0; counti <= length; counti++) {
if (arrayPos.get(posi + counti*10) == 'X') {
check2 = false;
} else {
arrayKoordi.add(posi + counti*10);
}
}
}
}
} else {
for (int count = 9; count <= 99; count = count + 10) {
if (posi <= count && posi - length*10 > 0) {
check2 = true;
for (int counti = 0; counti <= length; counti++) {
if (arrayPos.get(posi - counti*10) == 'X') {
check2 = false;
} else {
arrayKoordi.add(posi- counti*10);
}
}
}
}
}
}
if (check2) {
check = true;
} else {
check = false;
for(int countK = arrayKoordi.size(); countK != 0; countK--){
arrayKoordi.remove(countK-1);
}
}
}
}
counter++;
spielfeld.objectlist.get(schiffscount).posi = new int[arrayKoordi.size()];
for (int counti2 = 0; counti2 <= length; counti2++) {
spielfeld.ek.i[arrayKoordi.get(counti2)] = 'S';
arrayPos.set(arrayKoordi.get(counti2), 'X');
spielfeld.objectlist.get(schiffscount).posi[counti2] = arrayKoordi.get(counti2);
}
for(int countK = arrayKoordi.size(); countK != 0; countK--){
arrayKoordi.remove(countK-1);
}
schiffscount++;
}
counter = 0;
zaehler++;
length--;
}
return spielfeld;
}
public void schuss(){
}
}
class Feld {
int [] x = new int [10];
char [] y = new char [10];
char [] i = new char [100];
public Feld(){
x[0] = 1;
x[1] = 2;
x[2] = 3;
x[3] = 4;
x[4] = 5;
x[5] = 6;
x[6] = 7;
x[7] = 8;
x[8] = 9;
x[9] = 10;
y[0] = 'A';
y[1] = 'B';
y[2] = 'C';
y[3] = 'D';
y[4] = 'E';
y[5] = 'F';
y[6] = 'G';
y[7] = 'H';
y[8] = 'I';
y[9] = 'J';
for(int count = 0; count <= 99; count++){
i[count] = ' ';
}
}
}
public abstract class Spieler {
Karte spielfeld = new Karte();
String name = "Kein Name";
int scount = 0;
public Spieler(){
}
public String getName(){
return name;
}
public int getScount(){
return scount;
}
public Karte getSpielfeld(){
return spielfeld;
}
public void setSpielfeld(Karte sf){
spielfeld = sf;
}
public void setScount(int sc){
scount = sc;
}
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Input {
String inputdata = null;;
public Input(){
}
public String inoutput(){
InputStreamReader input = new InputStreamReader(System.in);
BufferedReader reader = new BufferedReader(input);
try{
inputdata = reader.readLine();
}
catch(IOException ioe)
{
ioe.printStackTrace();
}
return inputdata;
}
}
import java.util.ArrayList;
import java.util.Random;
public class Schuss {
ArrayList<Integer> arrayPos = new ArrayList<Integer>();
ArrayList<Integer> arrayPos2 = new ArrayList<Integer>();
Random r = new Random();
private Spielfeld sf;
public int row;
public int col;
public Schuss(Spielfeld sp) {
sf = sp;
fillarrayPos();
}
public int gameLogik(Karte spielfeld) {
int rewert = 0;
boolean check = false;
spielfeld.display();
while (check == false) {
try {
sf.setklick();
while (!sf.klick) {
}
col = sf.getCol();
row = sf.getRow();
sf.setklick();
rewert = row + (col * 10);
check = true;
} catch (Exception E) {
System.out.println("Bitte richtige Werte eingeben!");
}
}
return rewert;
}
private void fillarrayPos() {
for (int count = 0; count <= 99; count++) {
arrayPos.add(count);
}
for (int count = 0; count <= 99; count++) {
arrayPos2.add(count);
}
}
public int gameLogikCom(Karte spielfeld) {
int rewert = 100;
int n = 0;
while (rewert < 0 || rewert >= 99) {
n = r.nextInt(arrayPos2.size()-1);
rewert = (int) arrayPos2.get(n);
}
System.out.println(arrayPos2.get(n));
System.out.println(arrayPos2.size());
System.out.println(rewert);
arrayPos2.remove(n);
return rewert;
}
public boolean deletePos(int i) {
if (checkPos(i)) {
arrayPos.remove(i);
return true;
} else {
return false;
}
}
public boolean checkPos(int i) {
if (i >= 0) {
if ((arrayPos.size()-1) >= i) {
if ((arrayPos.get(i)-1) == i) {
return true;
} else {
return false;
}
} else {
return false;
}
} else {
return false;
}
}
}
public class Schiff {
protected int length = 0;
protected String text = null;
protected String text2 = null;
protected Feld feld = new Feld();
protected boolean check;
protected Input i = new Input();
public int[] posi;
private int[] belegt = new int [5];
private int[] checkb = new int [5];
protected int tcount = 0;
boolean treffer = false;
boolean versenkt = false;
public Schiff() {
}
public void setLength(int l) {
length = l;
}
public void setText(String t) {
text = t;
}
public void setText2(String t2) {
text2 = t2;
}
public int getLength() {
return length;
}
public String getText() {
return text;
}
public String getText2() {
return text2;
}
public int[] getPosi() {
return posi;
}
public boolean treffer(int position) {
treffer = false;
for (int counter = 0; counter < length; counter++) {
if (position == posi[counter]) {
treffer = true;
tcount++;
if (belegt[counter] == position && checkb[counter] == 1){
treffer = false;
tcount--;
}
else{
belegt[counter] = position;
checkb[counter] = 1;
}
}
}
return treffer;
}
public boolean versenkt() {
if (tcount == length) {
versenkt = true;
}
return versenkt;
}
public class Schlachtschiff extends Schiff {
public Schlachtschiff(){
super.length = 5;
super.text = "Position des 5er Schiffes bitte eingeben, Beispiel A1-A5!";
super.text2 = "Bitte richtige Werte eingeben, Beispiel A1-A5 oder A1-E1!";
}
}
public class Kreuzer extends Schiff {
public Kreuzer(){
super.length = 4;
super.text = "Position des 4er Schiffes bitte eingeben, Beispiel A1-A4!";
super.text2 = "Bitte richtige Werte eingeben, Beispiel A1-A4 oder A1-D1!";
}
}
public class UBoot extends Schiff {
public UBoot(){
super.length = 2;
super.text = "Position des 2er Schiffes bitte eingeben, Beispiel A1-A2!";
super.text2 = "Bitte richtige Werte eingeben, Beispiel A1-A2 oder A1-B1!";
}
}
public class Zerstoerer extends Schiff {
public Zerstoerer(){
super.length = 3;
super.text = "Position des 3er Schiffes bitte eingeben, Beispiel A1-A3!";
super.text2 = "Bitte richtige Werte eingeben, Beispiel A1-A3 oder A1-C1!";
}
}
import java.util.Random;
public class Spielablauf {
Karte spielfeld = new Karte();
Karte spielfeld2 = new Karte();
int vschiff = 0;
int treffer = 0;
int koordi = 0;
int count = 0;
Random random = new Random();
private Spielfeld sf;
public Spielablauf(Spielfeld sp) {
sf = sp;
}
public void svs(Human s1, Human s2) {
while (count > 0 && count < 3) {
count = random.nextInt(1);
}
boolean doppelrunde = false;
boolean win = false;
String sname = null;
Schuss sab = new Schuss(sf);
while (win == false) {
if (count == 1) {
spielfeld = s1.getSpielfeld();
spielfeld2 = s2.getSpielfeld();
sname = s1.getName();
count = 2;
vschiff = s1.getScount();
} else {
spielfeld = s2.getSpielfeld();
spielfeld2 = s1.getSpielfeld();
sname = s2.getName();
count = 1;
vschiff = s2.getScount();
}
doppelrunde = true;
while (doppelrunde == true) {
doppelrunde = false;
treffer = 0;
koordi = sab.gameLogik(spielfeld);
System.out.println();
treffer = spielfeld2.checkTreffer(koordi);
if (treffer == 0) {
sf.setText(1);
doppelrunde = false;
}
if (treffer == 1) {
sf.setText(0);
doppelrunde = true;
}
if (treffer == 2) {
sf.setText(2);
System.out.println();
doppelrunde = true;
vschiff++;
if (vschiff < spielfeld2.objectlist.size()) {
} else {
spielfeld.fk.i[koordi] = 'X';
spielfeld.display();
}
}
if (doppelrunde == true) {
spielfeld.fk.i[koordi] = 'X';
spielfeld2.ek.i[koordi] = 'X';
} else {
spielfeld.fk.i[koordi] = 'O';
spielfeld2.ek.i[koordi] = 'O';
}
if (count == 2) {
s1.setSpielfeld(spielfeld);
s2.setSpielfeld(spielfeld2);
s1.setScount(vschiff);
} else {
s2.setSpielfeld(spielfeld);
s1.setSpielfeld(spielfeld2);
s2.setScount(vschiff);
}
if (vschiff == spielfeld.objectlist.size()) {
System.out.println();
System.out.println(sname + " gewinnt!");
System.out.println();
win = true;
}
}
}
}
public void svsc(Spieler splayer, Com cplayer) {
while (count > 0 && count < 3) {
count = random.nextInt(1);
}
boolean doppelrunde = false;
boolean win = false;
String sname = null;
int comSchuss = 0;
Schuss sab = new Schuss(sf);
while (win == false) {
if (count == 1) {
spielfeld = splayer.getSpielfeld();
spielfeld2 = cplayer.getSpielfeld();
sname = splayer.getName();
count = 2;
vschiff = splayer.getScount();
} else {
spielfeld = cplayer.getSpielfeld();
spielfeld2 = splayer.getSpielfeld();
sname = cplayer.getName();
count = 1;
vschiff = cplayer.getScount();
}
doppelrunde = true;
while (doppelrunde) {
doppelrunde = false;
treffer = 0;
if (!sname.equals("Com")) {
koordi = sab.gameLogik(spielfeld);
} else {
if (comSchuss == 0) {
koordi = sab.gameLogikCom(spielfeld);
}
if (comSchuss == 1) {
if (sab.checkPos(koordi)) {
koordi = koordi++;
comSchuss = 1;
} else {
comSchuss = 2;
}
}
if (comSchuss == 2) {
if (sab.checkPos(koordi - 1)) {
koordi = koordi--;
} else {
comSchuss = 3;
}
}
if (comSchuss == 3) {
if (sab.checkPos(koordi + 10)) {
koordi = koordi + 10;
} else {
comSchuss = 4;
}
}
if (comSchuss == 4) {
if (sab.checkPos(koordi - 10)) {
koordi = koordi - 10;
} else {
comSchuss = 0;
koordi = sab.gameLogikCom(spielfeld);
}
}
}
treffer = spielfeld2.checkTreffer(koordi);
if (treffer == 0) {
if (!sname.equals("Com")) {
sf.setText(1);
}
doppelrunde = false;
if (comSchuss != 0) {
comSchuss++;
}
}
if (treffer == 1) {
comSchuss = 1;
doppelrunde = true;
if (!sname.equals("Com")) {
sf.setText(1);
}
}
boolean ende = false;
if (treffer == 2) {
if (!sname.equals("Com")) {
sf.setText(2);
} else {
comSchuss = 0;
}
doppelrunde = true;
vschiff++;
if (vschiff < spielfeld2.objectlist.size()) {
if (!sname.equals("Com")) {
spielfeld.display();
}
} else {
if (!sname.equals("Com")) {
ende = true;
spielfeld.display();
}
}
}
if (!ende) {
if (doppelrunde == true) {
spielfeld.fk.i[koordi] = 'X';
spielfeld2.ek.i[koordi] = 'X';
} else {
spielfeld.fk.i[koordi] = 'O';
spielfeld2.ek.i[koordi] = 'O';
}
if (count == 2) {
splayer.setSpielfeld(spielfeld);
cplayer.setSpielfeld(spielfeld2);
splayer.setScount(vschiff);
spielfeld.display();
} else {
cplayer.setSpielfeld(spielfeld);
splayer.setSpielfeld(spielfeld2);
cplayer.setScount(vschiff);
spielfeld.display();
}
}
if (vschiff == spielfeld.objectlist.size()) {
if (!sname.equals("Com")) {
sf.setText(3);
} else {
sf.setText(4);
}
win = true;
}
}
}
}
public void netz(Human spieler) {
}
}