Permalänk
Medlem

Tärningsspel

Jag behöver hjälp med detta:
I loop ska tre till fem tärningar slås och summeras.
Den som spelar ska bedöma/gissa/chansa med H eller L om nästa tärningskast blir högre eller lägre. Vid lika vinner datorn efter fem vinster för datorn eller spelare skrivs resultat ut.

Tagit bort rop på hjälp i rubrik /Andreaz1, mod
Permalänk

Vad har du för problem? Svårt att hjälpa till utan att se din nuvarande kod.

Permalänk
Medlem
Skrivet av cadiremar:

Vad har du för problem? Svårt att hjälpa till utan att se din nuvarande kod.

Det är det, har ingen nuvarande kod. Vet inte hur jag ska börja eftersom det är min första gång som jag programerar.
Skulle mesta dels också se hur detta program skulle se ut när det är klart.

Permalänk

Börja med pseudokod och översätt sedan till vad det nu är för språk du sitter i.
Exempelvis detta för själva kastandet:

prompt for input randomise num dice for every dice roll it add sum compare input to sum

Lite beroende på om input ska hanteras för eller efter första slaget gjorts stämmer inte mitt förslag till hundra

Permalänk
Medlem
Skrivet av cadiremar:

Börja med pseudokod och översätt sedan till vad det nu är för språk du sitter i.
Exempelvis detta för själva kastandet:

prompt for input randomise num dice for every dice roll it add sum compare input to sum

Lite beroende på om input ska hanteras för eller efter första slaget gjorts stämmer inte mitt förslag till hundra

okej, har börjat på min pseodukod men undrar om hur jag ska sätta in det i det programeringsspåket jag använder.

Permalänk
Medlem
Skrivet av EPLOO:

okej, har börjat på min pseodukod men undrar om hur jag ska sätta in det i det programeringsspåket jag använder.

Är detta för en skoluppgift?
Vilket språk ska du skriva i?

Vad använder du för utbildningsmaterial?
För nått måste du väl använda dig av för att lära dig detta språk?
Webbsida, bok?

Permalänk
Medlem
Skrivet av EPLOO:

okej, har börjat på min pseodukod men undrar om hur jag ska sätta in det i det programeringsspåket jag använder.

använder python

Permalänk
Medlem
Skrivet av FX9:

Är detta för en skoluppgift?
Vilket språk ska du skriva i?

Vad använder du för utbildningsmaterial?
För nått måste du väl använda dig av för att lära dig detta språk?
Webbsida, bok?

ja det är en skoluppgift
ska skriva i python

Har bara fått ett blankt papper med texten som jag skrev längst upp.
Läraren vill att jag ska skriva en pseudokod och sedan lägga in det i python, har skrivit pseudokoden men har ingen aning om hur jag ska skriva det i python.
Får inte använda internet utan får bara fråga vänner

Permalänk

Huh, har du någon lärobok då?

Permalänk
Medlem
Skrivet av cadiremar:

Huh, har du någon lärobok då?

Nej. Läraren tror att vi bara ska kunna det. Finns typ 1 i klassen som har klarat uppgiften

Permalänk

Om det inte finns något utbildningsmaterial skulle jag skita i uppmaningen om "inget internet". Eller gå till ett bibliotek och plocka upp en python-bok.
Och sedan försöka få stöd för att justera kursplanen då det låter bisarrt att man ska lära sig något utan att få ta del av information.

Permalänk
Medlem
Skrivet av EPLOO:

Jag behöver hjälp med detta:
I loop ska tre till fem tärningar slås och summeras.
Den som spelar ska bedöma/gissa/chansa med H eller L om nästa tärningskast blir högre eller lägre. Vid lika vinner datorn efter fem vinster för datorn eller spelare skrivs resultat ut.

Finns det ingen som kan lösa detta?

Permalänk
Medlem
Skrivet av cadiremar:

Om det inte finns något utbildningsmaterial skulle jag skita i uppmaningen om "inget internet". Eller gå till ett bibliotek och plocka upp en python-bok.
Och sedan försöka få stöd för att justera kursplanen då det låter bisarrt att man ska lära sig något utan att få ta del av information.

Går på en friskolan, de bryr sig inte så mycket om vad vi säger

Permalänk
Medlem

Att "inte använda internet" måste du missförstått, speciellt om ni inte har någon kursbok måste du ju kunna kolla upp pythons syntax online (dvs. väsentligen hur du ska skriva olika saker, definiera funktioner och variabler m.m. för att python ska kunna köra din kod). Att fråga om det på forum är ju helt knas. Säker på att tanken inte bara är att man inte får googla lösningen på just det du ska programmera?

Om kursen är en introduktionskurs i programmering som använder python borde den också ge lite pointers om hur man kommer igång med det... Det lättaste är väl antagligen att köra det online (om då inte det var detta som avsågs med att inte använda internet), då behöver du inte installera något i din dator, tänk bara på att spara din kod ofta i något text dokument eller dyl. Exempel (vet dock inte om/hur det hanterar inmatningar från användaren): https://www.programiz.com/python-programming/online-compiler/

Permalänk
Medlem
Skrivet av EPLOO:

Finns det ingen som kan lösa detta?

Det är väldigt många som kan fixa detta med bakbundna händer men det är inte där problemet ligger.

Att bara ge dig svaret hjälper dig inte lika mycket som att du skulle försöka själv och sedan visa specifika delar du behöver hjälp med. Folk hjälper dig gärna om du försöker sätta ihop något själv.

Dela upp problemet i små delar och börja med något litet.

Permalänk
Medlem
Skrivet av e1m1:

Att "inte använda internet" måste du missförstått, speciellt om ni inte har någon kursbok måste du ju kunna kolla upp pythons syntax online (dvs. väsentligen hur du ska skriva olika saker, definiera funktioner och variabler m.m. för att python ska kunna köra din kod). Att fråga om det på forum är ju helt knas. Säker på att tanken inte bara är att man inte får googla lösningen på just det du ska programmera?

Om kursen är en introduktionskurs i programmering som använder python borde den också ge lite pointers om hur man kommer igång med det... Det lättaste är väl antagligen att köra det online (om då inte det var detta som avsågs med att inte använda internet), då behöver du inte installera något i din dator, tänk bara på att spara din kod ofta i något text dokument eller dyl. Exempel (vet dock inte om/hur det hanterar inmatningar från användaren): https://www.programiz.com/python-programming/online-compiler/

Okej tack för hjälpen

Permalänk
Medlem

Som sagt ovan. Skit högaktningsfullt i att du inte får använda internet. Det finns inte en programmerare idag som inte använder internet för att få fram funktionsförklaringar och syntax-hjälp.

Skrivet av EPLOO:

Finns det ingen som kan lösa detta?

Jo, det kan nog en del av oss, men du hjälps inte utav att vi löser uppgiften åt dig.

Dock så förstår jag att det inte är helt enkelt att bara sätta sig in i programmering, så som hjälp på traven:

https://docs.python.org/3/library/random.html

from random import randint num_of_die = randint(a,b) die_num = randint(c,d)

Du får komma på vad a,b,c,d och hur du ska använda dem själv. Men med din psuedokod samt ovan länkade dokumentation kan du säkerligen lista ut det!

Permalänk
Medlem
Skrivet av EPLOO:

Finns det ingen som kan lösa detta?

Jo, men hur ska du lära dig programmera om du inte gör uppgiften själv?

Permalänk
Medlem

Som flera sagt tidigare, att vi bara ger dig koden rakt upp och ner är helt meningslöst. Men visa oss din pseudokod så kanske vi kan resonera oss framåt en bit.

Jag har programmerat i många år, men inte programmerat så mycket Python, och jag kan inte lösa den här uppgiften helt utan internet, bok eller någon form av referensmaterial. Jag skulle behövt hjälp för att veta hur slumptalsgenereringen funkar, precis hur man tar emot input och säker någon sak mer jag inte listar ut när jag väl kodar.

Börja kanske med att försöka få ihop ett program som slumpar fram en siffra mellan 1 och 6 och skriver ut den siffran på skärmen, då har du kommit en bit på vägen.

Permalänk
Medlem

Frågan är om detta är en introduktionskurs så kanske detta är en "test" uppgift för att se vilken nivå alla i klassen ligger på, och därmed inte en uppgift ni förväntas klara?

Jag skulle pratat med läraren och ifrågasatt om det är meningen att ni borde kunna detta?

Om det inte är en introduktionskurs så kan det vara så att läraren anser att ni bör kunna detta. Och om då bara 1 i klassen klarar det så är det nog rätt tragiskt

Permalänk
Medlem
Skrivet av EPLOO:

Jag behöver hjälp med detta:
I loop ska tre till fem tärningar slås och summeras.
Den som spelar ska bedöma/gissa/chansa med H eller L om nästa tärningskast blir högre eller lägre. Vid lika vinner datorn efter fem vinster för datorn eller spelare skrivs resultat ut.

Dessutom, jag förstår inte riktigt uppgiften eller om jag ska vara ärlig? Är det exakt den formuleringen ni fick?
Med risk att bidra med lite pseudokod...

Såhär läser jag det:
1. Slumpa fram en siffra mellan 3 och 5.
2. Slå så många tärningar som slumpades fram i (1) och summera resultatet
3. Spelaren gissar om nästa tärningskast blir högre eller lägre än summan.
4. Slå en tärning.
5. Om spelarens gissning var rätt så får spelaren en poäng, annars får datorn en poäng.
5. Upprepa steg 1-5 tills antingen dator eller spelare har fem poäng.
6. Skriv ut svaret

Men det känns som en väldigt konstig tävling, gissar man konsekvent lägre lär man vinna.

Eller menar de såhär:
1. Slå tärning
2. Spelaren gissar högre eller lägre
3. Slå tärning
4. Om spelarens gissning var rätt så får spelaren en poäng, annars får datorn en poäng.
5. Upprepa steg 1-4 tills antingen dator eller spelare har fem poäng.
6. Skriv ut svaret

Men var kommer då t.ex. summeringen av 3 till 5 tärningar in?

Permalänk
Skrivet av jaqob:

Men var kommer då t.ex. summeringen av 3 till 5 tärningar in?

Beskrivningen förvirrade mig lite också (som synes i mitt andra inlägg), men jag tolkar det som att man ska gissa om summan av 3-5 tärningar är högre eller lägre än föregående summa av 3-5 tärningar.
Fortfarande lite konstig tävling, men funkar som en lärouppgift.

Permalänk
Medlem
Skrivet av cadiremar:

Beskrivningen förvirrade mig lite också (som synes i mitt andra inlägg), men jag tolkar det som att man ska gissa om summan av 3-5 tärningar är högre eller lägre än föregående summa av 3-5 tärningar.
Fortfarande lite konstig tävling, men funkar som en lärouppgift.

Alltså såhär:

1. Slumpa fram en siffra mellan 3 och 5.
2. Slå så många tärningar som slumpades fram i (1) och summera resultatet
3. Spelaren gissar om nästa summa av tärningskasten blir högre eller lägre än summan av de föregående.
4. Upprepa 1 och 2
6. Om spelarens gissning var rätt så får spelaren en poäng, annars får datorn en poäng.
5. Upprepa steg 1-6 tills antingen dator eller spelare har fem poäng.
6. Skriv ut svaret

Känns lite rörigt, men som du säger, funkar som en lärouppgift.
(Och man bör kanske "optimera" så att resultatet i punkt 4 används istället för punkt 1 och 2, men det krånglar till logiken en aning mer än vad som kanske är vettigt i en förstauppgift)

Edit: Kanske är det så att även detta är "för mycket hjälp" givet hur mycket OP själv (inte) verkar ha försökt, men jag låter det stå, det är nog inte meningen att det är just den här delen som ska vara utmaningen.

Permalänk
Medlem

Det löste sig tillslut. Fick hjälp av en kille i klassen

Permalänk
Medlem

import random def dice_loop(): while True: print("**********************") print("[1]") print("[2]") print("[3]") print("[4]") print("[5]") print("[6]") print("**********************") try: your_dice = int(input("Choose a number: ")) except: print("Wrong input") dice_loop() if int(your_dice) < 1 or int(your_dice) > 6: print("Wrong input") dice_loop() dice = random.randint(1, 6) if your_dice == dice: print("Dice is: {}, You are lucky".format(dice)) else: print("Dice is: {}, You are not so lucky".format(dice)) run = dice_loop()

Permalänk
Medlem
Skrivet av EPLOO:

Det löste sig tillslut. Fick hjälp av en kille i klassen

Håll hårt i honom för resten av kursen då, om du nu vill bara ta dig igenom den utan att lära dig programmera.

Permalänk
Medlem

Min första programmeringsuppgift 1969 var att beräkna egenvektorer och egenvärden för en matris. Språket var algol och datorn IBM. Man fick själv stansa hålkort som lämnades in. Resultatet kom dagen efter. Råkade man stansa kolon i stället för semikolon så blev det givetvis kompileringsfel. En dag förlorad. Kursen var obligatorisk för oss som läste elektroteknik. Och jag bestämde mig för att aldrig någonsin ägna mig åt datorer!

Permalänk
Medlem
Skrivet av M89:

Att bara ge koden rakt upp och ner, dessutom okommenterad, är väl ungefär det mest oproduktiva man kan göra om man vill att OP ska lära sig något. När koden sen inte ens löser uppgiften blir det liksom ännu dummare...

Permalänk
Medlem
Skrivet av jaqob:

Att bara ge koden rakt upp och ner, dessutom okommenterad, är väl ungefär det mest oproduktiva man kan göra om man vill att OP ska lära sig något. När koden sen inte ens löser uppgiften blir det liksom ännu dummare...

Min kommentar kom inte med, skulle stå att det var en bra grund att börja med. Inte lösa uppgiften.

EDIT:
Ser att ts redan fått hjälp, här är mitt svar om jag förstått frågan rätt:

import random # Spelare player_1 = 0 player_2 = 0 # Loop while True: # Slumpmässigt tal för antal tärningar num = random.randint(3,5) summary = 0 # Summa för varje kastad tärning for i in range(num): summary += random.randint(1,6) # Resultat tavla print("Score: You {} : {} Computer".format(player_2, player_1)) print("\n------------------------------------------------------") # Meny val print("\nGuess the value above or below?") print("[1] Below") print("[2] Above") select = int(input("\n### Dice: {} ### \n\nInput: ".format(summary))) # Vilken inmatning if select == 1 or select == 2: # Nytt kast new_num = random.randint(3,5) new_summary = 0 for i in range(new_num): new_summary += random.randint(1,6) # Uträkning utav resultat if summary < new_summary: print("\nResult: {}\n\n".format(new_summary)) if select == 1: print("Computer wins!") player_1 += 1 else: print("You win!") player_2 += 1 else: print("\nResult: {}\n\n".format(new_summary)) if select == 2: print("Computer wins!") player_1 += 1 else: print("You win!") player_2 += 1 else: print('Wrong input!\n\n') # Vinst om spelare är över 5 poäng if player_1 > 4 or player_2 > 4: print("\n------------------------------------------------------") if int(player_1) > int(player_2): print("\nYou lose the Game.") else: print("\nYou win the Game!") print("\nScore: You {} : {} Computer".format(player_2 ,player_1)) break