bullfight added

This commit is contained in:
Paul Holt
2022-11-04 23:45:15 +11:00
parent 2d1911ff3d
commit 986c873271
2 changed files with 229 additions and 55 deletions

View File

@@ -6,25 +6,25 @@
205 PRINT "DO YOU WANT INSTRUCTIONS";
206 INPUT Z$
207 IF Z$="NO" THEN 400
210 PRINT "HELLO, ALL YOU BLOODLOVERS AND AFICIONADOS."
220 PRINT "HERE IS YOUR BIG CHANCE TO KILL A BULL."
230 PRINT
240 PRINT "ON EACH PASS OF THE BULL, YOU MAY TRY"
250 PRINT "0 - VERONICA (DANGEROUS INSIDE MOVE OF THE CAPE)"
260 PRINT "1 - LESS DANGEROUS OUTSIDE MOVE OF THE CAPE"
270 PRINT "2 - ORDINARY SWIRL OF THE CAPE."
280 PRINT
290 PRINT "INSTEAD OF THE ABOVE, YOU MAY TRY TO KILL THE BULL"
300 PRINT "ON ANY TURN: 4 (OVER THE HORNS), 5 (IN THE CHEST)."
310 PRINT "BUT IF I WERE YOU,"
320 PRINT "I WOULDN'T TRY IT BEFORE THE SEVENTH PASS."
330 PRINT
340 PRINT "THE CROWD WILL DETERMINE WHAT AWARD YOU DESERVE"
350 PRINT "(POSTHUMOUSLY IF NECESSARY)."
360 PRINT "THE BRAVER YOU ARE, THE BETTER THE AWARD YOU RECEIVE."
370 PRINT
380 PRINT "THE BETTER THE JOB THE PICADORES AND TOREADORES DO,"
390 PRINT "THE BETTER YOUR CHANCES ARE."
println("HELLO, ALL YOU BLOODLOVERS AND AFICIONADOS.")
println("HERE IS YOUR BIG CHANCE TO KILL A BULL.")
println()
println("ON EACH PASS OF THE BULL, YOU MAY TRY")
println("0 - VERONICA (DANGEROUS INSIDE MOVE OF THE CAPE)")
println("1 - LESS DANGEROUS OUTSIDE MOVE OF THE CAPE")
println("2 - ORDINARY SWIRL OF THE CAPE.")
println()
println("INSTEAD OF THE ABOVE, YOU MAY TRY TO KILL THE BULL")
println("ON ANY TURN: 4 (OVER THE HORNS), 5 (IN THE CHEST).")
println("BUT IF I WERE YOU,")
println("I WOULDN'T TRY IT BEFORE THE SEVENTH PASS.")
println()
println("THE CROWD WILL DETERMINE WHAT AWARD YOU DESERVE")
println("(POSTHUMOUSLY IF NECESSARY).")
println("THE BRAVER YOU ARE, THE BETTER THE AWARD YOU RECEIVE.")
println()
println("THE BETTER THE JOB THE PICADORES AND TOREADORES DO,")
println("THE BETTER YOUR CHANCES ARE.")
400 PRINT
410 PRINT
420 D(5)=1
@@ -32,55 +32,70 @@
450 DIM L$(5)
455 A=INT(RND(1)*5+1)
460 FOR I=1 TO 5
463 READ L$(I)
463 READ L$(I)
467 NEXT I
470 DATA "SUPERB","GOOD","FAIR","POOR","AWFUL"
490 PRINT "YOU HAVE DRAWN A ";L$(A);" BULL."
500 IF A>4 THEN 530
510 IF A<2 THEN 550
520 GOTO 570
530 PRINT "YOU'RE LUCKY."
540 GOTO 570
550 PRINT "GOOD LUCK. YOU'LL NEED IT."
560 PRINT
510 IF A<2 THEN 550
520 GOTO 570
530 PRINT "YOU'RE LUCKY."
540 GOTO 570
550 PRINT "GOOD LUCK. YOU'LL NEED IT."
560 PRINT
570 PRINT
590 A$="PICADO"
595 B$="RES"
600 GOSUB 1610
610 D(1)=C
630 A$="TOREAD"
635 B$="ORES"
640 GOSUB 1610
650 D(2)=C
660 PRINT
670 PRINT
680 IF Z=1 THEN 1310
690 D(3)=D(3)+1
700 PRINT "PASS NUMBER";D(3)
710 IF D(3)<3 THEN 760
720 PRINT "HERE COMES THE BULL. TRY FOR A KILL";
730 GOSUB 1930
735 IF Z1=1 THEN 1130
740 PRINT "CAPE MOVE";
750 GOTO 800
760 PRINT "THE BULL IS CHARGING AT YOU! YOU ARE THE MATADOR--"
770 PRINT "DO YOU WANT TO KILL THE BULL";
780 GOSUB 1930
785 IF Z1=1 THEN 1130
790 PRINT "WHAT MOVE DO YOU MAKE WITH THE CAPE";
720 PRINT "HERE COMES THE BULL. TRY FOR A KILL";
730 GOSUB 1930
735 IF Z1=1 THEN 1130
740 PRINT "CAPE MOVE";
750 GOTO 800
#else
760 PRINT "THE BULL IS CHARGING AT YOU! YOU ARE THE MATADOR--"
770 PRINT "DO YOU WANT TO KILL THE BULL";
780 GOSUB 1930
785 IF Z1=1 THEN 1130
790 PRINT "WHAT MOVE DO YOU MAKE WITH THE CAPE";
800 INPUT E
810 IF E<>INT(ABS(E)) THEN 830
820 IF E<3 THEN 850
830 PRINT "DON'T PANIC, YOU IDIOT! PUT DOWN A CORRECT NUMBER"
840 GOTO 800
850 REM
820 IF E<3 THEN 850
830 PRINT "DON'T PANIC, YOU IDIOT! PUT DOWN A CORRECT NUMBER"
840 GOTO 800
850 REM
860 IF E=0 THEN 920
870 IF E=1 THEN 900
880 M=.5
890 GOTO 930
900 M=2
910 GOTO 930
920 M=3
870 IF E=1 THEN 900
880 M=.5
890 GOTO 930
900 M=2
910 GOTO 930
#else
920 M=3
930 L=L+M
940 F=(6-A+M/10)*RND(1)/((D(1)+D(2)+D(3)/10)*5)
950 IF F<.51 THEN 660
@@ -119,6 +134,7 @@
1280 GOTO 1320
1290 IF K>.8 THEN 960
1300 GOTO 1260
1310 PRINT
1320 PRINT
1330 PRINT
@@ -149,37 +165,51 @@
1580 PRINT
1590 PRINT "ADIOS":PRINT:PRINT:PRINT
1600 GOTO 2030
1610 B=3/A*RND(1)
1620 IF B<.37 THEN 1740
1630 IF B<.5 THEN 1720
1640 IF B<.63 THEN 1700
1650 IF B<.87 THEN 1680
1660 C=.1
1670 GOTO 1750
1680 C=.2
1690 GOTO 1750
1700 C=.3
1710 GOTO 1750
1720 C=.4
1730 GOTO 1750
1740 C=.5
1750 T=INT(10*C+.2)
1760 PRINT "THE ";A$;B$;" DID A ";L$(T);" JOB."
1770 IF 4>T THEN 1900
1780 IF 5=T THEN 1870
1790 ON FNA(K) GOTO 1830,1850
1780 IF 5=T THEN 1870
1790 ON FNA(K) GOTO 1830,1850
REM Dead code
1800 IF A$="TOREAD" THEN 1820
1810 PRINT "ONE OF THE HORSES OF THE ";A$;B$;" WAS KILLED."
1820 ON FNA(K) GOTO 1830,1850
1830 PRINT "ONE OF THE ";A$;B$;" WAS KILLED."
1840 GOTO 1900
1850 PRINT "NO ";A$;B$;" WERE KILLED."
1860 GOTO 1900
1870 IF A$="TOREAD" THEN 1890
1880 PRINT FNA(K);"OF THE HORSES OF THE ";A$;B$;" KILLED."
1890 PRINT FNA(K);"OF THE ";A$;B$;" KILLED."
1830 PRINT "ONE OF THE ";A$;B$;" WAS KILLED."
1840 GOTO 1900
1850 PRINT "NO ";A$;B$;" WERE KILLED."
1860 GOTO 1900
1870 IF A$="TOREAD" THEN 1890
1880 PRINT FNA(K);"OF THE HORSES OF THE ";A$;B$;" KILLED."
1890 PRINT FNA(K);"OF THE ";A$;B$;" KILLED."
1900 PRINT
1910 RETURN
1920 REM
1930 INPUT A$
1940 IF A$="YES" THEN 1990

View File

@@ -0,0 +1,144 @@
package bullfight
import bullfight.Yorn.NO
import kotlin.random.Random
val fna: Int get() = Random.nextInt(1, 2)
val l = listOf("SUPERB", "GOOD", "FAIR", "POOR", "AWFUL")
var aInt: Int = 0
fun main() {
val d = mutableListOf(0f,0f,0f,0f,0f,0f)
intro()
instructions()
d[5] = 1f
d[4] = 1f
aInt = Random.nextInt(1, 6)
println("YOU HAVE DRAWN A ${l[aInt - 1]} BULL.")
when {
aInt < 2 -> {
println("GOOD LUCK. YOU'LL NEED IT.")
}
aInt > 4 -> {
println("YOU'RE LUCKY.")
}
else -> Unit
}
d[1] = fight(FirstAct.picadores)
d[2] = fight(FirstAct.toreadores)
repeat(2) { println() }
d[3]++
println("PASS NUMBER ${d[3]}")
if (d[3]>=3) {
print("HERE COMES THE BULL. TRY FOR A KILL")
if (Yorn.input() == NO) {
print("CAPE MOVE")
}
}
else {
println("THE BULL IS CHARGING AT YOU! YOU ARE THE MATADOR--")
print("DO YOU WANT TO KILL THE BULL")
if (Yorn.input() == NO) {
print("WHAT MOVE DO YOU MAKE WITH THE CAPE")
}
}
}
enum class Yorn(val s: String) {
YES("YES"),NO("NO");
override fun toString() = s
companion object {
fun input() : Yorn {
do {
print("? ")
val z1 = readln()
Yorn.values().firstOrNull { z1 == it.s }?.let { return it } ?: println("YES OR NO")
} while (true)
}
}
}
enum class FirstAct(val str: String) {
picadores("PICADORES"), toreadores("TOREADORES");
override fun toString() = str
}
fun fight(firstAct: FirstAct): Float {
val b = 3.0 / aInt * Random.nextFloat()
val c = when {
b < .37 -> .5f
b < .5 -> .4f
b < .63 -> .3f
b < .87 -> .2f
else -> .1f
}
val t = (10 * c + .2).toInt()
println("THE $firstAct DID A ${l[t - 1]} JOB.")
if (t >= 4) {
if (t == 5) {
if (firstAct != FirstAct.toreadores) {
println ("$fna OF THE HORSES OF THE $firstAct KILLED.")
}
println("$fna OF THE $firstAct KILLED.")
}
else {
println(
when (fna) {
1 -> "ONE OF THE $firstAct WAS KILLED."
2 -> "NO $firstAct WERE KILLED."
else -> ""
}
)
}
}
println()
return c
}
private fun instructions() {
print("DO YOU WANT INSTRUCTIONS? ")
if (readln().trim() != "NO") {
println("HELLO, ALL YOU BLOODLOVERS AND AFICIONADOS.")
println("HERE IS YOUR BIG CHANCE TO KILL A BULL.")
println()
println("ON EACH PASS OF THE BULL, YOU MAY TRY")
println("0 - VERONICA (DANGEROUS INSIDE MOVE OF THE CAPE)")
println("1 - LESS DANGEROUS OUTSIDE MOVE OF THE CAPE")
println("2 - ORDINARY SWIRL OF THE CAPE.")
println()
println("INSTEAD OF THE ABOVE, YOU MAY TRY TO KILL THE BULL")
println("ON ANY TURN: 4 (OVER THE HORNS), 5 (IN THE CHEST).")
println("BUT IF I WERE YOU,")
println("I WOULDN'T TRY IT BEFORE THE SEVENTH PASS.")
println()
println("THE CROWD WILL DETERMINE WHAT AWARD YOU DESERVE")
println("(POSTHUMOUSLY IF NECESSARY).")
println("THE BRAVER YOU ARE, THE BETTER THE AWARD YOU RECEIVE.")
println()
println("THE BETTER THE JOB THE PICADORES AND TOREADORES DO,")
println("THE BETTER YOUR CHANCES ARE.")
}
repeat(2) {
println()
}
}
fun intro() {
println(" ".repeat(34) + "BULL")
println(" ".repeat(15) + "CREATIVE COMPUTING MORRISTOWN, NEW JERSEY")
repeat(3) {
println()
}
}