Linux implementiert den Quellcode des Zahlenratespiels

Linux implementiert den Quellcode des Zahlenratespiels

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.
A und B
1234 1A0B
5678 2A1B
5674 1A1B
5638 1A1B
2678 2A2B
6278 4A0B (Vermutung)

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:
  • 101 Shell-Skript-Ratespielcodes
  • Shell-Skript zur Implementierung des Zahlen-Ratespiels

<<:  Praktische Fähigkeiten, die beim Aufrufen von UNI-APP-Komponenten im easycom-Modus beherrscht werden müssen

>>:  MySQL 8.0.18 verwendet Klon-Plugin, um die MGR-Implementierung neu zu erstellen

Artikel empfehlen

CSS löst das Problem der Front-End-Bildverformung perfekt

Ich habe in der Toutiao IT School einen Artikel g...

So verwenden Sie das Datums-Plugin vue-bootstrap-datetimepicker in vue-cli 3

Nachfragehintergrund In letzter Zeit plane ich, V...

Analyse des Quellcodes des React-Ereignismechanismus

Inhaltsverzeichnis Prinzip Quellcodeanalyse Deleg...

Grafisches Tutorial zur Installation und Konfiguration von mysql5.7.20 (Mac)

Grafisches Tutorial zur Installation und Konfigur...

Einfache Zusammenfassung der Methoden zur Leistungsoptimierung von Tomcat

Tomcat selbst optimieren Tomcat-Speicheroptimieru...

Fünf praktische Tipps zur Gestaltung von Webformularen

1. Mobile Auswahl der Formulartexteingabe: Wenn i...

So prüfen Sie, ob ein Port in LINUX belegt ist

Ich konnte nie herausfinden, ob der Port belegt i...

Vue implementiert die browserseitige Code-Scan-Funktion

Hintergrund Vor nicht allzu langer Zeit habe ich ...

So ändern Sie den Replikationsfilter in MySQL dynamisch

MySQL Replikationsfilter dynamisch ändern Lassen ...

So fügen Sie Spalten in einer MySQL-Datenbank hinzu, löschen und ändern sie

Dieser Artikel beschreibt anhand eines Beispiels,...

Verständnis für Webdesign-Layout

<br />Hier ergibt sich ein Widerspruch: In k...

Codebeispiel für die Verwendung der MySql COALESCE-Funktion

COALESCE ist eine Funktion, die sich nacheinander...