Skip to content

Commit 207e540

Browse files
committed
new: Zahl raten, a game based on a Java version from Hans-Peter Habelitz
1 parent 7aec190 commit 207e540

File tree

1 file changed

+91
-0
lines changed

1 file changed

+91
-0
lines changed

zahl-raten.lisp

+91
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
#||
2+
3+
/*
4+
* Zahlraten
5+
* Version 1.0
6+
* 2011-11-30
7+
* Hans-Peter Habelitz
8+
*/
9+
10+
package ratespiel;
11+
12+
import java.util.Random;
13+
import javax.swing.JOptionPane;
14+
15+
public class Zahlenraten {
16+
private int zufallszahl;
17+
private int ratezahl;
18+
19+
void Zahlraten() {
20+
ratezahl = -1;
21+
}
22+
23+
void setZufallszahl(int z) {
24+
zufallszahl = z;
25+
}
26+
27+
int getZufallszahl() {
28+
return zufallszahl;
29+
}
30+
31+
void setRatezahl(int z) {
32+
ratezahl = z;
33+
}
34+
35+
int getRatezahl() {
36+
return ratezahl;
37+
}
38+
39+
public static void main(String[] args) {
40+
Zahlenraten spiel;
41+
spiel = new Zahlenraten();
42+
boolean geraten = false;
43+
int versuchzaehler = 0;
44+
JOptionPane.showMessageDialog(null,
45+
"Erraten Sie eine ganze Zahl aus dem Bereich von 1 bis 100!");
46+
Random randomGenerator = new Random();
47+
spiel.setZufallszahl(randomGenerator.nextInt(101));
48+
while (!geraten) {
49+
spiel.setRatezahl(Integer.parseInt( JOptionPane.showInputDialog("Welche Zahl wird gesucht?")));
50+
versuchzaehler++;
51+
if (spiel.getRatezahl() < spiel.getZufallszahl()) {
52+
JOptionPane.showMessageDialog(null, "Ihre Zahl ist zu klein!");
53+
} else {
54+
if (spiel.getRatezahl() > spiel.getZufallszahl()) {
55+
JOptionPane.showMessageDialog(null, "Ihre Zahl ist zu groß!");
56+
} else {
57+
geraten = true;
58+
JOptionPane.showMessageDialog(null,
59+
"Glueckwunsch! Sie haben die Zahl mit "
60+
+ versuchzaehler + " Versuchen erraten!");
61+
}
62+
}
63+
}
64+
}
65+
}
66+
67+
||#
68+
69+
70+
;;; Zahlraten in LispWorks
71+
;; Version 1.0
72+
;; 2012-07-15
73+
;; Rainer Joswig
74+
75+
(defpackage "RATESPIEL" (:use "COMMON-LISP" "CAPI"))
76+
77+
(in-package "RATESPIEL")
78+
79+
(defun spielen (&aux (zufallszahl (1+ (random 100 (make-random-state t)))))
80+
(display-message "Erraten Sie eine ganze Zahl aus dem Bereich von 1 bis 100!")
81+
(loop for versuchzaehler from 1
82+
for ratezahl = (prompt-for-integer "Welche Zahl wird gesucht?" :min 1 :max 100)
83+
when (< ratezahl zufallszahl)
84+
do (display-message "Ihre Zahl ist zu klein!")
85+
else if (> ratezahl zufallszahl)
86+
do (display-message "Ihre Zahl ist zu gross!")
87+
else
88+
do (display-message "Glückwunsch! Sie haben die Zahl mit ~a Versuchen erraten" versuchzaehler)
89+
and do (return)))
90+
91+

0 commit comments

Comments
 (0)