Laboratorium 1 – Game Over

Wprowadzenie – Game Over

Do przygotowania przed zajęciami

Wyjątkowo **po** tym laboratorium obowiązuje Państwa materiał zawarty w:
* Python dla każdego. Podstawy programowania. – Michael Dawson – Helion **R** – Rozdział 1. Wprowadzenie. Koniec gry.

Cel i tematyka zajęć

Pierwsze laboratorium to zajęcia wprowadzające. Ich cele to:
– przekazanie informacji organizacyjnych dotyczących przedmiotu
– przekazanie podstawowych sposobów kompilacji programów w konsoli
– przygotowanie Państwa do ostrego startu z zajęciami programistycznymi w przyszłym tygodniu 🙂

– Organizacja przedmiotu

**Zagadnienia:**
* Zasady szczegółowe prowadzenia przedmiotu Języki i Techniki Programowania I
* organizacja instrukcji
* Literatura, materiały pomocnicze

**Ćwiczenia:**
– Proszę zapoznać się z omawianymi zasadami dotyczącymi przedmiotu, stroną www przedmiotu, stroną www Prowadzącej/Prowadzącego.
– Proszę przejrzeć dostępne instrukcje laboratorium i zapoznać się z ich budową.

– Korzystanie PyCharm

**Zagadnienia:**
* Instalacja,
* Tworzenie nowych projektów,
* Kompilacja

– Kompilacja z wykorzystaniem PyCharm

**Zagadnienia:**
* Na zajęciach używać będziemy kompilatora **PyCharm**.
* Prowadzący zaprezentuje Państwu jak używać kompilatora z IDE PyCharm

**Ćwiczenia:**
* Proszę śledzić i przepisywać kod który wprowadza prowadzący:

# Koniec gry
# Przyklad uzycia funkcji print


print("Game Over")


#Prosty ASCII art


print(" ,MMM8&&&.")
print(" MMMM88&&&&&")
print(" MMMM88&&&&&&&")
print(" * MMM88&&&&&&&&&&")
print(" MMM88&&&&&&&&")
print(" 'MMM88&&&&&&")
print(" 'MMM8&&&'")

Taki sam efekt można uzyskać w następujący sposób (stosując trzy apostrofy):


#Prosty ASCII art sposob 2


print(''' ,MMM8&&&.
MMMM88&&&&&
MMMM88&&&&&&&
* MMM88&&&&&&&&&&
MMM88&&&&&&&&
'MMM88&&&&&&
'MMM8&&&''')

Kolejną bardzo istotną rzeczą jaką musicie Państwo wiedzieć jest stosowanie sekwencji specjalnych.

# Zabawne podziękowania
# Demonstruje sekwencje specjalne

print("\t\t\tZabawne podziękowania")

print("\t\t\t \\ \\ \\ \\ \\ \\ \\ \\ \\ \\")
print("\t\t\t napisał")
print("\t\t\t Autor Gry")
print("\t\t\t \\ \\ \\ \\ \\ \\ \\")

print("\nSpecjalne podziękowania należą się:")
print("mojemu kotu,", end=" ")
print("Puszkowi, który zawsze przychodził na wezwanie.","Rodzinie, za pilnowanie :P")

# dzwonek systemowy
print("\a")

input("\n\nAby zakończyć program, naciśnij klawisz Enter.")

– Komentarze

W języku Python w następujący sposób możemy komentować tekst:


#To jest komentarz jednolinijkowy


"""To jest komentarz
wielolinijkowy"""

-Działania na łańcuchach znaków

Prócz wyświetlania łańcuchów znaków, które poznali Państwo wcześniej, można wykonywać różnorakie operacje na łańcuchach np.:
Powielanie łańcuchów znaków:

#Zwariowane łańcuchy


print("Jeśli bardzo lubisz programować w pythonie")
print("To wyraź to")
print("Python Rulez !!!")
print("To teraz jeszcze 10 razy")
print("Python Rulez !!!" * 10)

-Pobieranie danych od użytkownika

Aby nasz program mógł wchodzić w interakcję z użytkownikiem a nie tylko wyświetlać informację stosujemy **input** Dane pobrane za pomocą funkcji input przypisujemy do zmiennej.

#Program witający użytkownika
name = input("Podaj swoję imię ") #po raz pierwszy pojawia się zmienna do której przypiszemy informację którą poda użytkownik
print("Cześć", name)

Dane pobrane przez program od użytkownika zawsze są łańcuchem.

– Działania arytmetyczne

W każdym języku programowania spotkacie się Państwo z działaniami arytmetycznymi – dziś przećwiczą Państwo najprostsze z nich **+ – * / **


#program obliczający ilość dni
year = input("Ile masz lat? ")
day = int(year)*365
print("Masz ", year," lat. To znaczy, że żyjesz już około ", day," dni.")

– Importowanie modułów

W Pythonie istnieje wiele sposobów aby importować moduły na dzisiejszych zajęciach poznają Państwo trzy z nich:
1.

#rzut kością sześciościenną

import random

die1 = random.randint(1, 6) #losujemy liczbę z zakresu od 1-6
print("Wyrzuciłeś ", die1, " na kości.")



2.

import foo.bar


3.

from foo import bar

– Podstawowe moduły w pythonie

**Podstawowe moduły w pythonie:**
* math
* random
* pozostałe moduły będą przedstawiane na laboratoriach na których będą wykorzystywane

Zadanie dodatkowe *

Proszę zastanowić się i napisać program który umożliwi wylosowanie więcej niż jednej liczby. W celu rozwiązania zadania proszę prześledzić przykłady dostępne na stronie: https://docs.python.org/3/library/random.html

– Pierwszy program – “Game Over”

**Ćwiczenia:**
* Proszę napisać program wyświetlający na ekranie napis “Game Over”
* Proszę napisać program wyświetlający pytania i pobierający odpowiedzi, a następnie wypisujący podsumowanie
* Proszę napisać program wyświetlający ASCII-art (wielolinijkowy) wybrany lub stworzony przez Państwa wykorzystując tylko jedną komendę print. Przykład ASCII-art’u:\\

$$$$$$_______________________________$$$$$
__$$$$$$$$*______________________,,$$$$$$$$*
___$$$$$$$$$$,,_______________,,$$$$$$$$$$*
____$$$$$$$$$$$$___ ._____.___$$$$$$$$$$$$
____$$$$$$$$$$$$$,_'.____.'_,,$$$$$$$$$$$$$
____$$$$$$$$$$$$$$,, '.__,'_$$$$$$$$$$$$$$$
____$$$$$$$$$$$$$$$$.@:.$$$$$$$$$$$$$$$$
______***$$$$$$$$$$$@@$$$$$$$$$$$****
__________,,,__*$$$$$$@.$$$$$$,,,,,,
_____,,$$$$$$$$$$$$$* @ *$$$$$$$$$$$$,,,
____*$$$$$$$$$$$$$*_@@_*$$$$$$$$$$$$$
___,,*$$$$$$$$$$$$$__.@.__*$$$$$$$$$$$$$,,
_,,*___*$$$$$$$$$$$___*___*$$$$$$$$$$*__ *',,
*____,,*$$$$$$$$$$_____$$$$$$$$$$*,,____*
______,;$*$,$$**'____________**'$$***,,
____,;'*___'_.*___________________*___ '*,,
,,,,.;*____________---____________ _ ____ '**,,,,

* Uruchom następujące programy – zobacz co wyświetlają i zastanów się czemu dają takie efekty. Czy oba dają poprawne rezultaty? Odpowiedź uzasadnij.
Program 1:

#program obliczający ilość dni
year=input("Ile masz lat? ")
day = int(year)*365
print("Masz ",year,"lat. to znaczy, że żyjesz już około ", day," dni.")

Program 2:

#program obliczający ilość dni
year = input("Ile masz lat? ")
day = year * 365
print("Masz ", year," lat. To znaczy, że żyjesz już około ", day," dni.")

– Przykłady używane na laboratoriach

**Zagadnienia:**
* Podstawową książką wykorzystywaną na laboratorium będzie: „Python dla każdego. Podstawy programowania Wydanie III”, autor Michael Dawson, Wydawnictwo Helion **(R)**
* Dodatkową książką wykorzystywaną na laboratorium będzie: **(S)**
* W trakcie zajęć będą Państwo pisali własne programy lub modyfikowali/rozbudowywali gotowe przykłady.

Zadanie domowe

**Wszystkie zadania domowe należy archiwizować ponieważ w dalszej części laboratoriów będziecie je Państwo rozbudowywać**
* Film do obejrzenia: https://www.youtube.com/watch?v=NN5Pht2FRWs
* Film do obejrzenia: https://www.youtube.com/watch?v=lFwUtAUfCG8
* Proszę przeanalizować instalację https://www.jetbrains.com/pycharm oraz zainstalować na domowym komputerze, proszę skorzystać z https://www.youtube.com/watch?v=NN5Pht2FRWs
* Proszę napisać program wyświetlający na ekranie napis “Game Over” w ASCI-art.
* Proszę napisać program wyświetlający Państwa podziękowania, które umieścicie Państwo w grze, którą napiszecie w ciągu nadchodzącego semestru.
* Motyla ASCII-Art zaprezentowanego w laboratorium proszę przekształcić tak aby wszędzie gdzie jest to możliwe wykorzystywać powielanie łańcuchów.
* Napisz program, który od użytkownika pobiera wagę i oblicza ile będzie on ważył na księżycu oraz informuje o tym użytkownika (Człowiek na księżycu będzie ważył 6 razy mniej).

Na następne zajęcia proszę przeczytać rozdział 1 i 2 **S**