Alle Beiträge von XQBBN
-
Ich möchte einen Land Generator erstellen, der mir ein Zufälliges Land rausspuckt. Das hab ich soweit geschafft. Problem ist, ich will, dass das Land nur einmal vorkommt. Manchmal kommt es vor, dass ein Land in der Liste doppelt vorkommt.
Ich habe es endlich geschafft. Jetzt habe ich ein weiteres Problem. Nachdem alle Länder ausgegeben werden, können sie nicht doppelt genutzt werden, weil die in einer Liste sind. Wenn es keine Länder mehr gibt, die ausgegeben werden sollen, dann soll der Inhalt der Liste gelöscht werden, um weiter zu spielen. Problem ist, beim löschen wird gleichzeitig ein Land ausgegeben. Also wird die Liste gelöscht und direkt kann ein neues Land ausgegeben und in die Liste gepackt werden. import java.util.Arrays; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.Path; import java.nio.charset.Charset; public class Bundesländer { // Checked, ob BL schon gezeigt wurde public static Boolean wasCountryUsed(String country, List<String> usedCountries) { for (String item: usedCountries) { // Wenn es das BL schon gibt, dann wird re-shuffled if (item.equals(country)) { return true; } } return false; } public static void main() throws java.io.IOException { String[] BL = {"eins", "zwei", "drei", "vier", "fünf", "sechs", "sieben", "acht", "neun", "zehn", "elf", "zwölf", "dreizehn", "vierzehn", "fünfzehn", "sechzehn"}; // Erstellt file, wenn es nicht existiert // Dieser file hat alle bereits gezeigten BL File countriesFile = new File("countries.txt"); countriesFile.createNewFile(); List<String> usedCountries = Files.readAllLines(countriesFile.toPath(), Charset.defaultCharset() ); // Wenn alle BL gezeigt wurden, dann stopp if (usedCountries.size() == BL.length) { System.out.println("Es gibt keine Bundesländer mehr"); // Reinigt die BL Liste, um neu anfangen zu können usedCountries.clear(); } List<String> tmpList = new ArrayList<String>(Arrays.asList(BL)); String country = ""; // Re-shuffled in loop, bis ein neues BL vorkommt while (true) { Collections.shuffle(tmpList); country = tmpList.get(0); Boolean wasUsed = wasCountryUsed(country, usedCountries); if (wasUsed == false) { break; } } // Packt BL in benutzte BL Liste usedCountries.add(country); Path out = Paths.get("countries.txt"); Files.write(out, usedCountries, Charset.defaultCharset()); BLQuiz.frage(country); } } Ps.: Hab ein bissle umgeändert wegen dem Projekt und aus zeitlichen Gründen.
-
Ich möchte einen Land Generator erstellen, der mir ein Zufälliges Land rausspuckt. Das hab ich soweit geschafft. Problem ist, ich will, dass das Land nur einmal vorkommt. Manchmal kommt es vor, dass ein Land in der Liste doppelt vorkommt.
Danke für die Antwort, aber wie genau mache ich das? Ich bin ziemlich neu in Java und verstehe nicht viel. Wäre nett, wenn du mir einen Code schreiben könntest.
-
Ich möchte einen Land Generator erstellen, der mir ein Zufälliges Land rausspuckt. Das hab ich soweit geschafft. Problem ist, ich will, dass das Land nur einmal vorkommt. Manchmal kommt es vor, dass ein Land in der Liste doppelt vorkommt.
Genau. Ich drücke ein Knopf und ein zufälliges Land wird ausgegeben. Ich will jetzt die ganze Liste durchgehen ohne ein Land doppelt zu bekommen.
-
Ich möchte einen Land Generator erstellen, der mir ein Zufälliges Land rausspuckt. Das hab ich soweit geschafft. Problem ist, ich will, dass das Land nur einmal vorkommt. Manchmal kommt es vor, dass ein Land in der Liste doppelt vorkommt.
import java.util.Arrays; import java.util.Collections; import java.util.List; public class Land { public static void main(String[] args){ String[] land = {"Albanien", "Andorra", "Belarus", "Belgien", "Bosnien und Herzegowina", "Bulgarien", "Dänemark", "Deutschland", "Estland", "Finnland", "Frankreich", "Griechenland", "Irland", "Island", "Italien", "Kosovo", "Kroatien", "Lettland", "Liechtenstein", "Litauen", "Luxemburg", "Malta", "Moldau", "Monaco", "Montenegro", "Niederlande", "Nordmazedonien", "Norwegen", "Österreich", "Polen", "Rumänien", "Russland", "San Marino", "Schweden", "Schweiz", "Serbien", "Slowakei", "Slowenien", "Spanien", "Tschechien", "Ukraine", "Ungarn", "Vatikanstadt", "Vereinigtes Königreich"}; List<String> tmpList = Arrays.asList(land); Collections.shuffle(tmpList); System.out.println("Land: " + tmpList.get(0)); } }