Gry z losowaniem

Odpowiedz Nowy wątek
2018-10-08 18:42
0

Witam jestem początkującym w pythonie jednak muszę zrobić taka mini "gierkę"
Stwórz program, który będzie miał w sobie 3 gry.

  1. Rzut kostką / podanie jaka liczba wypadła
  2. Rzut monetą / wypisywanie orzeł lub reszka
  3. Lotto / losowanie 6 liczb z 49

Program w przypadku naciśnięcia cyfry ma uruchomić program 1 -> rzut kostką ,2 -> rzut monetą ,3 -> lotto
W przypadku wciśnięcia dowolnego innego znaku ma wyświetlić informacje "Wciśnięto niepoprawny znak"

Czy jest ktoś w stanie napisać taki kod żebym mógł go przeanalizować i stworzyć samemu na nowo ?

Pozostało 580 znaków

2018-10-08 18:51
0
Raloseq napisał(a):

Czy jest ktoś w stanie napisać taki kod żebym mógł go przeanalizować i stworzyć samemu na nowo ?

A skąd pewność, że nie weźmiesz gotowca, hm? Proponuję, byś najpierw rozpisał krok po kroku cały algorytm.

Nie wezmę gotowca ponieważ chce to zrozumieć jestem w trakcie kursu pythona z yt i nie jestem w stanie zrobić tego zadania , a zdaję maturę z pythona więc sam gotowiec nie jest mi do niczego potrzebny. - Raloseq 2018-10-08 19:02

Pozostało 580 znaków

2018-10-08 19:04
GN
0

Poczytaj o liczbach pseudo-losowych (pseudo-random) w pythoniem, do tego zobacz czym są switche.


“Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter.” ~ Eric S. Raymond
sam kod wypadania orła czy reszki zrobiłem tylko nie wiem jak np poprzez naciśnięcie "2" wywołać go - Raloseq 2018-10-08 19:12
Sprawdź czym są switche - GN 2018-10-08 19:19

Pozostało 580 znaków

2018-10-08 19:19
1
import random

#rzut kostką
print ("Rzucono kostką, wypadło: " + str(random.randint(1,6)))

#rzut monetą
print ("Rzucono monetą, jest: " + ("orzeł" if random.randint(0,1)==0 else "reszka"))

#lotto
print ()
print ("Losowanie lotto: ")
liczby = list(range(1, 50))
for i in range (0, 6):
    liczba = random.choice(liczby)
    liczby.remove(liczba) # żeby liczby się nie powtarzały
    print (liczba)
Ok rozumiem kodzik ale da radę jakoś poprzez wywołanie to zrobić ? - Raloseq 2018-10-08 19:33
Pobierasz liczbę od użytkownika ( https://docs.python.org/3/library/functions.html#input ) i sprawdzasz jaka to liczba (if). Robisz po jednym ifie (z różnymi liczbami) dla każdej czynności. Wynik inputa najlepiej rzutować na int. Całą serię ifów razem z pobieraniem liczby od użytkownika możesz wrzucić w pętlę while. Z której można będzie wyjść również spod jednego if'a, np. podając 0 (w ciele tego ifa piszesz break, żeby wyjść z pętli). - Spine 2018-10-08 19:49

Pozostało 580 znaków

2018-10-09 11:14
2

Piszesz taką funkcję (tam gdzie są tylko tępe instrukcje print Dajesz kod gier):

def console(p='3games_Inc> '):
    while True:
        var = input(p)
        if var == "1":
            print ("1")
        elif var == '2':
            print ('2')
        elif var == '3':
            print ('3')
        else:
            print ("Bye")
            break

Pozostało 580 znaków

2018-10-09 15:44
0

Czemu teraz wyskakuje błąd "eilf var =='2':

edytowany 1x, ostatnio: Patryk27, 2018-10-09 15:55
Forum jest liniowe - nie musisz cytować całego postu znajdującego się bezpośrednio nad Twoim. - Patryk27 2018-10-09 15:55

Pozostało 580 znaków

2018-10-09 16:03

Pomieszałeś coś z tymi printami i indentation jest ciągle nie takie jak ma być:), przynajmniej ten kod działa:

import random
def console(p='3games_Inc> '):
   while True:
       var = input(p)
       if var == "1":
           print (
               "Rzucono kostką, wypadło: " + str(random.randint(1, 6)))
       elif var == '2':
           print (
               "Rzucono monetą, jest: " + ("orzeł" if random.randint(0, 1) == 0 else "reszka")
           )
       elif var == '3':
           print("Losowanie lotto: ")
           liczby = list(range(1, 50))
           for i in range(0, 6):
               liczba = random.choice(liczby)
               liczby.remove(liczba)
               print(liczba)

       else:
           print ("Bye")
           break

Dziwne, że Ci IDE tego nie wyłapało. Jakby co polecam: https://www.jetbrains.com/pycharm/


edytowany 1x, ostatnio: lion137, 2018-10-09 16:04
Ok działa już po wywołaniu funkcji ale nwm czemu ostatnio wywalało błąd ps. mam pycharm'a - Raloseq 2018-10-09 16:14
@Raloseq: Jeśli "wywala błąd", to jest to wyjątek. Jeśli wyjątek to ma nazwę. Jeśli ma nazwę to wskazuje na problem wraz z określeniem w której funkcji lub linii. Stawiam (choć spekuluję) że jest to IndentationError. Jeśli tak to pomieszałeś spacje z tabulatorami lub zrobiłeś nieprawidłowe wcięcia w kodzie. - Mokrowski 2018-10-09 16:47

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0