Aloha!
Habe als Aufgabe Minesweeper mit Arrays und ausschließlich unter Verwendung der Konsole zu programmieren.
Erstmal mein eher bescheidener Anfang:
Main
Und das "Spiel"
An der Stelle, wo ich das Array füllen soll, weiß ich aber nicht weiter. Erstmal, dass das Array in fillfield logischerweise nicht mehr existert. Dazu wüsste ich dann nicht, wie ich die Minenfreien Felder füllen soll, bzw wie ich die Zahlen 0-8 ausrechnen und in das Array einfügen soll. Wahrscheinlich mit for each Schleifen, aber weiter bin ich noch nicht.
Dazu wüsste ich jetzt auch nicht, wie ich ein bestimmtes Feld mit "rechtem Mausklick" markieren bzw bei nochmaligen "rechtem Mausklick" die Markierung wieder wegnehmen soll. Evtl mit nem anderen Datentyp für das Array z.b. String?
Dazu hab ich im MOment noch das Problem, wenn ich bei
auf weiterspielen "klicke" das Array danach nicht mehr 8/8 oder 16/16 groß ist, sondern jeweils 30/16 ???:L
Würde mich über Hilfe freuen
Gruß
Habe als Aufgabe Minesweeper mit Arrays und ausschließlich unter Verwendung der Konsole zu programmieren.
Erstmal mein eher bescheidener Anfang:
Main
Java:
public class Main {
public static void main(String[] args) {
Minesweeper mine = new Minesweeper();
mine.level();
}
}
Und das "Spiel"
Java:
import java.util.Scanner;
public class Minesweeper {
Scanner input = new Scanner(System.in);
int level;
int chance;
int heightaction;
int widthaction;
int action;
void level(){
//ask for level
System.out.println("Wählen Sie den Schwierigkeitsgrad aus:");
System.out.println("1 für Anfänger");
System.out.println("2 für Fortgeschritten");
System.out.println("3 für Profi");
level = input.nextInt();
if (level == 1 || level == 2 || level == 3){
switch (level){
case 1: {
playGame(8, 8, 12);
}
case 2:{
playGame(16, 16, 16);
}
case 3: {
playGame(30, 16, 21);
}
}
}
else {
System.out.println("Falsche Eingabe, versuchen Sie es erneut!");
level();
}
}
void playGame(int height, int width, int chanceo){
int[][] field = new int[height][width];
fillfield(height, width, chanceo);
//ask for action
System.out.println("Geben Sie die Höhe ein (Zwischen 1 und " + height + ")");
heightaction = input.nextInt()-1;
//ask for action
System.out.println("Geben Sie die Breite ein (Zwischen 1 und " + width+ ")");
widthaction = input.nextInt()-1;
if (heightaction > field.length || widthaction > field.length
|| heightaction < field.length || widthaction < field.length){
System.out.println("Falsche Eingabe");
System.out.println("Wollen Sie weiterspielen?");
System.out.println("1 für Ja");
System.out.println("2 für Nein");
action = input.nextInt();
switch(action){
case 1: {
playGame(height, width, chanceo);
}
case 2: {
System.out.println("Auf Wiedersehen");
}
}
}
else {
if (field[height][width] == 10){
System.out.println("Sie haben eine Miene getroffen. GAME OVER!");
System.out.println("Wollen sie es erneut versuchen?");
System.out.println("1 für Ja");
System.out.println("2 für Nein");
action = input.nextInt();
switch(action){
case 1: {
level();
}
case 2: {
System.out.println("Auf Wiedersehen");
}
}
}
}
}
void fillfield(int height, int width, int chanceo){
for (int e: height){
for (int a: width){
chance = (int)(Math.random() * chanceo + 1);
if (chance == 10){
field.height.width == chance;
}
}
}
}
}
An der Stelle, wo ich das Array füllen soll, weiß ich aber nicht weiter. Erstmal, dass das Array in fillfield logischerweise nicht mehr existert. Dazu wüsste ich dann nicht, wie ich die Minenfreien Felder füllen soll, bzw wie ich die Zahlen 0-8 ausrechnen und in das Array einfügen soll. Wahrscheinlich mit for each Schleifen, aber weiter bin ich noch nicht.
Dazu wüsste ich jetzt auch nicht, wie ich ein bestimmtes Feld mit "rechtem Mausklick" markieren bzw bei nochmaligen "rechtem Mausklick" die Markierung wieder wegnehmen soll. Evtl mit nem anderen Datentyp für das Array z.b. String?
Dazu hab ich im MOment noch das Problem, wenn ich bei
Java:
if (heightaction > field.length || widthaction > field.length
|| heightaction < field.length || widthaction < field.length){
System.out.println("Falsche Eingabe");
System.out.println("Wollen Sie weiterspielen?");
System.out.println("1 für Ja");
System.out.println("2 für Nein");
action = input.nextInt();
switch(action){
case 1: {
playGame(height, width, chanceo);
}
case 2: {
System.out.println("Auf Wiedersehen");
}
}
}
Würde mich über Hilfe freuen
Gruß