Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.25 KB | None | 0 0
  1. '''
  2. Program symuluje losowanie gry liczbowej Lotto. Przeznaczony jest wylacznie do celow naukowych.
  3. '''
  4.  
  5. # Importuje moduly odpowiedzialne za: losowanie (random) oraz operacje zwiazane z czasem (time).
  6. import random
  7. import time
  8.  
  9. input(" Jesli jestes gotowy na dzisiejsze losowanie Totolotto wcisnij ENTER ")
  10. print("\n\n\n Wprowadz teraz po kolei 6 dowolych liczb z zakresu od 1 do 49,",
  11.       "\n ktore Twoim zdaniem zostana teraz wylosowane")
  12.  
  13. # Tworze liste do ktorej uzytkownik wprowadzi swoje typy liczbowe w dalszej czesci programu.
  14. # Zmienna liczba_uzytkownika posluzy do umieszczania kolejnych liczb w liscie uzytkownik.
  15. uzytkownik = []
  16. liczba_uzytkownika = 0
  17.  
  18. '''
  19. Petla while ktora zbiera za pomoca zagniezdzonego inputa kolejne liczby od uzytkownika i dopisuje je po kolei na liscie.
  20. Po kolei oznacza ze uzytkownik.append dopisuje do konca listy kolejne wartosci wprowadzone przez uzytkownika.
  21. Jak widac petla bedzie dzialac dopoki ilosc pozycji na liscie uzytkownik (len(uzytkownik)) bedzie mniejsza niz 6.
  22. '''
  23. while len(uzytkownik) < 6:
  24.     uzytkownik.append(input("\n\n Wprowadz (kolejna) liczbe do losowania: "))
  25.     liczba_uzytkownika += 1 # To wyrazenie dodaje na liscie wartosci liczba_uztkownika + kolejny numer;
  26.  
  27. # Oczyszczam liste z ewentualnych duplikatow. Sprowadzam ja do postaci zbioru (set()) a nastepnie znow do postaci listy.
  28. uzytkownik = list(set(uzytkownik))
  29.  
  30. # Po oczyszczeniu listy, jesli pojawily sie duplikaty trzeba bedzie dopisac kolejne wartosci -> znow pobrac liczby od uzytkownika.
  31. while len(uzytkownik) < 6:
  32.     print("\nNie wprowadziles (nadal) szesciu niepowtarzajacych sie liczb. Wprowadz  jeszcze jedna liczbe: ")
  33.     uzytkownik.append(input("Twoja niepowtarzajaca sie liczba od 1 do 49 to: "))
  34.     uzytkownik = list(set(uzytkownik)) # Oczyszczamy do skutku -> czyli az bedzie 6 liczb.
  35.  
  36. input("\nAby rozpoczac losowanie nacisnij ENTER. Powodzenia!")
  37.  
  38. print("\n\nKomora maszyny losujacej jest pusta.")
  39. time.sleep(3)
  40. print("\nNastepuje zwolnienie blokady.")
  41. time.sleep(3)
  42. print("\nRozpoczynam losowanie.")
  43. time.sleep(5)
  44.  
  45. # Rozpoczynam losowanie
  46. wylosowane = []
  47. liczba = 0
  48.  
  49. while liczba < 6:
  50.     wylosowane.append(random.randint(1, 49))
  51.     liczba += 1
  52.     wylosowane = list(set(wylosowane))
  53.  
  54. wylosowane.sort() # Sortowanie od najmniejszej do najwiekszej.
  55. print("\n \n Wylosowane dzisiaj liczby to: ", "\n", wylosowane)
  56. wylosowane = str(wylosowane)
  57.  
  58. uzytkownik.sort()
  59. print("\n \n Wprowadzone przez Ciebie liczby to: ", "\n",uzytkownik)
  60. uzytkownik = str(uzytkownik)
  61.  
  62. # Teraz bardzo wazna czesc programu. Sprowadzam obie listy do postaci zbiorow.
  63. # Dzieki takiemu sprowadzeniu moge porownac ze soba oba zbiory, a nastepnie policzyc wspolne elementy zbioru, tj. ile liczb jest takich samych.
  64. s = set(uzytkownik)
  65. t = set(wylosowane)
  66. set(s &= t)
  67. s = list(s)
  68.  
  69. print(s)
  70. '''
  71. # Na koniec wyswietlam uzytkownikowi komunikat zalezny od liczby trafionych liczb.
  72. if len(s) == 0:
  73.    print("Niestety, nie trafiles zadnej liczby :-( ")
  74. elif len(s) >= 1 and len(s) <= 3:
  75.    print("\n\nTrafiles tylko ", len(s), "liczby")
  76. elif len(s) > 4:
  77.    print("\n\nGratulacje, twoj wynik to  ", len(s), "trafionych liczb")
  78. '''
  79.  
  80. # Czekam az uzytkownik zakonczy swoje losowanie.
  81. input("\n \n Aby zakonczyc losowanie wcisnij klawisz ENTER")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement