Anzahl der benachbarten Minen berechnen und setzen

L

LucaToni

Aktives Mitglied
Hab eine Methode, welche die Anzahl der benachbarten Minen berechnet und dann mit einer anderen Setter Methode setzt.

Ich bin grad etwas hilflos.
Würde mich über Ideen und Hilfen freuen.

Java:
/**Methode die ich versuche zu implementieren
*/
private void berechneAnzahl(final IKoordinate Koordinate) {
      
  }
 
L

LucaToni

Aktives Mitglied
Naja sollen nur der exakten Nachbarn gezählt werden oder möchtest du einen gewissen Radius abdecken?
eigentlich nur die direkten Nachbar... beispielweise...wenn ich bei x=4; y=2....3 Minen als nachbar habe dann will ich da die 3 herausbekommen und mit hilfe meiner Settermethode die 3 setzen...
Ich dachte an eine doppelte for-Schleife... aber ich weiß nicht wie ich das hier implementieren soll, da ich in dieser Klasse keine Koordinaten habe... und nicht weiß wie ich die übergebenen Parameter dafür benutzen kann.

Vorher habe ich halt Minen gesetzt mit der Methode:

Code:
private void setzeMinen() {
   Random zufallszahl=new Random();
        int zufallsx=zufallszahl.nextInt(breite);
        int zufallsy=zufallszahl.nextInt(hoehe);
        board[zufallsy][zufallsy].vermint();
    }
 
Kirby.exe

Kirby.exe

Top Contributor
Also eigentlich brauchst du dafür keine For-Schleife ;) Du musst nur nach oben, unten, links und rechts schauen und als Ausgangspunkt verwendest du dein Koordinaten Kontainer ;)
Schick mal deine Klasse IKoordinate
 
L

LucaToni

Aktives Mitglied
Also eigentlich brauchst du dafür keine For-Schleife ;) Du musst nur nach oben, unten, links und rechts schauen und als Ausgangspunkt verwendest du dein Koordinaten Kontainer ;)
Schick mal deine Klasse IKoordinate

Meinst du 4 if abfragen? oder sogar 8 .... da die nachbarn diagonal zur position auch direkte nachbarn sind...

IKoordinate ist nur ein Interface...
Code:
public interface IKoordinate {

  /**
   * Gibt den x Wert zurueck.
   *
   * @return X Wert.
   */
  public int getX();

  /**
   * Setzt eine neue x Position.
   *
   * @param x Neuer x Wert.
   */
  public void setX(final int x);

  /**
   * Gibt den y Wert zurueck.
   *
   * @return Y Wert.
   */
  public int getY();

  /**
   * Setzt eine neue y Position.
   *
   * @param y Neuer y Wert.
   */
  public void setY(final int y);
}
 
L

lennero

Bekanntes Mitglied
8 if abfragen? meinst du das geht nicht besser mit schleifen ? also einfacher und eleganter

Loop halt von der ersten Nachbarszelle oben links bis rechts, und das 3 mal wobei du die mittlere Zelle weglässt.

Was du untersuchen möchtest ist eine 3x3 Zelle (wobei die mittlere Zelle weggelassen wird). Das ist für mich schöner als 8 Koordinaten zu untersuchen.

Wenn du nicht weiterkommst, schau hier

 
mihe7

mihe7

Top Contributor
wie kann ich denn in eine for schleife eine Anweisung einbauen? nur am Ende der verschachtelten For-Schleife?
@lennero hat Dir ja bereits einen Link geschickt, in dem eine mögliche Lösung zu sehen ist. Ich würde die aber etwas anders gestalten:
Java:
for (int row = 0; row < 3; row++) {
    for (int col = 0; col < 3; col++) {
        // Das Feld, auf dem man steht, ist nicht vermint, daher
        // muss man das mittlere Feld nicht unbedingt auslassen.
        // Wenn man will, kann man das natürlich machen, einfach
        // zusätzlich prüfen, ob col != row gilt:
        // if (col != row && istVermint(col + x - 1, row + y - 1)) {
        if (istVermint(col + x - 1, row + y - 1)) {
            count++;
        }
    }
}
mit
Java:
boolean istVermint(int x, int y) {
    if (y < 0 || y >= board.length || x < 0 || x >= board[0].length) {
        return false; // ausserhalb des Spielfelds ist garantiert nichts vermint
    }
    return board[x][y].istVermint();
}
Der Vorteil ist, dass in den Schleifen nicht überprüft werden muss, ob sich das Koordinatenpaar auf dem Brett findet.
 
L

LucaToni

Aktives Mitglied
@lennero hat Dir ja bereits einen Link geschickt, in dem eine mögliche Lösung zu sehen ist. Ich würde die aber etwas anders gestalten:
Java:
for (int row = 0; row < 3; row++) {
    for (int col = 0; col < 3; col++) {
        // Das Feld, auf dem man steht, ist nicht vermint, daher
        // muss man das mittlere Feld nicht unbedingt auslassen.
        // Wenn man will, kann man das natürlich machen, einfach
        // zusätzlich prüfen, ob col != row gilt:
        // if (col != row && istVermint(col + x - 1, row + y - 1)) {
        if (istVermint(col + x - 1, row + y - 1)) {
            count++;
        }
    }
}
mit
Java:
boolean istVermint(int x, int y) {
    if (y < 0 || y >= board.length || x < 0 || x >= board[0].length) {
        return false; // ausserhalb des Spielfelds ist garantiert nichts vermint
    }
    return board[x][y].istVermint();
}
Der Vorteil ist, dass in den Schleifen nicht überprüft werden muss, ob sich das Koordinatenpaar auf dem Brett findet.
Aber was passiert mit den übergebenen Parametern...die muss ich ja benutzen um die aktuelle Koordinate zu ermitteln.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
O Anzahl Datensätze ausgeben Java Basics - Anfänger-Themen 3
T Maximale Anzahl von Konsonanten im String Java Basics - Anfänger-Themen 6
N Aus einem String die Anzahl der Vokale auslesen Java Basics - Anfänger-Themen 40
W Dez-->Binär mit eigener bit Anzahl Erkennung. Java Basics - Anfänger-Themen 3
RudiRüssel maximale Anzahl von Schlüsseln in einer Hash Tabelle Java Basics - Anfänger-Themen 2
W Anzahl der Zeilen ausgeben lassen Java Basics - Anfänger-Themen 20
J Verschieben von Buchstaben in einem String um vorgegebene Anzahl von Zeichen innerhalb eines weiteren String Java Basics - Anfänger-Themen 12
Kingamadeus2000 Anzahl der Ziffern der kürzesten Zahl aus einem zurückliefern Java Basics - Anfänger-Themen 1
Tino1993 for-Schleife, die eine vorgegebene Anzahl von Zeichen ausgibt Java Basics - Anfänger-Themen 3
M Anzahl Schleifendurchgänge nach x Sekunden anzeigen Java Basics - Anfänger-Themen 2
P Primzahl mit Angabe der höchsten Primzahl und Angabe der Anzahl von Primzahlen bis 100 Java Basics - Anfänger-Themen 8
Kirby.exe Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
B Nur eine bestimmte Anzahl an Arrays ausgeben Java Basics - Anfänger-Themen 9
hello_autumn Klassen Anzahl sowie die Anzahl der Junit Tests ermitteln? Java Basics - Anfänger-Themen 8
B Von Array nur eine bestimmte Anzahl bekommen Java Basics - Anfänger-Themen 3
L Anzahl der Paare deren Summe = 0 ergibt berechnen Java Basics - Anfänger-Themen 0
L Anzahl der Elemente key in einem Array mit log(N) Laufzeit Java Basics - Anfänger-Themen 4
L Anzahl der Aufrufe von Schleifen bestimmen Java Basics - Anfänger-Themen 1
D Alle Möglichkeiten, n-Anzahl aus Elementen aus einem Array zu wählen, ausgeben? Java Basics - Anfänger-Themen 23
B Frage zu: String... strings -> Ungleiche Anzahl an Parameter? Java Basics - Anfänger-Themen 4
O ObjectOutputStream Anzahl Objekte festhalten Java Basics - Anfänger-Themen 17
B Anzahl von Stunden / Tage von zwei Datumswerten ermitteln Java Basics - Anfänger-Themen 1
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
H Anzahl verschiedener Buchstaben im String Java Basics - Anfänger-Themen 41
sondr Anzahl der gleichen Positionen im Array Java Basics - Anfänger-Themen 3
Y Konkrete Hilfe gesucht - Anzahl der Stellen einer eingegebenen Zahl überprüfen Java Basics - Anfänger-Themen 5
Y Begrenzte Anzahl an Objekten? Java Basics - Anfänger-Themen 12
P Input/Output Bestimmte Anzahl von Werten in einem Array an Methode übergeben Java Basics - Anfänger-Themen 2
L Graphen: Anzahl Knoten // Knoten in Array speichern Java Basics - Anfänger-Themen 4
E Anzahl Datensätze in Textfeld Java Basics - Anfänger-Themen 5
K Anzahl gleicher Elemente in Array Java Basics - Anfänger-Themen 32
T befehle unterschiedlicher anzahl an strings wiedergeben Java Basics - Anfänger-Themen 2
L Feld mit beliebiger Anzahl von Buchstaben füllen... Java Basics - Anfänger-Themen 5
LikeManuel Anzahl der Teiler Java Basics - Anfänger-Themen 6
D Anzahl von Zahlen bei eingabe begrenzen Java Basics - Anfänger-Themen 37
T Erste Schritte Schreiben Sie eine Klasse Zeit, die eine Zeitdauer in Minuten beschreibt. Die Anzahl Minuten verwalt Java Basics - Anfänger-Themen 3
J Max. Anzahl von Knoten im Binärbaum Java Basics - Anfänger-Themen 3
ralli85 Programm nach einer gewissen Anzahl von Eingaben beenden Java Basics - Anfänger-Themen 15
Z Ausgabe: Anzahl Sterne, danach verringern Java Basics - Anfänger-Themen 7
R Anzahl von Zeichen in einem Char Array Java Basics - Anfänger-Themen 4
A Anzahl der Elemente in einem Stack wiedergeben Java Basics - Anfänger-Themen 3
V Anzahl der Möglichkeiten 20 € zu bezahlen Java Basics - Anfänger-Themen 2
A variable Anzahl an Nutzereinagben Java Basics - Anfänger-Themen 4
stylegangsta Anzahl der gefunden array Werte ausgeben Java Basics - Anfänger-Themen 6
D Variable Anzahl an Buttons per Schleife Java Basics - Anfänger-Themen 7
H Liste ausgeben (Spiel Hey Fisch (software-challenge) ändern Anzahl Fische) Java Basics - Anfänger-Themen 1
M Überschneidende Anzahl von Tagen Java Basics - Anfänger-Themen 4
D Suche nach der Anzahl von Zonen zwischen zwei Punkten Java Basics - Anfänger-Themen 2
S Input/Output Alphabet in eine Datei schreiben und Anzahl von Zeichen ausgeben. Java Basics - Anfänger-Themen 4
I Anzahl der Rechenschritte darstellen lassen Java Basics - Anfänger-Themen 11
C Anzahl bestimmter Zeichen in einem String ausgeben Java Basics - Anfänger-Themen 7
T Anzahl bestimmter Werte eines arrays bestimmen Java Basics - Anfänger-Themen 4
A Rekursion, Anzahl von Stellen ausgeben Java Basics - Anfänger-Themen 7
S Anzahl Quersummen bis zur Einstelligkeit Java Basics - Anfänger-Themen 12
S Anzahl unterschiedlicher Elemente zählen Java Basics - Anfänger-Themen 4
G Performance - höhere Anzahl Swing Elemente Java Basics - Anfänger-Themen 5
R Begrenzer Anzahl von paint() ? Java Basics - Anfänger-Themen 3
J Anzahl von for-Schleifen in Abhängigkeit von Zahleneingabe erzeugen Java Basics - Anfänger-Themen 1
C Beliebige Anzahl Arrays zusammenfügen Java Basics - Anfänger-Themen 5
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
I Methoden ByteBuffer - Anzahl führender Nullen Java Basics - Anfänger-Themen 3
E Array Anzahl verschiedener Werte ausgeben Java Basics - Anfänger-Themen 3
V Anzahl von gleichen Werten in einem Int-Array ermitteln Java Basics - Anfänger-Themen 4
B Anzahl if anweisungen nicht bekannt Java Basics - Anfänger-Themen 3
T Anzahl der Schritte berechnen Java Basics - Anfänger-Themen 6
R Anzahl der ineinander verschachtelten for-Schleifen von Variable abhängig machen Java Basics - Anfänger-Themen 5
P BitSet- Objekt- Anzahl der Elemente bestimmen Java Basics - Anfänger-Themen 2
B Variablen Unbekante anzahl an Strings splitten und vergleichen Java Basics - Anfänger-Themen 31
M Anzahl Zahlen in String Java Basics - Anfänger-Themen 21
A Threads Minimale und maximale Anzahl. Java Basics - Anfänger-Themen 28
J Bestimmte Anzahl Zeichen aneinander fügen Java Basics - Anfänger-Themen 9
H Anzahl Ziffer in Zahl bestimmen Java Basics - Anfänger-Themen 3
A Anzahl nodes in einem Tree Java Basics - Anfänger-Themen 2
G maximale Anzahl der Tage im Monat Java Basics - Anfänger-Themen 18
G Datentypen Double ausgeben mit minimaler Anzahl Nachkommastellen Java Basics - Anfänger-Themen 3
P Anzahl der else if Operatoren begrenzt?? Java Basics - Anfänger-Themen 7
B genaue Anzahl der Operationen in Schleifen Java Basics - Anfänger-Themen 5
Dit_ Anzahl der Bestellungen grafisch abbilden | Statistisk Java Basics - Anfänger-Themen 6
Luk10 Anzahl der Knoten in einem Baum ausgeben! Java Basics - Anfänger-Themen 6
F Methoden Hanoi - Anzahl der Bewegungen Java Basics - Anfänger-Themen 8
A Counter für die anzahl von regulären ausdrücken Java Basics - Anfänger-Themen 4
M float/double Anzahl Nachkommastellen ermitteln Java Basics - Anfänger-Themen 18
B Anzahl der Werte bestimmen Java Basics - Anfänger-Themen 14
K Sortierung von Anzahl der Wörtern in ArrayList Java Basics - Anfänger-Themen 4
X Anzahl Baumknoten bestimmen Java Basics - Anfänger-Themen 5
K Anzahl Wörter in Zeile Java Basics - Anfänger-Themen 24
2 Bestimmte Anzahl von Bytes lesen und als string ausgeben? Java Basics - Anfänger-Themen 3
S Zahl mit maximaler Anzahl von Teiler Java Basics - Anfänger-Themen 2
Z Anzahl der Stellen nach dem Komma verändern. Java Basics - Anfänger-Themen 7
A Dynamisch die Anzahl der Threads in der Cyclic Barrier ändern Java Basics - Anfänger-Themen 2
T Begrenzte Anzahl von Klicks Java Basics - Anfänger-Themen 3
J Anzahl der Buchstaben in einem String Java Basics - Anfänger-Themen 12
isowiz Threads sammeln und max. Anzahl begrenzen Java Basics - Anfänger-Themen 2
A Anzahl Zeilen eines Arrays bestimmen Java Basics - Anfänger-Themen 10
E Bild eine bestimmte Anzahl blinken lassen Java Basics - Anfänger-Themen 3
F Anzahl der eingegebenen Zahlen ausgeben Java Basics - Anfänger-Themen 14
I Anzahl einer Liste (Performance) Java Basics - Anfänger-Themen 2
J Wörter in einem string zählen und die anzahl zurückgeben Java Basics - Anfänger-Themen 4
J Listen - Anzahl positiver Werte drucken Java Basics - Anfänger-Themen 8
B Anzahl von gerundeten Punkten bestimmen Java Basics - Anfänger-Themen 9

Ähnliche Java Themen


Oben