Ein einfacher Linux-Ratespiel-Quellcode Spielregeln: Das Zahlenratespiel wird üblicherweise zu zweit gespielt, wobei eine Person eine Zahl vorgibt und die andere rät. Der Zahlengeber muss sich eine 4er-Zahlenfolge ohne Ziffernwiederholung ausdenken und darf die Zahlen dem Rater nicht verraten. Die Person, die rät, kann mit dem Raten beginnen. Bei jedem Erraten einer Zahl muss derjenige, der die Zahl nennt, eine auf dieser Zahl basierende Zahl A und B nennen, wobei die Zahlen vor A die Anzahl der Zahlen an der richtigen Position darstellen und die Zahlen vor B die Anzahl der Zahlen, die zwar richtig sind, aber an der falschen Position stehen. Wenn die richtige Antwort 5234 ist und der Ratende 5346 rät, dann ist es 1A2B, wobei eine 5 an der richtigen Position steht und daher als 1A aufgezeichnet wird. Die Zahlen 3 und 4 sind zwar richtig, stehen aber nicht an der richtigen Position und werden daher als 2B aufgezeichnet, was zusammen 1A2B ergibt. Die nächste Person, die rät, rät weiter auf Grundlage der vom Fragensteller angegebenen A- und B-Zahlen, bis sie richtig rät (also 4A0B). Die Person, die rät, hat 8 Chancen. Zum Beispiel: B gibt eine Zahl an und A errät sie. Quellcode: #!/bin/bash klar Echo echo "# ... echo "# dies ist ein Bash-Shell-Spiel, geschrieben von Lee #" echo "# dieses Spiel hat eine unendliche Frequenz, rate mal, welche Zahl#" echo "# version 2.1.1.20200421 #" echo "# ... echo -e "\n\n" INPUT deklarieren PASSWORT deklarieren deklarieren Sie LEN_PWD deklarieren A deklarieren B LOOP deklarieren #diese Funktion dient zum Erstellen einer Zufallszahl Zufallszahl() { PASSWORT=$RANDOM LEN_PWD=`echo $PASSWORD | wc -L` wenn [[ $LEN_PWD -ne 4 ]] Dann Zufallszahl anders #Standardwert ausgeben, wird zum Testen benötigt, echo $PASSWORD nach der Entwicklung auskommentieren Eingang fi } #diese Funktion dient zum Akzeptieren der Eingabe von der Tastatur des Benutzers Eingang() { read -n4 -p "Bitte geben Sie eine Zahl zwischen 0000-9999 ein:" input # 10#${input} Basiskonvertierungwenn [[ 10#${input} -eq 10#${PASSWORD} ]] Dann echo -e "\n" echo "###########################################################" echo "#herzlichen Glückwunsch!Sie haben es $LOOP-mal versucht!#" echo "# Das Passwort ist $PASSWORD ! #" echo "###########################################################" Ausfahrt elif [[ $LOOP -eq 6 ]] Dann echo -e "\n" echo "Sie haben $LOOP-Mal versucht! Spiel vorbei!" Ausfahrt anders A = 0 B=0 Anzahl_a Anzahl_b echo -e "\n" echo "********************************" echo "* "$A"A"$B"B *" echo "********************************" echo "Sie haben $LOOP-Mal versucht! Sie haben `expr 6 - $LOOP`-Mal verlassen!" LOOP=`Ausdruck $LOOP + 1` Eingang fi } #diese Funktion zählt den Wert der Variable A Anzahl_a() { für i in `seq 4` Tun VAR_INPUT=`Ausdruck Teilzeichen $input $i 1` für j in ‚Sequenz 4‘ Tun VAR_PASSWORD=`Ausdruck substr $PASSWORD $j 1` wenn [[ $VAR_INPUT -eq $VAR_PASSWORD ]] && [[ $i -eq $j ]] dann A=`expr $A + 1` fi Erledigt Erledigt } #diese Funktion zählt den Wert der Variable B Anzahl_b() { für i in `seq 4` Tun VAR_INPUT=`Ausdruck Teilzeichen $input $i 1` für j in ‚Sequenz 4‘ Tun VAR_PASSWORD=`Ausdruck substr $PASSWORD $j 1` wenn [[ $VAR_INPUT -eq $VAR_PASSWORD ]] && [[ $i -ne $j ]] dann B=`expr $B + 1` fi Erledigt Erledigt } LOOP=1 Zufallszahl Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
>>: MySQL 8.0.18 verwendet Klon-Plugin, um die MGR-Implementierung neu zu erstellen
Ich habe in der Toutiao IT School einen Artikel g...
Nachfragehintergrund In letzter Zeit plane ich, V...
Inhaltsverzeichnis Prinzip Quellcodeanalyse Deleg...
Grafisches Tutorial zur Installation und Konfigur...
Tomcat selbst optimieren Tomcat-Speicheroptimieru...
Detaillierte Beschreibung der Verwendung des Medi...
1. Mobile Auswahl der Formulartexteingabe: Wenn i...
In letzter Zeit habe ich die MySQL-Datenbank unte...
Ich konnte nie herausfinden, ob der Port belegt i...
Vorwort Es gibt die folgenden Möglichkeiten, gepl...
Hintergrund Vor nicht allzu langer Zeit habe ich ...
MySQL Replikationsfilter dynamisch ändern Lassen ...
Dieser Artikel beschreibt anhand eines Beispiels,...
<br />Hier ergibt sich ein Widerspruch: In k...
COALESCE ist eine Funktion, die sich nacheinander...