Funkcje cz. 3

Funkcje cz 3

Do przygotowania przed zajęciami

* Python dla każdego. Podstawy programowania. – Michael Dawson – Helion **R** – Rozdział 7. Wprowadzenie. Koniec gry.

Cel i tematyka zajęć

Dzisiejsze laboratorium ma na celu utrwalenie wiadomości o funkcjach. Większość funkcji które dziś Państwo stworzycie będzie przydatna w trakcie realizacji projektu.

– Zadanie przypominające

* Napisz funkcję, która przyjmuje argumenty nieujemne liczby całkowite n i m, z których co najmniej jedna jest różna od zera i zwraca jako wartość n do potęgi m.

Funkcje

Funkcja wyświetlająca menu

Rozbuduj poniższą funkcję tak aby wyświetlała menu z Twojej gry:

def printMenu():
"""Funkcja wypisująca menu użytkownika"""
print("--------------")
print("--- Menu ---")
print("--------------")

Nawigacja

Rozbuduj poniższą funkcję tak aby realizowała dostęp do poszczególnych funkcjonalności gry. np. wybranie pozycji “Wyświetl instrukcję” wywołuje funkcję o nazwie printInstruction():

def navigation(choice):
"""Funkcja obsługująca wybór"""
choice = choice.lower()

Oprogramuj dodatkowe funkcje konieczne do obsługi Menu.

Gra Master Mind

Zmodyfikuj grę tak aby:
* wylosowane przez program liczby były zapisywane do listy o nazwie listMM,
* wprowadzone przez użytkownika liczby były zapisywane do listy o nazwie listGuess,
* zrealizuj sprawdzanie poprawności podanych odpowiedzi i wyświetlanie ich poprawności w następujący sposób [1, 0, 0, 1] (użyj 0 gdy liczba jest niepoprawna, 1 gdy liczba jest poprawna),
* podziel kod na funkcję.
– DODATKOWE //
Osoby zainteresowane mogą zrealizować wyświetlanie takie jak w prawdziwej grze czyli 1 – gdy liczba jest poprawna na właściwym miejscu, 2 – gdy liczba znajduje się na liście listMM jednak nie na tej pozycji na której podał ją gracz, 0 – gdy liczby nie ma na liście listMM//

#funkcja realizująca grę mastermind

import random


n1 = random.randint (1,9)
n2 = random.randint (1,9)
n3 = random.randint (1,9)
n4 = random.randint (1,9)
numberswrong = 0
print (n1,n2,n3,n4)
guess1 = input("Podaj pierwszą liczbę: ")
guess2 = input("Podaj pierwszą liczbę: ")
guess3 = input("Podaj pierwszą liczbę: ")
guess4 = input("Podaj pierwszą liczbę: ")
guess1 = int (guess1)
guess2 = int (guess2)
guess3 = int (guess3)
guess4 = int (guess4)
if guess1 != n1:
numberswrong +=1
else:
numberswrong +=0
if guess2 != n2:
numberswrong +=1
else:
numberswrong +=0
if guess3 != n3:
numberswrong += 1
else:
numberswrong += 0
if guess4 != n4:
numberswrong += 1
else:
numberswrong += 0
print("Masz", numberswrong, "błędów")
if numberswrong == 0:
print("Well done")
while numberswrong != 0:
guess1 = input("Podaj pierwszą liczbę: ")
guess2 = input("Podaj pierwszą liczbę: ")
guess3 = input("Podaj pierwszą liczbę: ")
guess4 = input("Podaj pierwszą liczbę: ")
guess1 = int(guess1)
guess2 = int(guess2)
guess3 = int(guess3)
guess4 = int(guess4)
if guess1 != n1:
numberswrong += 1
else:
numberswrong += 0
if guess2 != n2:
numberswrong += 1
else:
numberswrong += 0
if guess3 != n3:
numberswrong += 1
else:
numberswrong += 0
if guess4 != n4:
numberswrong += 1
else:
numberswrong += 0
print("Masz", numberswrong, "błędów.")
print("Dobra robota")

Rekurencja

Rekurencja, zwana także rekursją to odwoływanie się funkcji lub definicji do samej siebie.

def funk(x):
if x < 10:
print(x)
return funk(x + 1)
else:
return 0


print(funk(2))

– Przykłady używane na laboratoriach

Przykłady pochodzą z książki
* Podstawową książką wykorzystywaną na laboratorium będzie: „Python dla każdego. Podstawy programowania Wydanie III”, autor Michael Dawson, Wydawnictwo Helion **(R)**

Zadanie domowe

**Wszystkie zadania domowe należy archiwizować ponieważ w dalszej części laboratoriów będziecie je Państwo rozbudowywać**
* Napisz funkcję wykorzystującą rekurencję do obliczenia silni liczby podanej przez użytkownika.
* Napisz funkcję realizującą tworzenie postaci w Twojej grze. Informacje jakie mają zostać pobrane od użytkownika to:
* imię postaci
* wiek
* płeć
* rasa
*zwinność, budowa, siła, szybkość, inteligencja.
Informacje zapisz do jednej z poznanych struktur. Wykorzystaj program do rozdzielania cech stworzony na jednym z poprzednich laboratoriów.
* Python dla każdego. Podstawy programowania. – Michael Dawson – Helion **R** – Rozdział 8.