hallo,
ich bin gerade dabei ein kleinen zufalls generator zu machen der "spielersteine" setzt...
im prinzip klappt auch das komplette programm und die zufallsplatzierung auch, aber...
ich hab das so gemacht das ich in einer hashmap speicher auf welchen koordinaten ein stein steht (key) und zu welchem spieler er gehört (value),
dort steht alles super drinne doch jetzt würde ich gerne einmal meine komplette hasmap druchklappern und jede "zeile" in meiner hasmap ausgeben also immer key + value...
ich dachte mir easy nichts leichter als das, mach das mit dem iterator...
doch pustekuchen, bei mir endet das in einer endlosschleife...
warum? ich hab keine ahnung...
hier mein code:
also laut java liefert die methode hasnext true wenn in der nächsten stelle etwas drinne steht...
next soll das ausgeben was in der nächsten stelle drinne steht...
toll aber keiner der beiden zähl den iterator hoch oder wie? ^^
das kann doch irgendwie nicht sein...
next müsste doch eigentlich mir das aktuelle element liefer und dann hochzählen also den zeiger eins weiter springen lassen oder so...
doch führe ich das aus spuckt er mir immer und immer wieder nur den ersten key + den ersten value...
ich bin gerade dabei ein kleinen zufalls generator zu machen der "spielersteine" setzt...
im prinzip klappt auch das komplette programm und die zufallsplatzierung auch, aber...
ich hab das so gemacht das ich in einer hashmap speicher auf welchen koordinaten ein stein steht (key) und zu welchem spieler er gehört (value),
dort steht alles super drinne doch jetzt würde ich gerne einmal meine komplette hasmap druchklappern und jede "zeile" in meiner hasmap ausgeben also immer key + value...
ich dachte mir easy nichts leichter als das, mach das mit dem iterator...
doch pustekuchen, bei mir endet das in einer endlosschleife...
warum? ich hab keine ahnung...
hier mein code:
Java:
package prototype;
import java.util.ArrayList;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
////////////////////////////////////////////////////////////////////////
ArrayList<ArrayList> list = new ArrayList<ArrayList>();
////////////////////////////////////////////////////////////////////////
int players = 1;
int x = 5 * players;
int y = 5 * players;
HashMap<String, Integer> map = new HashMap<String, Integer>();
////////////////////////////////////////////////////////////////////////
for (int i = 0; i < x; i++) {
list.add(new ArrayList());
for (int j = 0; j < y; j++) {
list.get(i).add(0);
}
}
////////////////////////////////////////////////////////////////////////
int pass = 10 * players;
int setX;
int setY;
int player = 1;
for (int i = 0; i < pass;) {
setX = (int) (Math.random() * x);
setY = (int) (Math.random() * y);
if (!map.containsKey(setX + "|" + setY)) {
map.put(setX + "|" + setY, player);
list.get(setX).set(setY, player);
} else {
continue;
}
if (i + 1 == 10 * player) {
player++;
}
i++;
}
System.out.println(map.toString());
System.out.println("");
while (map.keySet().iterator().hasNext() & map.values().iterator().hasNext()) {
System.out.println(map.keySet().iterator().next() + " = " + map.values().iterator().next());
}
// for (int i = 0; i < x; i++) {
// for (int j = 0; j < y; j++) {
// System.out.print(list.get(j).get(i) + " ");
//
// }
// System.out.println("");
// }
}
}
also laut java liefert die methode hasnext true wenn in der nächsten stelle etwas drinne steht...
next soll das ausgeben was in der nächsten stelle drinne steht...
toll aber keiner der beiden zähl den iterator hoch oder wie? ^^
das kann doch irgendwie nicht sein...
next müsste doch eigentlich mir das aktuelle element liefer und dann hochzählen also den zeiger eins weiter springen lassen oder so...
doch führe ich das aus spuckt er mir immer und immer wieder nur den ersten key + den ersten value...