10 svar
1067 visningar
xFisherking behöver inte mer hjälp
xFisherking 6
Postad: 13 jun 2023 15:01 Redigerad: 13 jun 2023 15:01

Bingo

Hejsan!
Jag håller på att skriva ett bingo program för programmering 1 och har lyckats väldigt bra, men jag har ett litet bekymmer.
Min kod verkar inte förstå när slumptalet är detsamma som användarens inmatade siffror.
Oavsett om man har fått en träff eller ej så adderar koden inte till värdet "Träffar" så slutresultatet blir 0 oavsett om man har fått en träff eller ej.

Koden är följande:

#Hämtar Random modulen
import random
Träffar = 0

#Genererar en bricka
bricka = [0]*10

#Användaren matar in ett nummer
for i in range (len(bricka)):
 nummer = int(input("Skriv in ett tal för lottobrickans position {}: ".format(i)))
 bricka = [0]*10

#Generera ett slumpmässigt tal
slumptal = random.randint(1, 10)

#Jämför brickan med det slumpmässiga talet för att räkna antalet träffar
for nummer in bricka:
 if slumptal == nummer:
  Träffar += 1

#Visar Resultatet
print("Det slumpade talet är: ", slumptal)
print("Antal träffar:", Träffar)
input()

Laguna Online 30711
Postad: 13 jun 2023 15:53

Du gör aldrig något med de inmatade talen.

xFisherking 6
Postad: 13 jun 2023 15:55
Laguna skrev:

Du gör aldrig något med de inmatade talen.

Inte helt säker på vad du menar med det.

Laguna Online 30711
Postad: 13 jun 2023 15:59

Du borde se det om du läser koden noga. Börja där du ger nummer ett värde och gå sedan neråt. Var använder du variabeln nummer?

xFisherking 6
Postad: 14 jun 2023 18:07
Laguna skrev:

Du borde se det om du läser koden noga. Börja där du ger nummer ett värde och gå sedan neråt. Var använder du variabeln nummer?

Fortfarande inte helt säker på vad du menar. Problemet ligger inte att jag inte har läst min egna kod noggrannt nog, utan mer att mitt huvud är fast i att efter att jag har designerat ett värde till "nummer" så borde sagd variabel jämföras med slumptal, och om någon av slumptalen är lika så adderar koden +1 till "Träffar".

Peter_ 470 – Avstängd
Postad: 14 jun 2023 18:50 Redigerad: 14 jun 2023 18:50

Ett effektivt sätt att felsöka är att skriva ut olika variablers värde i programmet.
Skriv ut vad bricka, nummer, träffar och slumptal har för värden före raden
#Jämför brickan med det slumpmässiga talet för att räkna antalet träffar

Skriv sedan ut vad bricka, nummer, träffar och slumptal har för värden före raden
#Visar Resultatet

Kommer du vidare?

Fermatrix 7841 – Fd. Medlem
Postad: 14 jun 2023 18:55 Redigerad: 14 jun 2023 18:55
xFisherking skrev:
Laguna skrev:

Du borde se det om du läser koden noga. Börja där du ger nummer ett värde och gå sedan neråt. Var använder du variabeln nummer?

Fortfarande inte helt säker på vad du menar. Problemet ligger inte att jag inte har läst min egna kod noggrannt nog, utan mer att mitt huvud är fast i att efter att jag har designerat ett värde till "nummer" så borde sagd variabel jämföras med slumptal, och om någon av slumptalen är lika så adderar koden +1 till "Träffar".

Det Laguna menar är detta:

for i in range (len(bricka)):
 nummer = int(input("Skriv in ett tal för lottobrickans position {}: ".format(i)))
 bricka = [0]*10

Du gör ju ingenting med variabeln 'nummer'. Du tar emot värdet från användaren, nollställer variabeln 'bricka' och gör detta om och om igen. 

Peter_ 470 – Avstängd
Postad: 14 jun 2023 19:02
Dracaena skrev:

Du gör ju ingenting med variabeln 'nummer'. Du tar emot värdet från användaren, nollställer variabeln 'bricka' och gör detta om och om igen. 

Jo:  if slumptal == nummer:

Peter_ 470 – Avstängd
Postad: 14 jun 2023 19:13 Redigerad: 14 jun 2023 19:14

Såg nu:
nummer = int(input("Skriv in ett tal för lottobrickans position {}: ".format(i)))
sedan:
for nummer in bricka:

I C/C++ får man fel om man deklarerar en redan använd variabel. Icke så i Python.
I raden for nummer in bricka: används samma variabelnamn ("nummer") som tidigare användes för att lagra användarinmatningen. Detta innebär att den tidigare tilldelningen till variabeln "nummer" försvinner.

Förstår du att du måste använda ett annat namn i for nummer in bricka: än nummer?

xFisherking 6
Postad: 14 jun 2023 19:51
Peter_ skrev:

Såg nu:
nummer = int(input("Skriv in ett tal för lottobrickans position {}: ".format(i)))
sedan:
for nummer in bricka:

I C/C++ får man fel om man deklarerar en redan använd variabel. Icke så i Python.
I raden for nummer in bricka: används samma variabelnamn ("nummer") som tidigare användes för att lagra användarinmatningen. Detta innebär att den tidigare tilldelningen till variabeln "nummer" försvinner.

Förstår du att du måste använda ett annat namn i for nummer in bricka: än nummer?

Nix, det gör jag inte!
Men det är okej, jag kommer inte vidare med varken denna eller C# motsvarigheten så jag har sagt upp mig från kursen då pedagogiken inte fungerar.
Tack så mycket för eran tid vilket som!

Laguna Online 30711
Postad: 14 jun 2023 20:08

Jag skulle vilja stå bredvid dig och peka, det skulle göra allt enklare. Och rita på papper.

Nästa steg här vore att jag skriver på varje rad vad som händer, och frågar tills jag vet att du är med.

Svara
Close