Permalink
Browse files

Dodanie finalnego kodu Małego i Dużego Lotka.

  • Loading branch information...
xinulsw committed Oct 28, 2015
1 parent f251d68 commit 04f72ee4512c3146823fa51900676fa8b1c329de
Showing with 169 additions and 0 deletions.
  1. +22 −0 totolotek/toto.py
  2. +34 −0 totolotek/toto02.py
  3. +113 −0 totolotek/totomodul.py
View
@@ -0,0 +1,22 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import random
liczba = random.randint(1, 10)
# print "Wylosowana liczba:", liczba
for i in range(3):
print "Próba ", i+1
odp = raw_input("Jaką liczbę od 1 do 10 mam na myśli? ")
# print "Podałeś liczbę: ", odp
if liczba == int(odp):
print "Zgadłeś! Dostajesz długopis!"
break
else:
if i == 2:
print "Miałem na myśli liczbę: ", liczba
else:
print "Nie zgadłeś. Spróbuj jeszcze raz."
print
View
@@ -0,0 +1,34 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-
from totomodul import ustawienia, losujliczby, pobierztypy, wyniki
from totomodul import czytaj_json, zapisz_json
import time
# program główny
# ustalamy trudność gry
nick, ileliczb, maksliczba, ilerazy = ustawienia()
nazwapliku = nick + ".json"
losowania = czytaj_json(nazwapliku)
# losujemy liczby
liczby = losujliczby(ileliczb, maksliczba)
# pobieramy typy użytkownika i sprawdzamy, ile liczb trafił
for i in range(ilerazy):
typy = pobierztypy(ileliczb, maksliczba)
trafione = wyniki(set(liczby), typy)
losowania.append({
"czas": time.time(),
"dane": (ileliczb, maksliczba),
"wylosowane": liczby,
"ile": trafione
})
zapisz_json(nazwapliku, losowania)
print "Wylosowane liczby:", liczby
print "\n", losowania
View
@@ -0,0 +1,113 @@
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import random
import os
def ustawienia():
"""Funkcja pobiera nick użytkownika, ilość losowanych liczb, maksymalną
losowaną wartość oraz ilość typowań. Ustawienia zapisuje."""
nick = raw_input("Podaj nick: ")
nazwapliku = nick + ".ini"
gracz = czytaj_ust(nazwapliku)
odp = None
if gracz:
print "Twoje ustawienia:"
print "Liczb:", gracz[1]
print "Z Maks:", gracz[2]
print "Losowań:", gracz[3]
odp = raw_input("Zmieniasz (t/n)? ")
if not gracz or odp.lower() == "t":
while 1:
try:
ile = int(raw_input("Podaj ilość typowanych liczb: "))
maks = int(raw_input("Podaj maksymalną losowaną liczbę: "))
if ile > maks:
print "Błędne dane!"
continue
ilelos = int(raw_input("Ile losowań: "))
break
except:
print "Błędne dane!"
continue
gracz = zapisz_ust(nazwapliku, [nick, str(ile), str(maks), str(ilelos)])
return gracz[0:1] + map(lambda x: int(x), gracz[1:4])
def czytaj_ust(nazwapliku):
if os.path.isfile(nazwapliku):
plik = open(nazwapliku, "r")
linia = plik.readline()
if linia:
return linia.split(";")
return False
def zapisz_ust(nazwapliku, gracz):
plik = open(nazwapliku, "w")
plik.write(";".join(gracz))
plik.close()
return gracz
def losujliczby(ile, maks):
"""Funkcja losuje ile unikalnych liczb całkowitych od 1 do maks"""
liczby = []
i = 0
while i < ile:
liczba = random.randint(1, maks)
if liczby.count(liczba) == 0:
liczby.append(liczba)
i = i + 1
return liczby
def pobierztypy(ile, maks):
"""Funkcja pobiera od użytkownika jego typy wylosowanych liczb"""
print "Wytypuj", ile, "z", maks, " liczb: "
typy = set()
i = 0
while i < ile:
try:
typ = int(raw_input("Podaj liczbę " + str(i + 1) + ": "))
except ValueError:
print "Błędne dane!"
continue
if 0 < typ <= maks and typ not in typy:
typy.add(typ)
i = i + 1
return typy
def wyniki(liczby, typy):
trafione = liczby & typy
if trafione:
print "\nIlość trafień: ", len(trafione)
print "Trafione liczby: ", trafione
else:
print "Brak trafień. Spróbuj jeszcze raz!"
print "\n" + "x" * 40 + "\n" # wydrukuj 40 znaków x
return len(trafione)
import json
def czytaj_json(nazwapliku):
"""Funkcja odczytuje dane w formacie json z pliku"""
dane = []
if os.path.isfile(nazwapliku):
with open(nazwapliku, "r") as plik:
dane = json.load(plik)
return dane
def zapisz_json(nazwapliku, dane):
"""Funkcja zapisuje dane w formacie json do pliku"""
with open(nazwapliku, "w") as plik:
json.dump(dane, plik)

0 comments on commit 04f72ee

Please sign in to comment.