Doudizhu-Minispiel: Karten mischen und austeilen
Aufgabenbeschreibung
Schreiben Sie ein Programm zum Austeilen und Mischen von Karten in Doudizhu. Es ist erforderlich, den Vorgang des Kartenmischens und Austeilens gemäß den Regeln von Doudizhu abzuschließen Farben, Farben und Zahlen (einschließlich der Buchstaben J, Q, K und A) und die Farben der Farben umfassen Herz, Pik, Karo und Kreuz. Es gibt auch große Könige und kleine Könige. Die Reihenfolge dieser 54 Karten wird unterbrochen und es nehmen drei Spieler am Spiel teil. Jeder Spieler zieht abwechselnd eine Karte und die restlichen drei werden als Hole Cards verwendet. Das Programm endet und die Karten und Hole Cards in jedem Die Hand des Spielers wird gedruckt.
Laufergebnisse
Aufgabenziel
Lernen Sie, die Umsetzungsideen des Programms „Dou Di Zhu Minispiel – Karten mischen und austeilen“ zu analysieren.
Kann das Schreiben, Kompilieren und Betreiben des Programms „Doudizhu Mini Game – Shuffling and Dealing Cards“ auf der Grundlage von Ideen selbstständig abschließen.
Beherrschen Sie die Eigenschaften von ArrayList- und HashMap-Sammlungen und verbessern Sie die Verwendung von for-Schleifen.
Umsetzungsideen
① Um das Kartenprogramm umzusetzen, müssen Sie zunächst 54 Karten zum Programm hinzufügen. Diese Karten umfassen 13 Herz, Pik, Kreuz und Karo sowie den König und den König.
② Führen Sie eine verschachtelte Schleife für den Farbsatz und den Zahlensatz durch, kombinieren Sie die Farben und Zahlen, um 52 Karten zu bilden, und weisen Sie ihnen Zahlen zu. Der Schlüsselwert des Satzes ist die Zahl. Der Wertwert ist die zusammengestellte Karte sowie der große König und der kleine König. Aufgrund der inkonsistenten Zusammenstellungsregeln müssen diese beiden Karten mithilfe der Methode add () separat zur HashMap-Sammlung hinzugefügt werden.
③Erstellen Sie einen Zahlensatz und verwenden Sie diesen Zahlensatz, um die Karten zu ersetzen und die Vorgänge des Mischens und Austeilens der Karten abzuschließen. Da es insgesamt 54 Karten gibt, liegt der Bereich des erstellten Satzes zwischen 0 und 53.
④ Sie können die shuffle()-Methode der Collections-Klasse verwenden, um den Vorgang des Mischens der Zahlensammlung abzuschließen und den Effekt des Mischens zu erzielen. Da es nur drei Personen gibt, können Sie eine for-Schleife verwenden, um die Zahlen, die verschiedene Karten darstellen, auf verschiedene Personen und Hole Cards zu verteilen, indem Sie den Rest der Zahl und 3 nehmen, um den Effekt des Austeilens von Karten zu erzielen.
⑤Nachdem das Mischen und Austeilen der Karten abgeschlossen ist, kann die Sortierung über die Methode sort() der Collections-Klasse abgeschlossen werden. Anschließend werden durch Erweitern der for-Schleife-HashMap-Sammlung die entsprechenden Kartenzeichenfolgen anhand der Zahlen durchsucht und gespeichert In der neu erstellten String-Sammlung wird schließlich die String-Sammlung angezeigt.
Implementierungscode
package Swing; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.HashMap; public class DoudiZhu { public static void main(String[]args) { //准备花色 ArrayList<String>color=new ArrayList<String >(); color.add("黑桃"); color.add("红桃"); color.add("方块"); color.add("梅花"); //准备数字,用列表将纸牌从大到小排列 ArrayList<String >number=new ArrayList<String >(); for(int i=3;i<=10;i++){ number.add(i+""); } number.add("J"); number.add("Q"); number.add("K"); number.add("A"); number.add("2"); //定义一个map集合,用来将数字与每一张纸牌进行对应 HashMap<Integer,String>map=new HashMap<Integer,String>(); //纸牌编号 int index=0; //循环纸牌数字 for(String thisNumber:number){ //循环纸牌花色 for(String thisColor:color){ //将花色与数字组合,形成52张牌,并赋予编号 map.put(index++,thisColor+thisNumber); } } map.put(index++,"小王"); map.put(index++,"大王"); //创建0-53的数字集合代表54张牌 ArrayList<Integer>cards=new ArrayList<Integer>(); for(int i=0;i<=53;i++){ cards.add(i); } //洗牌,使用Collections工具类的shuffle()方法 Collections.shuffle(cards); //创建三个玩家和底牌 ArrayList<Integer>iPlayer=new ArrayList<Integer>(); ArrayList<Integer>iPlayer2=new ArrayList<Integer>(); ArrayList<Integer>iPlayer3=new ArrayList<Integer>(); ArrayList<Integer>iSecretCards=new ArrayList<Integer>(); //遍历这副洗好的牌,遍历的过程中,将牌发到三个玩家和底牌中 for(int i=0;i<cards.size();i++){ if(i>=51){ //留取三个底牌 iSecretCards.add(cards.get(i)); }else{ if(i%3==0){//与3取余为0的发给玩家1 iPlayer.add(cards.get(i)); }else if(i%3==1){//与3取余为1的发给玩家2 iPlayer2.add(cards.get(i)); }else {//剩余的牌发给玩家3 iPlayer3.add(cards.get(i)); } } } //对每个人手中的牌进行排序,使用的使Collections工具类中的sort()方法 Collections.sort(iPlayer); Collections.sort(iPlayer2); Collections.sort(iPlayer3); ArrayList<String>sPlayer=new ArrayList<String>(); ArrayList<String>sPlayer2=new ArrayList<String>(); ArrayList<String>sPlayer3=new ArrayList<String>(); ArrayList<String>sSectCards=new ArrayList<String>(); //循环主键,从map中获取纸牌 for (Integer key:iPlayer){ sPlayer.add(map.get(key)); } for (Integer key:iPlayer2){ sPlayer2.add(map.get(key)); } for (Integer key:iPlayer3){ sPlayer3.add(map.get(key)); } for (Integer key:iSecretCards){ sSectCards.add(map.get(key)); } //将分发的牌显示出来 System.out.println("玩家1:"+sPlayer); System.out.println("玩家2:"+sPlayer2); System.out.println("玩家3:"+sPlayer3); System.out.println("底牌:"+sSectCards); } }
Ratezahlenspiel
Aufgabenbeschreibung
Schreiben Sie ein Zahlenratespiel: „Sie finden eine Zahl, ich werde sie erraten“. 9 und die Benutzertastatur Geben Sie eine erratene Zahl ein. Wenn die eingegebene Zahl mit der im Hintergrund vorab generierten Zahl übereinstimmt, bedeutet dies, dass die Schätzung korrekt ist. Zu diesem Zeitpunkt druckt das Programm „Herzlichen Glückwunsch, die Antwort ist.“ richtig.“ Wenn sie nicht identisch sind, vergleichen Sie die eingegebene Zahl mit der Hintergrundzahl. Die Größe der vorgenerierten Zahl. Wenn sie größer ist, wird „Entschuldigung, Ihre Schätzung ist zu hoch!“ gedruckt klein, „Entschuldigung, Ihre Schätzung ist zu klein“ wird gedruckt; wenn es immer falsch ist, wird das Spiel fortgesetzt, bis die Zahl lautet, bis Sie richtig geraten haben.
Laufergebnisse
Aufgabenziel
Lernen Sie, die Umsetzungsideen des Programms „Rate Zahlenspiel“ zu analysieren.
Vervollständigen Sie unabhängig das Schreiben, Kompilieren und Betreiben des Quellcodes für das „Zahlenratenspiel“ basierend auf der Idee.
Beherrschen Sie die Verwendung von if-Auswahlstruktur- und while-Schleifenstrukturanweisungen zum Ausführen von Operationen in Programmen.
Implementierungsidee
①Um diese Funktion zu realisieren, muss das Programm zunächst im Hintergrund eine Zufallszahl von 0 bis 9 generieren. Um eine Zufallszahl zu generieren, können Sie die Methode nextInt(int n) in Random verwenden Die spezifische Definition lautet wie folgt:
public int nextInt(int n)
②Um die erratene Zahl über die Tastatur einzugeben, können Sie die Scanner-Klasse verwenden, die es dem Benutzer ermöglicht, die Zahl über die Tastatur einzugeben.
Scanner sc=new Scanner(System.in); int i=sc.nextInt();
③Nach der Eingabe der Nummer müssen Sie die über die Tastatur eingegebene Nummer mit der im Hintergrund vorab generierten Nummer vergleichen. Da das Erraten der Nummer nicht unbedingt einmal erfolgreich ist, wird dies wahrscheinlich mehrmals durchgeführt, so das Programm kann über eine While-Schleife mehrmals über die Tastatur eingegeben werden. Erraten Sie bei jeder Eingabe, ob die Zahl richtig oder falsch ist. Wenn Sie richtig geraten haben, springen Sie aus der Schleife und geben Sie „Herzlichen Glückwunsch, Sie haben die richtige Antwort“ ein und das Spiel endet.
④ Wenn Sie falsch geraten haben, verwenden Sie die if...else-Anweisung, um den Fehler zu beurteilen und in zwei Ergebnisse aufzuteilen: eine zu hohe Schätzung und eine zu niedrige Schätzung. Wenn die Schätzung zu hoch ist, geben Sie „Entschuldigung, Ihre Schätzung ist zu groß“ ein und fahren Sie mit dem nächsten Zyklus fort. Wenn die Schätzung zu klein ist, drucken Sie „Entschuldigung, Ihre Schätzung ist zu klein“ aus und fahren Sie mit dem nächsten Zyklus fort. Basierend auf dem Ergebnis wird ein Hinweis gegeben, dann wird die Zahl weiter erraten und das Spiel geht weiter.
Implementierungscode
package math; import java.util.Random; import java.util.Scanner; public class CaishuZi { public static void main(String[] args) { int randomNumber = new Random().nextInt(10); System.out.println("随机数已经生成"); System.out.println("请输入你所猜的数字"); Scanner sc =new Scanner(System.in); int enterNumber =sc.nextInt(); //通过while循环,进行猜数字对错判断 //猜对,跳出循环,游戏结束 while(enterNumber!=randomNumber){ //猜错了,根据结果,给出提示,接着猜数字,游戏继续 if(enterNumber>randomNumber){ //猜大了给出的提示 System.out.println("sorry,你猜大了"); }else{ //猜小了,给出的提示 System.out.println("sorry,你猜小了"); } //输入猜的数字 System.out.println("请输入你猜的数字"); enterNumber = sc.nextInt(); } System.out.println("恭喜你,答对了!"); } }
Das obige ist der detaillierte Inhalt vonWie implementiert man Vermieterkampf- und Zahlenratespiele in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Javadevelopmentisnotentirelyplatform-unabhängig vonDuetoseveralfaktoren

Der Java -Code hat Leistungsunterschiede, wenn Sie auf verschiedenen Plattformen ausgeführt werden. 1) Die Implementierungs- und Optimierungsstrategien von JVM sind unterschiedlich wie Oraclejdk und OpenJDK. 2) Die Eigenschaften des Betriebssystems wie Speicherverwaltung und Thread -Planung beeinflussen auch die Leistung. 3) Die Leistung kann durch Auswahl des entsprechenden JVM, Anpassung der JVM -Parameter und der Codeoptimierung verbessert werden.

Java'splattformIndependenceHasLimitationssinformanceOverhead, Version CompatibilityISSues, Herausforderungen mit uneinhaltigem Integration, plattformspezifische Features und JvMinstallation/Wartung.

PlattformIndependenCealLowsProgramstorunonanyPlatformWithoutModification, während der Plattformentwicklungspflicht-spezifische Anpassungen

JitcompilationInjavaenHancesPerformanceWhilemaintainingPlattformindependence.1) ItdynamicalTranslatesByteCodeIntonativemachinecodeatruntime, optimierungFrequentusedCode.2) thejvmremainSpatform-unabhängig, und theAnamejavaaplicationTiclicationTiclicationTiclicationTiclicationTiclicationTiclicationToricticationTiclicationToryticleuneneen

Javaispopularforcross-plattformdesktopapplicationsduetoits "writeonce, runanywhere" philosophy.1) itusesBytecodethatrunsonanyjvm-tequippedplatform.2) BibliothekenlikeswingandjavafxHelPcreeTsuokninguis.3) itsextsextSesiveSivestandsupports-Lyuis.3) itsextsextSesiveSivestandsupports-Lyuis.3) itsextsextSextsenSivestandsupports-Capo- und --3) itsextsextSextSesiveSivestandsuppandSpommes-Capo-

Gründe für das Schreiben von plattformspezifischem Code in Java sind Zugriff auf bestimmte Betriebssystemfunktionen, die Interaktion mit spezifischer Hardware und die Optimierung der Leistung. 1) Verwenden Sie JNA oder JNI, um auf die Windows -Registrierung zuzugreifen. 2) mit Linux-spezifischen Hardware-Treibern über JNI zu interagieren; 3) Verwenden Sie Metal, um die Spiele auf MacOS über JNI zu optimieren. Das Schreiben von Plattform-spezifischer Code kann jedoch die Portabilität des Codes beeinflussen, die Komplexität erhöhen und potenziell Leistungsaufwand und Sicherheitsrisiken darstellen.

Java wird die Unabhängigkeit der Plattform durch Cloud-native Anwendungen, die Bereitstellung von Multi-Plattform und die Interoperabilität von Cloud-nativen verbessern. 1) Native Cloud -Anwendungen verwenden Graalvm und Quarkus, um die Startgeschwindigkeit zu erhöhen. 2) Java wird auf eingebettete Geräte, mobile Geräte und Quantencomputer ausgedehnt. 3) Durch Graalvm wird sich Java nahtlos in Sprachen wie Python und JavaScript integrieren, um die Interoperabilität der Cross-Sprache zu verbessern.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

MinGW – Minimalistisches GNU für Windows
Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

Herunterladen der Mac-Version des Atom-Editors
Der beliebteste Open-Source-Editor

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

SublimeText3 Linux neue Version
SublimeText3 Linux neueste Version

DVWA
Damn Vulnerable Web App (DVWA) ist eine PHP/MySQL-Webanwendung, die sehr anfällig ist. Seine Hauptziele bestehen darin, Sicherheitsexperten dabei zu helfen, ihre Fähigkeiten und Tools in einem rechtlichen Umfeld zu testen, Webentwicklern dabei zu helfen, den Prozess der Sicherung von Webanwendungen besser zu verstehen, und Lehrern/Schülern dabei zu helfen, in einer Unterrichtsumgebung Webanwendungen zu lehren/lernen Sicherheit. Das Ziel von DVWA besteht darin, einige der häufigsten Web-Schwachstellen über eine einfache und unkomplizierte Benutzeroberfläche mit unterschiedlichen Schwierigkeitsgraden zu üben. Bitte beachten Sie, dass diese Software
