16 svar
608 visningar
mk4545 är nöjd med hjälpen
mk4545 195
Postad: 14 sep 2021 17:03

Skriva ett tärnings-program som ska kunna användas till olika spel.

Hej!

jag ska skapa ett program till tärningsspel som ska fråga användaren antalet tärningar, kast och sedan slumpa värden till tärningarna. Jag har börjat men vet inte hur jag ska fortsätta.

antal_tärningar=int(input("Hur många tärningar behövs i spelet?"))
antal_kast=int(input("Hur många kast får en spelare?"))
avsluta_fortsätta=input("Genom att trycka på enter kan du börja kasta, om du vill avsluta spelet skriv A:")

först blir det error när jag trycker på enter i avsluta_fortsätta inputen sen vet jag inte hur jag ska fortsätta

Laguna Online 28593
Postad: 14 sep 2021 17:44

Kan du visa hela körningen, med din input och programmets output? 

mk4545 195
Postad: 14 sep 2021 20:24

antal_tärningar=int(input("Hur många tärningar behövs i spelet?"))
antal_kast=int(input("Hur många kast får en spelare?"))
avsluta_fortsätta=input("Genom att trycka på enter kan du börja kasta, om du vill avsluta spelet skriv A:")


resultat=[]

if avsluta=="A":
exit(0)
else:

var_1=0
while var_1<antal_kast:
var_1=var1+1
for i in range(antal_tärningar):
t=randint(1,6)
resultat.append(t)
print("Tärning",i+1,":",)

 

vet ej om detta är rätt 

mk4545 195
Postad: 14 sep 2021 20:25

antal_tärningar=int(input("Hur många tärningar behövs i spelet?"))
antal_kast=int(input("Hur många kast får en spelare?"))
avsluta_fortsätta=input("Genom att trycka på enter kan du börja kasta, om du vill avsluta spelet skriv A:")


resultat=[]

if avsluta=="A":
exit(0)
else:

 

så långt har jag kommit egentligen då jag enbart får använda while satser i mitt program inte for satser

mk4545 195
Postad: 14 sep 2021 20:27

Hur många tärningar behövs i spelet? 3
Hur många kast en spelare får? 2
Genom att trycka på enter kan du börja kasta, om du vill avsluta spelet skriv A:(här har användaren tryckt på enter)
Tärning 1: 5
Tärning 2: 4
Tärning 3: 2
Är du inte nöjd kan du kansta igen, vill du kasta igen?(j/n)j
Tärning 1: 3
Tärning 2: 1
Tärning 3: 6
Du fick 3, 1, 6.

 

så här ska slutresultatet se ut och på slutet ska de även fråga om man vill köra igen eller avsluta

Laguna Online 28593
Postad: 14 sep 2021 20:34

Bra bra, men hur ser det ut nu, det var det jag ville veta.

mk4545 195
Postad: 14 sep 2021 20:43

det jag skickade innan är hur det ser ut nu, kommer inte längre än så :/ 

mk4545 195
Postad: 14 sep 2021 20:45

sen när jag kör den så ser det ut såhär:

hur många tärningar behövs i spelet?3
Hur många kast får en spelare?3
Genom att trycka på enter kan du börja kasta, om du vill avsluta spelet skriv A:

sen blir det error när jag trycker enter

Laguna Online 28593
Postad: 14 sep 2021 20:51

Visa hela körningen. Och vad blir det för fel?

mk4545 195
Postad: 15 sep 2021 14:19

nu blev det rätt och inga error, jag lyckades lösa det genom att skriva random.randit istället för bara randit. nu ser den ut såhär var1=0
while var1<=antal_kast:
var1=var1+1
for i in range(antal_tärningar):
t=random.randint(1,6)
resultat.append(t)
tärningar=print("Tärningar",i+1,":", t)
while var1==antal_kast:
nöjd=input('Är du inte nöjd kan du kasta igen, vill du kasta igen?(ja/nej)')
if nöjd=='ja':
continue;

Däremot vill jag upprepa koden genom att lägga in continue men den upprepar enbart frågan om jag är nöjd. Hur gör jag så att den upprepar kasten och slutligen frågan?

Laguna Online 28593
Postad: 15 sep 2021 14:55

Använd kodverktyget {;} så att indenteringen blir rätt. Nu är det ganska svårläst.

Jag tycker mig se att "continue" bara fortsätter den nedersta loopen, så den har ingen effekt alls. var1==antal_kast ändrar sig inte i den loopen, så du kanske menar if i stället för while.

mk4545 195
Postad: 15 sep 2021 15:07

det funkade när jag bytte ut while till if. Tack så mycket! nu till min sista fråga. Efter att jag fått upp resultaten t.ex.

Tärning 1: 3
Tärning 2: 1
Tärning 3: 6

så vill jag att den skriver: ditt resultat blev: 3, 1, 6 längst ned under tärning 3. Jag försökte lägga till en print: print('ditt resultat blev', t) men då skriver den bara ut tärning 3 resultat såhär:

Tärning 1: 3
Tärning 2: 1
Tärning 3: 6
ditt resultat blev 6

hur gör jag så alla tärningars resultat syns längst ned?

mk4545 195
Postad: 15 sep 2021 15:21

nu ser det ut såhär:

var1=0
while var1<=antal_kast:
var1=var1+1
for i in range(antal_tärningar):
t=random.randint(1,6)
resultat.append(t)
tärningar=print("Tärningar",i+1,":", t)
if var1==antal_kast:
nöjd=input('Är du inte nöjd kan du kasta igen, vill du kasta igen?(ja/nej)')
if nöjd=='ja':
continue;
else:
exit(0) 

när jag kör den blir det :

Hur många tärningar behövs i spelet?2
Hur många kast får en spelare?2
Genom att trycka på enter kan du börja kasta, om du vill avsluta spelet skriv A:
Tärningar 1 : 3
Tärningar 2 : 4
Tärningar 1 : 5
Är du inte nöjd kan du kasta igen, vill du kasta igen?(ja/nej)

alltså om jag skriver två tärningar i spelet blir det ändå tre.. är väldigt förvirrad just nu :/

Laguna Online 28593
Postad: 15 sep 2021 15:22

Indentera koden, är du snäll.

mk4545 195
Postad: 15 sep 2021 15:23

menar du detta: {;} 

vart ska jag göra det?

Mega7853 211
Postad: 15 sep 2021 15:48

Du gör det genom att klicka på symbolen "{;}" i svars-rutan, välja Python i rullgardinsmenyn och klistra in din kod direkt från editorn. Då ser koden ut såhär. Jag ändrade några småsaker och då fungerar det för mig iallafall. Om jag svarar 2 och 2 så slår den två tärningar och frågar om jag vill slå igen. Om ja, så gör den det, om inte så avslutar den.

import random

antal_tarningar=int(input("Hur manga tarningar behovs i spelet?"))
antal_kast=int(input("Hur manga kast far en spelare?"))
avsluta_fortsatta=input("Genom att trycka pa enter kan du borja kasta, om du vill avsluta spelet skriv A:")

resultat=[]

if avsluta_fortsatta=="A":
    exit(0)
else:
    var1=0
    while var1<antal_kast:
        var1=var1+1
        for i in range(antal_tarningar):
            t=random.randint(1,6)
            resultat.append(t)
            print("Tarningar",i+1,":", t)
        if var1<antal_kast:
            nojd=input('Ar du inte nojd kan du kasta igen, vill du kasta igen?(ja/nej)')
            if nojd=='ja':
                continue
            else:
                break
mk4545 195
Postad: 15 sep 2021 15:56

nu funkar det. Vad snällt, tack så mycket för er hjälp :D

Svara Avbryt
Close