Skip to content

Commit

Permalink
Merge pull request CryptozombiesHQ#262 from pbrudny/master
Browse files Browse the repository at this point in the history
Fix polish translation of lesson 1
  • Loading branch information
eduardonunesp authored Jul 3, 2018
2 parents d5efc3e + 4f585e1 commit b06e154
Show file tree
Hide file tree
Showing 15 changed files with 57 additions and 58 deletions.
8 changes: 4 additions & 4 deletions pl/1/arrays.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,15 @@ material:
Kiedy chcesz zdefiniować kolekcje czegoś, możesz użyć **_array_**. Istnieją dwa typy tablic w Solidity: **_fixed_** oraz **_dynamic_**:

```
// Tablica typu fixed o długości dwuch elementów:
// Tablica typu fixed o długości dwóch elementów:
uint[2] fixedArray;
// następna Tablica typu fixed, może zawierać 5 stringów:
string[5] stringArray;
// Tablica typu dynamic - nie ma zapisanej ilości elementów, ich ilość rośnie dynamicznie:
// Tablica typu dynamic - nie ma zapisanej liczby elementów, ich liczba rośnie dynamicznie:
uint[] dynamicArray;
```

Możesz również stworzyć tablice typu **_structs_**. Używająć `Person` struct z pierwszego rozdziału:
Możesz również stworzyć tablicę typu **_structs_**. Używająć `Person` struct z pierwszego rozdziału:

```
Person[] people; // Tablica typu dynamic, możemy wciąż do niej dodawać nowe elementy
Expand All @@ -72,6 +72,6 @@ Inne kontrakty będą mogły później czytać (ale nie zapisywać) tą tablice.

# Zadanie do wykonania

Zamierzamy dodać armie zombi do naszej aplikacji. Chcemy również, aby armia była widoczna dla innych aplikacji. W takim razie będzie musiała być zapisana jako publiczna.
Zamierzamy dodać armię zombi do naszej aplikacji. Chcemy również, aby armia była widoczna dla innych aplikacji. W takim razie będzie musiała być zapisana jako publiczna.

1. Stwórz publiczną tablicę `Zombie` **_structs_**, i nazwij ją `zombies`.
4 changes: 2 additions & 2 deletions pl/1/arraysstructs2.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ struct Person {
Person[] public people;
```

Teraz nauczymy się jak stworzyć nową osobę `Person` i dodać ją do naszej tablicy `people`.
Teraz nauczymy się jak stworzyć nową osobę `Person` i dodać ją do naszej tablicy `people`.

```
// tworzenie nowej osoby Person:
Expand Down Expand Up @@ -90,5 +90,5 @@ numbers.push(15);

Spraw aby nasza funkcja createZombie coś robiła!

1. Uzupełnij funkcje tak aby tworzyła nowego `Zombie`. Dodaj go do tablicy `zombies`.Imie `name` i Dna `dna` dla nowego Zombie powinny być argumentami funkcji.
1. Uzupełnij funkcję tak aby tworzyła nowego `Zombie`. Dodaj go do tablicy `zombies`. Imię `name` i Dna `dna` dla nowego Zombie powinny być argumentami funkcji.
2. Zróbmy to w jednej linijce kodu, aby wszystko wyglądało ładnie.
8 changes: 4 additions & 4 deletions pl/1/contracts.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ material:

Zacznijmy od absolutnych podstaw:

Kod Solidity jest enkapsulowany w **kontraktach**. Kontrakt `contract` jest podstawową konstrukcją z jakiej zbudowana jest aplikacja na Ethereum. Wszystkie zmiennne, oraz funkcje należą do kontraktu. To będzie twój punkt wyjściowy przy pisaniu wszystkich późniejszych projektów
Kod Solidity znajduje się w **kontraktach**. Kontrakt `contract` jest podstawową konstrukcją z jakiej zbudowana jest aplikacja na Ethereum. Wszystkie zmienne, oraz funkcje należą do kontraktu. To będzie twój punkt wyjściowy przy pisaniu wszystkich późniejszych projektów

Pusty kontrakt o nazwie `HelloWorld` wygląda tak:

Expand All @@ -31,7 +31,7 @@ contract HelloWorld {

## Version Pragma

Kod źródłowy solidity powinien zaczynać się od "version pragma", czyli deklaracji wersji dla kompilera Solidity. Jest to niezbędne aby wyeliminować ewentualne przyszłe błedy jeśli zmieni się wersja kompilera.
Kod źródłowy Solidity powinien zaczynać się od "version pragma", czyli deklaracji wersji dla kompilera Solidity. Jest to niezbędne aby wyeliminować ewentualne przyszłe błedy jeśli zmieni się wersja kompilera.

Powinno to wyglądać mniej więcej tak: `pragma solidity ^0.4.19;` ( 0.4.19 jest aktualną wersją w czasie pisania tego tutorialu).

Expand All @@ -47,10 +47,10 @@ contract HelloWorld {

# Zadanie do wykonania

Aby stworzyć armie zombie, stwórzmy najpierw podstawowy kontrakt o nazwie `ZombieFactory`.
Aby stworzyć armię zombie, stwórzmy najpierw podstawowy kontrakt o nazwie `ZombieFactory`.

1. W edytorze po prawej, spraw aby kontrakt używał wersji `0.4.19`.

2. Stwórz pusty projekt o nazwie `ZombieFactory`.

Kiedy skończysz, kliknij "sprawdź odpowiedź" poniżej. Jeśli utkniesz, mozesz kliknąć "podpowiedzi".
Kiedy skończysz, kliknij "sprawdź odpowiedź" poniżej. Jeśli utkniesz, możesz kliknąć "podpowiedzi".
10 changes: 5 additions & 5 deletions pl/1/datatypes.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,9 @@ material:
}
---

Dobra robota! Teraz kiedy mamy już podstawowy kontrakt , możemy nauczyć się jak Solidity obchodzi się ze zmiennymi.
Dobra robota! Teraz kiedy mamy już podstawowy kontrakt, możemy nauczyć się jak Solidity obchodzi się ze zmiennymi.

**_Zmienne stanu_**permanętnie zapisywane w pamięci kontraktu. Znaczy to mniej więcej tyle, że są zapisane w blockchainie Ethereum. Możesz myśleć o tym jak o zapisywaniu do bazy danych.
**_Zmienne stanu_**permanentnie zapisywane w pamięci kontraktu. Znaczy to mniej więcej tyle, że są zapisane w blockchainie Ethereum. Możesz myśleć o tym jak o zapisywaniu do bazy danych.

##### Przykład:
```
Expand All @@ -39,12 +39,12 @@ W tym przykładowym kontrakcie, stworzyliśmy `uint` o nazwie `myUnsignedInteger

## Liczby naturalne: `uint`

Zmienna typu `uint` jest liczbą naturalną, to oznacza że, **jej wartość musi być większ od zera**. Istnieje równiez typ `int` przeznaczony dla liczb całkowitych.
Zmienna typu `uint` jest liczbą naturalną, to oznacza że, **jej wartość musi być większa od zera**. Istnieje równiez typ `int` przeznaczony dla liczb całkowitych.

> Notatka: W Solidity, `uint` jest aliasem dla `uint256`, 256 bitową liczbą naturalną. Mozesz zadeklarować uints z mniejszą ilością bitów — `uint8`, `uint16`, `uint32`, itd. Najczęściej będziesz uzywał `uint` z wyjątkiem specyficznych sytuacji, o których opowiemy w następnych lekcjach.
> Notatka: W Solidity, `uint` jest aliasem dla `uint256`, 256 bitową liczbą naturalną. Możesz zadeklarować uints z mniejszą liczbą bitów — `uint8`, `uint16`, `uint32`, itd. Najczęściej będziesz używał `uint` z wyjątkiem specyficznych sytuacji, o których opowiemy w następnych lekcjach.
# Zadanie do wykonania

DNA naszego zombie zależy od 16 cyfrowego numeru.
DNA naszego zombie zależy od 16 cyfrowego numeru.

Zadeklaruj `uint` o nazwie `dnaDigits`, oraz ustaw jego wartość na `16`.
6 changes: 3 additions & 3 deletions pl/1/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ material:

Nasz kontrakt jest prawie gotowy! Teraz dodajmy jeszcze **_event_**.

**_Events(Zdarzenia)_** pozwalają Twojemu kontraktowi wysłać informacje do frontowej aplikacji. Frontowa aplikacja 'nasłuchuje', czy dane zdarzenie zaszło i jeśli tak jest to podejmuje stosowną akcje.
**_Events(Zdarzenia)_** pozwalają Twojemu kontraktowi wysłać informacje do frontowej aplikacji. Frontowa aplikacja 'nasłuchuje', czy dane zdarzenie zaszło i jeśli tak jest to podejmuje stosowną akcję.

Przykład:

Expand All @@ -85,7 +85,7 @@ event IntegersAdded(uint x, uint y, uint result);
function add(uint _x, uint _y) public {
uint result = _x + _y;
// wywołaj zdarzenie to aby powiedzieć aplikacji, że funkcja została wywołana:
// wywołaj zdarzenie aby powiedzieć aplikacji, że funkcja została wywołana:
IntegersAdded(_x, _y, result);
return result;
}
Expand All @@ -107,4 +107,4 @@ Chcemy, aby nasza frontowa aplikacja, była informowana zawsze kiedy tworzy się

2. Zmodyfikuj funkcje `_createZombie` aby wywoływała zdarzenie `NewZombie` po dodaniu nowego zombie do tablicy `zombies` array.

3. Będziesz potrzebował `id` nowo stworzonego zombie. `array.push()` zwraca `uint` który jest równy długości tablicy. Jeśli założymy, że pierwszy index tablicy to 0, `array.push() - 1` będzie indexem zombie którego właśnie dodaliśmy. Zapisz wynik `zombies.push() - 1` w `uint` o nazwie `id`, dzięki czemu będziesz mugł go użyć w zdarzeniu `NewZombie` w następnej linijce.
3. Będziesz potrzebował `id` nowo stworzonego zombie. `array.push()` zwraca `uint` który jest równy długości tablicy. Jeśli założymy, że pierwszy index tablicy to 0, `array.push() - 1` będzie indexem zombie, którego właśnie dodaliśmy. Zapisz wynik `zombies.push() - 1` w `uint` o nazwie `id`, dzięki czemu będziesz mógł go użyć w zdarzeniu `NewZombie` w następnej linijce.
12 changes: 6 additions & 6 deletions pl/1/functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ material:
}
---

Deklarowanie funkcji w solidity wygląda następująco:
Deklarowanie funkcji w Solidity wygląda następująco:

```
function eatHamburgers(string _name, uint _amount) {
Expand All @@ -55,18 +55,18 @@ function eatHamburgers(string _name, uint _amount) {

Funkcja `eatHamburgers` przyjmuje 2 parametry: `string` oraz `uint`. Aktualnie zawartość funkcji jest pusta.

> Notatka: Konwensja jest taka, (nie jest to wymagane) aby parametry funkcji zacznać podkreślnikiem (`_`) aby odróżnić je od zmiennych globalnych. Będziemy uzywać tej konwencji w trakcie tutorialu.
> Notatka: Konwensja jest taka, (nie jest to wymagane) aby parametry funkcji zaczynać podkreślnikiem (`_`) aby odróżnić je od zmiennych globalnych. Będziemy używać tej konwencji w trakcie tutorialu.
Możesz wywołać tą funkcjie następująco:
Możesz wywołać tą funkcję następująco:

```
eatHamburgers("vitalik", 100);
```

# Zadanie do wykonania

Potrzebjemy mieć możliwość tworzenia zombich w naszej aplikacji. Stwórzmy funkcje, która będzie za to odpowiadać.
Potrzebujemy mieć możliwość tworzenia zombich w naszej aplikacji. Stwórzmy funkcję, która będzie za to odpowiadać.

1. Stwórz funkcje o nazwie `createZombie`. Powinna przyjmować dwa parametry: **__name_** (`string`), oraz **__dna_** (`uint`).
1. Stwórz funkcję o nazwie `createZombie`. Powinna przyjmować dwa parametry: **__name_** (`string`), oraz **__dna_** (`uint`).

Narazie pozostaw funkcje pustą — wypełnimy ją później.
Narazie pozostaw funkcję pustą — wypełnimy ją później.
12 changes: 6 additions & 6 deletions pl/1/functions2.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ material:
}
---

W Solidity, funkcje są domyślnie publiczne (`public`). To oznacza, że każdy (nawet inny kontrakt) może wywołać funkcje z twojego kontraktu i w ten sposób wykonać jej kod.
W Solidity, funkcje są domyślnie publiczne (`public`). To oznacza, że każdy (nawet inny kontrakt) może wywołać funkcję z twojego kontraktu i w ten sposób wykonać jej kod.

Oczywiście nie zawsze takie zachowanie jest pożądane, szczególnie może to doprowadzić do hakerskich ataków na Twój kontrakt. Z tego powodu dobrą praktyką jest pisanie funkcji jako `private` domyslnie. Jesli później okaże się, że funkcja powinna być publiczna `public`, wtedy możemy ją zmienić, tak aby była dostępna dla całego świata.
Oczywiście nie zawsze takie zachowanie jest pożądane, szczególnie może to doprowadzić do hakerskich ataków na Twój kontrakt. Z tego powodu dobrą praktyką jest pisanie funkcji jako `private` domyślnie. Jesli później okaże się, że funkcja powinna być publiczna `public`, wtedy możemy ją zmienić, tak aby była dostępna dla całego świata.

Zobaczmy jak się deklaruje prywatne `private` funkcje:

Expand All @@ -61,12 +61,12 @@ function _addToArray(uint _number) private {
}
```

To oznacza, że tylko funkcje z naszego kontraktu bedą mogły wywołać tą funkcje i dodać element do tablicy `numbers`
To oznacza, że tylko funkcje z naszego kontraktu bedą mogły wywołać tą funkcję i dodać element do tablicy `numbers`

Zauważ, że użyliśmy słówka kluczowego `private` zaraz po nazwie funkcji. Tak samo jak w przypadku parametrów funkcji, istnieje konwencja która mówi, aby nazwy prywatnych funkcji zaczynały się od podkreślnika (`_`).
Zauważ, że użyliśmy słówka kluczowego `private` zaraz po nazwie funkcji. Tak samo jak w przypadku parametrów funkcji, istnieje konwencja by nazwy prywatnych funkcji zaczynały się od podkreślnika (`_`).

# Zadanie do wykonania

Funkcja `createZombie` naszego kontraktu jest aktualnie publiczna — to oznacza, że każdy może ją wywołać i stworzyć nowego zombie w naszym kontrakcie! Zróbmy z niej funkcje prywatną.
Funkcja `createZombie` naszego kontraktu jest aktualnie publiczna — to oznacza, że każdy może ją wywołać i stworzyć nowego zombie w naszym kontrakcie! Zróbmy z niej funkcję prywatną.

1. Zmień `createZombie` na przywatną funkcje. Nie zapomnij o naszej konwencji związanej z nazwami funkcji!
1. Zmień `createZombie` na prywatną funkcję. Nie zapomnij o naszej konwencji związanej z nazwami funkcji!
4 changes: 2 additions & 2 deletions pl/1/functions3.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ material:
}
---

W tym rozdziale nauczymy sie o tym co zwracają funkcje **_return values_**, oraz o modyfikatorach funkcji.
W tym rozdziale nauczymy się o tym co zwracają funkcje **_return values_**, oraz o modyfikatorach funkcji.

## Return Values

Expand Down Expand Up @@ -89,7 +89,7 @@ function _multiply(uint a, uint b) private pure returns (uint) {

Funkcja nie czyta żadnego stanu aplikacji — wartość którą zwraca zależy tylko od jej parametrów. W takim przypadku możemy zadeklarować taką funkcje jako **_pure_**.

> Notatka: Może to być trudne do zapamiętania kiedy oznaczać funkcje pure/view. Na szczęście kompiler Solidity jest na tyle mądry, że zwraca ostrzeżenia podczas kompilacji.
> Notatka: Może to być trudne do zapamiętania kiedy oznaczać funkcje pure/view. Na szczęście kompilator Solidity jest na tyle mądry, że zwraca ostrzeżenia podczas kompilacji.
# Zadanie do wykonania

Expand Down
12 changes: 6 additions & 6 deletions pl/1/keccak256.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ material:

Chcemy, aby nasza funkcja `_generateRandomDna` zwracała pseudo losową liczbę naturalną `uint`. W jaki sposób możemy to osiągnąć?

W Ethereum wbudowana jest funka hashująca `keccak256`, która jest odmianą funkcji SHA3. Funkcja hashująca mapuje ciąg znaków (string) na 256-bit heksadecymalny numer. Mała zmiana wejściowego stringa powoduje całkowitą zmiane wyniku funkcji.
W Ethereum wbudowana jest funka hashująca `keccak256`, która jest odmianą funkcji SHA3. Funkcja hashująca mapuje ciąg znaków (string) na 256-bit heksadecymalny numer. Mała zmiana wejściowego stringa powoduje całkowitą zmianę wyniku funkcji.


Jest to bardzo przydatne w wielu przypadkach w Ethereum, ale narazie użyjmy jej do wygenerowania psedo-losowej liczby.
Expand All @@ -78,23 +78,23 @@ Jak widzisz, zwracana wartość jest kompletnie inna, pomimo że zmieniliśmy ty
## Typowanie

Czasami potrzebujesz przekonwertować dane pomiędzy typami. Zerknij na poniższy przekład:
Czasami potrzebujesz przekonwertować dane pomiędzy typami. Zerknij na poniższy przykład:

```
uint8 a = 5;
uint b = 6;
// rzuc wyjątek ponieważ a * b zwraca uint, a nie uint8:
// rzuć wyjątek ponieważ a * b zwraca uint, a nie uint8:
uint8 c = a * b;
// musimy typować zmienną b na uint8 aby przykład zadziałał:
uint8 c = a * uint8(b);
```

W powyższym przykładzie, `a * b` zwraca `uint`, ale my próbujemy zapisać to jako`uint8`. Stwarza to problem. Po zmianie typy na `uint8`, wszystko działa i kompiler nie zwraca żadnego błędu.
W powyższym przykładzie, `a * b` zwraca `uint`, ale my próbujemy zapisać to jako`uint8`. Stwarza to problem. Po zmianie typy na `uint8`, wszystko działa i kompilator nie zwraca żadnego błędu.

# Zadanie do wykonania

Uzupełnijmy naszą funkcjie `_generateRandomDna` ! Oto co powinniśmy zrobić:
Uzupełnijmy naszą funkcję `_generateRandomDna` ! Oto co powinniśmy zrobić:

1. W pierwszej linijce wywołaj fununkcje `keccak256` na `_str` aby wygenerować pseudo-losową heksadecymalną liczbę. Zmień jej typ na uint i zapisz rezultat jako `uint` o nazwie `rand`.
1. W pierwszej linijce wywołaj funkcję `keccak256` na `_str` aby wygenerować pseudo-losową heksadecymalną liczbę. Zmień jej typ na uint i zapisz rezultat jako `uint` o nazwie `rand`.

2. Chcemy aby nasze DNA miało tylko 16 znaków (pamiętasz nasze `dnaModulus`?). Więc druga linia powinna `zwracac` powyższą wartość modulo (`%`) `dnaModulus`.
2 changes: 1 addition & 1 deletion pl/1/lessoncomplete.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: Ukończyłeś pierwszą lekcje!
title: Ukończyłeś pierwszą lekcję!
actions: ['sprawdźOdpowiedź', 'podpowiedzi']
material:
lessonComplete:
Expand Down
8 changes: 4 additions & 4 deletions pl/1/lessonoverview.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ material:
answer: 1
---

W lekcji 1 zbudujesz "Zombie Factory" aby zbudować w niej armie zombich.
W lekcji 1 zbudujesz "Zombie Factory" aby zbudować w niej armię zombich.

* Nasza fabryka będzie zarządzała bazą danych z wszystkimi zombie w twoje armi
* Nasza fabryka będzie zarządzała bazą danych z wszystkimi zombie w twojej armii
* Nasza fabryka będzie miała funkcje do tworzenia nowych zombie
* Każdy zombi będzie miał losowy unikatowy numer powiązany z wyglądem

W następnych lekcjach, dodamy więcej funkcjonalności. Zombie będzie mógł atakować ludzi, lub innych zombi! Wcześniej jednak , musimy dodać podstawową gunkcjonalność, jaką jest tworzenie nowego zombi.
W następnych lekcjach, dodamy więcej funkcjonalności. Zombie będzie mógł atakować ludzi lub innych zombi! Wcześniej jednak musimy dodać podstawową funkcjonalność, jaką jest tworzenie nowego zombi.

## Jak działa Zombie DNA

Expand All @@ -28,7 +28,7 @@ Wygląd zombi bazuje na "Zombie DNA". Zombie DNA zwykłym numerem — czyli 16-

Tak jak w prawdziwym DNA, różne części tego numeru, będą onaczały różne cechy. Pierwsze dwa znaki oznaczają rodzaj głowy zombie, następne dwa znaki oczy zombi itd.

> Notatka: Na potrzeby tego tutorialu, upraszczamy wiele rzeczy. Nasz zombi może mieć tylko 7 różnych typów głowy (pomimo, że dwie cyfry pozwalają na 100). Później będziemy mogli dodać więcej typów głowy, jeśli będziemy chcieli podnieść ilość możliwości.
> Notatka: Na potrzeby tego tutorialu, upraszczamy wiele rzeczy. Nasz zombi może mieć tylko 7 różnych typów głowy (pomimo, że dwie cyfry pozwalają na 100). Później będziemy mogli dodać więcej typów głowy, jeśli będziemy chcieli podnieść liczbę możliwości.
Na przykład, dwie pierwsze cyfry naszego przykładowago DNA powyżej to `83`. Aby przeliczyć je do jednego z rodzajów głowy który mamy, trzeba wykonać obliczenie `83 % 7 + 1` = 7. Więc zombie będzie miał głowę typu 7.

Expand Down
2 changes: 1 addition & 1 deletion pl/1/math.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,6 @@ uint x = 5 ** 2; // wynosi 5^2 = 25

# Zadanie do wykonania

Aby mieć pewność, że Dna Zombie jest 16 znakowe, stwórzmy dodatkowy `uint` równy 10^16. Będziemy mogli później uzyć operatora `%`, aby skrócić integer do 16 znaków.
Aby mieć pewność, że Dna Zombie jest 16 znakowe, stwórzmy dodatkowy `uint` równy 10^16. Będziemy mogli później użyć operatora `%`, aby skrócić integer do 16 znaków.

1. Stwórz `uint` o nazwie `dnaModulus`, i ustaw ją jako **10 do potęgi `dnaDigits`**.
12 changes: 6 additions & 6 deletions pl/1/puttingittogether.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,16 +64,16 @@ material:
}
---

Jesteśmy blisko stworzenia losowego generatora Zombie! Stwórzmy publiczną funkcje która powiąże wszystko razem.
Jesteśmy blisko stworzenia losowego generatora Zombie! Stwórzmy publiczną funkcję która powiąże wszystko razem.

Zamierzamy stworzyś publiczna funkcje która na wejściu dostanieimie zombie. Następnie uzyje tego imienia do stworzenia zombie z losowym DNA.
Zamierzamy stworzyś publiczna funkcję która na wejściu dostanie imi zombie. Następnie użyje tego imienia do stworzenia zombie z losowym DNA.

# Zadanie do wykonania

1. Stwórz `public` funkcje o nazwie `createRandomZombie`. Powinna przyjmować jeden parametr `_name` (`string`). _(Notatka: Zadeklaruj tą funkcje jako `public` tak samo jak deklarowałeś poprzednie funkcje typu `private`)_
1. Stwórz `public` funkcję o nazwie `createRandomZombie`. Powinna przyjmować jeden parametr `_name` (`string`). _(Notatka: Zadeklaruj tą funkcję jako `public` tak samo jak deklarowałeś poprzednie funkcje typu `private`)_

2. Pierwsza linijka funkcji powinna wywołać funkcje`_generateRandomDna` na zmiennej`_name`, oraz zapisać ją jako `uint` o nazwie `randDna`.
2. Pierwsza linijka funkcji powinna wywołać funkcję `_generateRandomDna` na zmiennej `_name`, oraz zapisać ją jako `uint` o nazwie `randDna`.

3. Druga linijka powinna wywołaś funkcje `_createZombie` ze zmiennymi `_name` oraz `randDna`.
3. Druga linijka powinna wywołaś funkcję `_createZombie` ze zmiennymi `_name` oraz `randDna`.

4. Rozwiązanie powinno być napisane w 4 linijkach kodu (włączając w to zamekający tag `}`).
4. Rozwiązanie powinno być napisane w 4 linijkach kodu (włączając w to zamykający tag `}`).
Loading

0 comments on commit b06e154

Please sign in to comment.