From 0dcb8d12b7e14e6d0ce965d2239e474d268e6e3e Mon Sep 17 00:00:00 2001 From: Lukasz Kieda Date: Mon, 12 Nov 2018 19:33:21 +0100 Subject: [PATCH 1/2] wzgledne pozycje zamaist bezwzglednych --- konspekt.md | 1 + zadania/cc_zadanie_2.py | 9 +++++++-- zadania/cc_zadanie_2_1.py | 22 +++++++++++++--------- zadania/cc_zadanie_2_2.py | 16 ++++++++++------ zadania/cc_zadanie_3_1.py | 7 +++++-- zadania/cc_zadanie_3_2.py | 8 ++++++-- zadania/cc_zadanie_3_3.py | 12 ++++++++---- zadania/cc_zadanie_3_4.py | 7 +++++-- zadania/cc_zadanie_4.py | 10 +++++++--- zadania/cc_zadanie_4_1.py | 14 +++++++++----- zadania/cc_zadanie_5.py | 5 ++++- zadania/cc_zadanie_5_1.py | 9 ++++++--- zadania/cc_zadanie_6.py | 11 +++++++---- 13 files changed, 88 insertions(+), 43 deletions(-) diff --git a/konspekt.md b/konspekt.md index 1d01ed3..b145dec 100644 --- a/konspekt.md +++ b/konspekt.md @@ -10,6 +10,7 @@ # zadanie 2 (setBlock) - tworzymy plik `cc_zadanie_2.py` +- wyjaśnienie `minecraft.player.getPos()` - wprowadzenie komendy `minecraft.setBlock(x, y, z, block.NAZWA_BLOKU)` - ustawianie pojedynczych bloków - zbudowanie małej wieży diff --git a/zadania/cc_zadanie_2.py b/zadania/cc_zadanie_2.py index 7bb5bc5..481b51c 100644 --- a/zadania/cc_zadanie_2.py +++ b/zadania/cc_zadanie_2.py @@ -1,9 +1,14 @@ # polecenie "setBlock" # Uzycie funkcji `mc.setBlock(x, y, z, material)` tak, -# zeby postawic blok (block.GLASS) w centrum swiata (0, 0, 0) +# zeby postawic blok (block.GLASS) w punkcie (x, y, z), +# czyli tam gdzie stoi gracz from mine import Minecraft, block minecraft = Minecraft() -minecraft.setBlock(0, 0, 0, block.GLASS) +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z + +minecraft.setBlock(x, y, z, block.GLASS) diff --git a/zadania/cc_zadanie_2_1.py b/zadania/cc_zadanie_2_1.py index 96e7ce0..3ff33a9 100644 --- a/zadania/cc_zadanie_2_1.py +++ b/zadania/cc_zadanie_2_1.py @@ -1,16 +1,20 @@ # polecenie "setBlock" -# Uzycie funkcji `mc.setBlock(x, y, z, material)` tak, +# Uzycie funkcji `mc.setBlock(x, y, z, material)` tak, # zeby rozstawic 5 roznych materialow w pozycjach: -# 1) 0, 0, 0 z materialem block.GLASS -# 2) 0, 10, 0 z materialem block.WOOD -# 3) 0, 0, 10 z materialem block.MELON -# 4) 0, 10, 10 z materialem block.GOLD_BLOCK +# 1) (x, y, z) z materialem block.GLASS +# 2) (x, y + 10, z) z materialem block.WOOD +# 3) (x, y, z + 10) z materialem block.MELON +# 4) (x, y + 10, z + 10) z materialem block.GOLD_BLOCK # 5) W dowolnym miejscu, z dowolnym materialem. Znajdz i zaprezentuj from mine import Minecraft, block minecraft = Minecraft() -minecraft.setBlock(0, 0, 0, block.GLASS) -minecraft.setBlock(0, 10, 0, block.WOOD) -minecraft.setBlock(0, 0, 10, block.MELON) -minecraft.setBlock(10, 10, 10, block.GOLD_BLOCK) +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z + +minecraft.setBlock(x, y, z, block.GLASS) +minecraft.setBlock(x, y + 10, z, block.WOOD) +minecraft.setBlock(x, y, z + 10, block.MELON) +minecraft.setBlock(x + 10, y + 10, z + 10, block.GOLD_BLOCK) diff --git a/zadania/cc_zadanie_2_2.py b/zadania/cc_zadanie_2_2.py index 271747f..dc641b6 100644 --- a/zadania/cc_zadanie_2_2.py +++ b/zadania/cc_zadanie_2_2.py @@ -1,14 +1,18 @@ # polecenie "setBlock" # Zbuduj wieze skladajaca sie z 5 blokow, -# w ktorej 1 blok znajduje sie punkcie (0,0,0) +# w ktorej 1 blok znajduje sie punkcie (x, y, z) # Z materialu TNT (dynamit) i wysadz wszystko w powietrze (pochodnia redstone) from mine import Minecraft, block minecraft = Minecraft() -minecraft.setBlock(0, 0, 0, block.TNT) -minecraft.setBlock(0, 1, 0, block.TNT) -minecraft.setBlock(0, 2, 0, block.TNT) -minecraft.setBlock(0, 3, 0, block.TNT) -minecraft.setBlock(0, 4, 0, block.TNT) +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z + +minecraft.setBlock(x, y, z, block.TNT) +minecraft.setBlock(x, y + 1, z, block.TNT) +minecraft.setBlock(x, y + 2, z, block.TNT) +minecraft.setBlock(x, y + 3, z, block.TNT) +minecraft.setBlock(x, y + 4, z, block.TNT) diff --git a/zadania/cc_zadanie_3_1.py b/zadania/cc_zadanie_3_1.py index 620210d..8eee7d8 100644 --- a/zadania/cc_zadanie_3_1.py +++ b/zadania/cc_zadanie_3_1.py @@ -1,13 +1,16 @@ # petle (loops) # Zmieniajac 2 (wysokosc) parametr polecenia 'setBlock', # zbuduj piaskowa wieze (RED_SAND) -# Startujac z pozycji 0 0 0. +# Startujac z pozycji (x, y, z). # Wieza powinna miec wysokosc 100 elementow from mine import Minecraft, block minecraft = Minecraft() +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z for wysokosc in range(100): - minecraft.setBlock(0, wysokosc, 0, block.RED_SAND) + minecraft.setBlock(x, y + wysokosc, z, block.RED_SAND) diff --git a/zadania/cc_zadanie_3_2.py b/zadania/cc_zadanie_3_2.py index a7bb38e..2892e6d 100644 --- a/zadania/cc_zadanie_3_2.py +++ b/zadania/cc_zadanie_3_2.py @@ -1,11 +1,15 @@ # opis # Zmieniajac 2 (wysokosc) parametr polecenia 'setBlock', zbuduj ceglane schody (BRICK_BLOCK) -# 1 ) Startujac z pozycji 0 0 0. +# 1 ) Startujac z pozycji (x, y, z). # Schody powinny miec wysokosc 100 elementow from mine import Minecraft, block minecraft = Minecraft() +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z + for i in range(100): - minecraft.setBlock(i, i, 0, block.BRICK_BLOCK) + minecraft.setBlock(x + i, y + i, z, block.BRICK_BLOCK) diff --git a/zadania/cc_zadanie_3_3.py b/zadania/cc_zadanie_3_3.py index 3add737..53bfbe6 100644 --- a/zadania/cc_zadanie_3_3.py +++ b/zadania/cc_zadanie_3_3.py @@ -1,13 +1,17 @@ # opis # Zmieniajac 2 (wysokosc) parametr polecenia 'setBlock', zbuduj ceglane schody (BRICK_BLOCK) -# 1 ) Startujac z pozycji 0 0 0. -# 2 ) Dodaj na osi X kolejny blok aby wypelnic schody. +# 1 ) Startujac z pozycji (x, y, z). +# 2 ) Dodaj na osi X kolejny blok aby wypelnic schody. # Schody powinny miec wysokosc 100 elementow from mine import Minecraft, block minecraft = Minecraft() +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z + for i in range(100): - minecraft.setBlock(i, i, 0, block.BRICK_BLOCK) - minecraft.setBlock(i + 1, i, 0, block.BRICK_BLOCK) + minecraft.setBlock(x + i, y + i, z, block.BRICK_BLOCK) + minecraft.setBlock(x + i + 1, y + i, z, block.BRICK_BLOCK) diff --git a/zadania/cc_zadanie_3_4.py b/zadania/cc_zadanie_3_4.py index 0bf92d1..640ea4d 100644 --- a/zadania/cc_zadanie_3_4.py +++ b/zadania/cc_zadanie_3_4.py @@ -1,14 +1,17 @@ # petle (loops) # Zmieniajac 2 (wysokosc) parametr polecenia 'setBlock', # zbuduj piaskowa sciane (RED_SAND) -# Startujac z pozycji 0 0 0. +# Startujac z pozycji (x, y, z). # Sciana powinna miec wysokosc 100 elementow, oraz szerokosc 50 elemento from mine import Minecraft, block minecraft = Minecraft() +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z for wysokosc in range(100): for szerokosc in range(100): - minecraft.setBlock(szerokosc, wysokosc, 0, block.RED_SAND) + minecraft.setBlock(x + szerokosc, y + wysokosc, z, block.RED_SAND) diff --git a/zadania/cc_zadanie_4.py b/zadania/cc_zadanie_4.py index 6afbc49..98ef329 100644 --- a/zadania/cc_zadanie_4.py +++ b/zadania/cc_zadanie_4.py @@ -1,6 +1,6 @@ # opis # Zmieniajac drugi (wysokosc) parametr polecenia 'setBlock', zbuduj piaskowa konstrukcje z (BRICK_BLOCK) -# Startujac z pozycji 0 0 0. +# Startujac z pozycji (x, y, z). # Wieza powinna: # 1) miec wysokosc 20 elementow # 2) co 5 blok powinnien byc dynamietem (TNT) @@ -9,8 +9,12 @@ minecraft = Minecraft() +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z + for i in range(20): if i == 5: - minecraft.setBlock(0, i, 0, block.BRICK_BLOCK) + minecraft.setBlock(x, y + i, z, block.BRICK_BLOCK) else: - minecraft.setBlock(0, i, 0, block.TNT) + minecraft.setBlock(x, y + i, z, block.TNT) diff --git a/zadania/cc_zadanie_4_1.py b/zadania/cc_zadanie_4_1.py index e3bbf21..afce7e2 100644 --- a/zadania/cc_zadanie_4_1.py +++ b/zadania/cc_zadanie_4_1.py @@ -1,6 +1,6 @@ # opis # Zmieniajac drugi (wysokosc) parametr polecenia 'setBlock', zbuduj piaskowa konstrukcje z (BRICK_BLOCK) -# Startujac z pozycji 0 0 0. +# Startujac z pozycji (x, y, z). # Wieza powinna: # 1) miec wysokosc 20 elementow # 2) co 5 blok powinnien byc dynamietem (TNT) @@ -11,12 +11,16 @@ minecraft = Minecraft() +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z + for i in range(20): if i == 5: - minecraft.setBlock(0, i, 0, block.TNT) + minecraft.setBlock(x, y + i, z, block.TNT) elif i == 10: - minecraft.setBlock(0, i, 0, block.TNT) + minecraft.setBlock(x, y + i, z, block.TNT) elif i == 15: - minecraft.setBlock(0, i, 0, block.TNT) + minecraft.setBlock(x, y + i, z, block.TNT) else: - minecraft.setBlock(0, i, 0, block.BRICK_BLOCK) + minecraft.setBlock(x, y + i, z, block.BRICK_BLOCK) diff --git a/zadania/cc_zadanie_5.py b/zadania/cc_zadanie_5.py index c923861..99068a4 100644 --- a/zadania/cc_zadanie_5.py +++ b/zadania/cc_zadanie_5.py @@ -3,9 +3,12 @@ minecraft = Minecraft() +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z def klocek_nad_ziema(wyskosc): - minecraft.setBlock(0, wyskosc, 0, block.BRICK_BLOCK) + minecraft.setBlock(x, y + wyskosc, z, block.BRICK_BLOCK) klocek_nad_ziema(5) diff --git a/zadania/cc_zadanie_5_1.py b/zadania/cc_zadanie_5_1.py index ba8312d..49fcb2d 100644 --- a/zadania/cc_zadanie_5_1.py +++ b/zadania/cc_zadanie_5_1.py @@ -3,11 +3,14 @@ minecraft = Minecraft() +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z def klocek_nad_ziema(wyskosc): - minecraft.setBlock(0, wyskosc, 0, block.BRICK_BLOCK) - minecraft.setBlock(0, wyskosc + 1, 0, block.BRICK_BLOCK) - minecraft.setBlock(0, wyskosc + 2, 0, block.BRICK_BLOCK) + minecraft.setBlock(x, y + wyskosc, z, block.BRICK_BLOCK) + minecraft.setBlock(x, y + wyskosc + 1, z, block.BRICK_BLOCK) + minecraft.setBlock(x, y + wyskosc + 2, z, block.BRICK_BLOCK) klocek_nad_ziema(5) diff --git a/zadania/cc_zadanie_6.py b/zadania/cc_zadanie_6.py index 157d043..9efd356 100644 --- a/zadania/cc_zadanie_6.py +++ b/zadania/cc_zadanie_6.py @@ -3,12 +3,15 @@ minecraft = Minecraft() +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z def kupa_z_dynamitem(start): - minecraft.setBlock(start, 0, 0, block.TNT) - minecraft.setBlock(start + 1, 0, 0, block.TNT) - minecraft.setBlock(start + 2, 0, 0, block.TNT) - minecraft.setBlock(start + 3, 0, 0, block.REDSTONE_TORCH_ACTIVE) + minecraft.setBlock(x + start, y, z, block.TNT) + minecraft.setBlock(x + start + 1, y, z, block.TNT) + minecraft.setBlock(x + start + 2, y, z, block.TNT) + minecraft.setBlock(x + start + 3, y, z, block.REDSTONE_TORCH_ACTIVE) for i in range(100): From e0eb1b99e88931af7d9b70aa9fd196450d8fc787 Mon Sep 17 00:00:00 2001 From: Lukasz Kieda Date: Fri, 30 Nov 2018 15:29:37 +0100 Subject: [PATCH 2/2] Funkcja w funkcji zamiast petli w petli --- .gitignore | 1 + README.md | 1 + konspekt.md | 3 ++- zadania/cc_zadanie_3.py | 2 +- zadania/cc_zadanie_3_4.py | 17 ----------------- zadania/cc_zadanie_5_2.py | 22 ++++++++++++++++++++++ 6 files changed, 27 insertions(+), 19 deletions(-) create mode 100644 .gitignore delete mode 100644 zadania/cc_zadanie_3_4.py create mode 100644 zadania/cc_zadanie_5_2.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..496ee2c --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/README.md b/README.md index 6a363c9..75725d1 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ 1. Funkcje 1. [Pierwsza funkcja](zadania/cc_zadanie_5.py) 1. [Fajniejsza funkcja](zadania/cc_zadanie_5_1.py) + 1. [Funkcje do budowy ścian i słupów](zadania/cc_zadanie_5_2.py) 1. [Wybuchowe pola za pomocą pętli i funkcji](zadania/cc_zadanie_6.py) diff --git a/konspekt.md b/konspekt.md index b145dec..cd918ca 100644 --- a/konspekt.md +++ b/konspekt.md @@ -22,7 +22,6 @@ - zbudowanie wysokiej wieży - zbudowanie długich schodów - zbudowanie grubych schodów - wprowadzenie drugiej komendy w pętli -- zbudowanie ściany - wprowadzenie pętli w pętli - zmienne `i` i `j` - różne warości parametrów `range` niski mur, szeroka wieża itp. kombinacje # zadanie 4 (if else) @@ -38,6 +37,8 @@ - tworzymy plik `cc_zadanie_5.py` - wprowadzenie tworzenia funkcji - funkcja która tworzy trzy bloki koło siebie +- zbudowanie ściany - funkcja, która buduje słup, oraz druga funkcja, która w pętli buduje ścianę ze słupów + # zadanie - "wodospad" - zbudowanie kostki z wodą i wodospadem diff --git a/zadania/cc_zadanie_3.py b/zadania/cc_zadanie_3.py index 4f04137..0d4a53b 100644 --- a/zadania/cc_zadanie_3.py +++ b/zadania/cc_zadanie_3.py @@ -6,4 +6,4 @@ minecraft = Minecraft() for numer in range(5): - minecraft.postToChat(str(numer)) \ No newline at end of file + minecraft.postToChat(numer) \ No newline at end of file diff --git a/zadania/cc_zadanie_3_4.py b/zadania/cc_zadanie_3_4.py deleted file mode 100644 index 640ea4d..0000000 --- a/zadania/cc_zadanie_3_4.py +++ /dev/null @@ -1,17 +0,0 @@ -# petle (loops) -# Zmieniajac 2 (wysokosc) parametr polecenia 'setBlock', -# zbuduj piaskowa sciane (RED_SAND) -# Startujac z pozycji (x, y, z). -# Sciana powinna miec wysokosc 100 elementow, oraz szerokosc 50 elemento - -from mine import Minecraft, block - -minecraft = Minecraft() - -x = minecraft.player.getPos().x -y = minecraft.player.getPos().y -z = minecraft.player.getPos().z - -for wysokosc in range(100): - for szerokosc in range(100): - minecraft.setBlock(x + szerokosc, y + wysokosc, z, block.RED_SAND) diff --git a/zadania/cc_zadanie_5_2.py b/zadania/cc_zadanie_5_2.py new file mode 100644 index 0000000..07bd106 --- /dev/null +++ b/zadania/cc_zadanie_5_2.py @@ -0,0 +1,22 @@ +# opis (funkcje) +# za pomocą funkcji slup, możesz zbudować słup +# napisz funkcję sciana, która wykorzysta funkcje slup, zeby zbudowac sciane + +from mine import Minecraft, block + +minecraft = Minecraft() + +x = minecraft.player.getPos().x +y = minecraft.player.getPos().y +z = minecraft.player.getPos().z + +def slup(slup_x, slup_y, slup_z, wysokosc): + for i in range(wysokosc): + minecraft.setBlock(slup_x, slup_y + i, slup_z, block.BRICK_BLOCK) + +# def sciana(sciana_x, sciana_y, sciana_z, wysokosc, dlugosc): +# ... +# ... + +slup(x, y, z, 10) +# sciana(x, y, z, 10, 10) \ No newline at end of file