Minecraft.PL

Baner serwera Minecraft.PL
  • Newsy
  • Forum
  • Pobierz
    • Gra i serwerMinecraft Download
    • SkinyMinecraft Download
  • Poradniki
    • Czym jest Minecraft?Czym jest minecraft
    • Crafting (Rzemiosło)Crafting minecraft
    • Zmiana skinaSkiny minecraft
    • Encyklopedia
      • Stworzenia
      • Jedzenie
      • Muzyka
      • Narzędzia
      • Piec
      • Rolnictwo
  • Discord

Strona główna » Java #3 – Więcej o zmiennych, instrukcje sterujące, pierwszy projekt

Java #3 – Więcej o zmiennych, instrukcje sterujące, pierwszy projekt

Java Minecraft

Witajcie!

Dzisiaj poznamy nowy typ zmiennej char, który w okrutny sposób został przeze mnie tydzień temu ominięty, nauczymy się zaawansowanych działań na liczbach oraz na typie String oraz poznamy tablice zmiennych. Rozwiniemy również naszą wiedzę na temat typu boolean, co będzie nam potrzebne przy uczeniu się instrukcji sterujących. Dowiemy się również, w jaki sposób wczytywać dane od użytkownika. Na koniec stworzymy pierwszy projekt – prosty kalkulator. Zapraszam do rozwinięcia!

char
char to typ zmiennej, działający w podobny sposób do String, lecz może przechowywać tylko jeden znak. O ile łańcuch znaków String zamykamy w cudzysłowach "Tekst", wartość zmiennej char jest zapisywana w apostrofach 't'.

Przykład tworzenia zmiennej:

char znak = 'a';
char znaczek = 'A';

Warto wspomnieć, że można tworzyć różnego rodzaju znaki specjalne za pomocą backslasha \. Przykład:
char nowaLinia = '\n';
Zmienna nowaLinia zawiera znak przejścia do nowej linii. Umieszczenie go w tekście zadziała w taki sposób, jak wciśnięcie klawisza Enter.
Można uzyskać dowolny znak Unicode, używając jako wartości zmiennej typu char znaki \uABCD, gdzie ABCD to tzw. szesnastkowy kod Unicode znaku. Listę wszystkich kodów Unicode możemy znaleźć na stronie http://www.unicode.org/charts/. Przykładowo, chcemy użyć znaku Ĉ (tzw. C z cyrkumfleksem). Ponieważ wiemy, że litera C jest w alfabecie łacińskim, toteż znak Ĉ jest jego rozszerzeniem, a więc w podanym wyżej linku szukamy działu „Latin”. Pod nim znajdujemy cztery linki zaczynające się na Latin Extended (łacina rozszerzona) i mające literę od A do D. Klikamy na pierwszy link z brzegu, otwiera się nam plik PDF. Na drugiej stronie znajduje się tabela znaków. Szukamy tam naszego C z cyrkumfleksem i znajdujemy w pierwszej kolumnie, w rzędzie 8. Zaraz pod znakiem znajdujemy cyfry „0108”. Mając ten kod, możemy utworzyć naszą zmienną:

char cCyrkumfleks = '\u0108';
System.out.println(cCyrkumfleks);

W konsoli otrzymamy znak Ĉ.

Jakie są możliwości Unicode? Cała tabela może zawierać aż 65536 znaków z najróżniejszych alfabetów i wszystkie te znaki możemy umieścić w programie w tak prosty sposób.

Działania na String
Na zmiennej typu String można wykonywać wiele różnych działań. Najważniejszą będzie łączenie zmiennych, które wykonuje się w ten sam sposób, co dodawanie.

String a = "tekst";
String b = "tekstowy";
String c = a + b;
System.out.println(c);

Wydrukuje teksttekstowy. aby uzyskać spację między tymi dwoma słowami, możemy użyć trzech sposobów:

  1. dodanie spacji po słowie „tekst”: String a = "tekst ";
  2. dodanie spacji przed słowem „tekstowy”: String b = " tekstowy";
  3. dodanie spacji przy dodawaniu słów: String c = a + " " + b;

Kolejną ważną metodą przy działaniach na Stringach jest substring, który oddziela fragment tekstu. Najpierw należy jednak nauczyć się ważnej cechy programowania w większości języków: liczenie zaczynamy od 0, a nie od 1. Oto napis „tekst tekstowy”, w którym każdemu znakowi podporządkowujemy kolejny numer, tzw. indeks.
t 0
e 1
k 2
s 3
t 4
5
t 6
e 7
k 8
s 9
t 10
o 11
w 12
y 13

Warto zauważyć, że spacja jest również znakiem.
Teraz, mając znane indeksy tekstu, możemy przystąpić do dalszej pracy.
Metoda charAt(int indeks) zwraca znak stojący przy danym indeksie.
String a = "tekst tekstowy";
char b = a.charAt(11);
System.out.println(b);

Wydrukuje do konsoli znak „o”.

Kolejna funkcja to substring(int start), która oddziela od tekstu fragment zaczynający się od danego indeksu.
String smutny = "unhappy";
String wesoly = smutny.substring(2);
System.out.println(wesoly);

Wydrukuje do konsoli słowo happy.
Do funkcji substring możemy podać dwie wartości. Wtedy druga oznacza pierwszy indeks w tekście, który ma NIE zostać wysłany.
String mniam = "hamburger";
String wtf = mniam.substring(4, 8);
System.out.println(wtf);

Znak o indeksie 4 w słowie „hamburger” to 'u’, więc wtf znaczyna się literą 'u’.
Znak o indeksie 8 w słowie „hamburger” to 'r’, więc pierwszym znakiem w słowie „hamburger”, który nie pojawi się w zmiennej wtf, to 'r’ (indeks 8, nie 5).
Oznacza to, że w konsoli zostanie wydrukowany tekst „urge”.

Zaawansowane działania na liczbach – operatory bitowe.
Aby zacząć działać operatorami bitowymi, trzeba poznać bardzo ważną informację. Komputer zapisuje dane w bitach, tzn. w cyfrach: 0 i 1. Jeśli nie potraficie zamieniać liczb z dziesiętnych na dwójkowe i odwrotnie, polecam Wam zaznajomić się z artykułem na Wikipedii: https://pl.wikipedia.org/wiki/Dw%C3%B3jkowy_system_liczbowy#Zmiany_systemu.

Działania bitowe zaczniemy od operatora koniunkcji (tzw. AND). Daje on w wyniku bit 1 tylko wtedy, gdy w liczbach w działaniu znajdują się również jedynki.
int a = 76;
int b = 87;

Zmienna a ma wartość 76, czyli w systemie dwójkowym 1001100. Zmienna b ma wartość 87, czyli w systemie dwójkowym 1010111.
Działanie koniunkcji zapisywane jest za pomocą symbolu &.
int c = a & b;
System.out.println(c);

Jaki będzie wynik działania? Zapiszmy w systemie bitowym liczby a i b jedna pod drugą, a następnie wykonajmy koniunkcję, czyli pod każdą parą jedynek napiszmy jedynkę, a pod resztą napiszmy zero.
1001100
1010111
1000100

Widzimy zatem, że wynikiem koniunkcji jest liczba, która w systemie bitowym przyjmuje zapis 1000100, co w systemie dziesiętnym daje liczbę 68.
Kolejny operator bitowy to alternatywa (tzw. OR). W przeciwieństwie do AND, które daje 1 wtedy, gdy obydwa bity mają 1, OR daje 1, gdy chociaż 1 bit będzie równy 1. Porównajmy więc znowu nasze liczby a i b, a następnie zapiszemy pod nimi 1 wtedy, gdy pojawi się w danej kolumnie chociaż jedna jedynka.
1001100
1010111
1011111

A zatem wynikiem działania int c = a | b (bo tak zapisujemy alternatywę) jest liczba 1011111 w systemie dwójkowym, czyli 95 w systemie dziesiętnym.

Kolejnym operatorem bitowym jest alternatywa wykluczająca, czyli XOR. Zapisuje się ją za pomocą znaku ^. Daje ona w wyniku 1 wtedy, gdy dokładnie raz w danej kolumnie pojawia się jedynka. Jeśli pojawia się dwa razy lub w ogóle się nie pojawia, w danym miejscu znajduje się zero.

1001100
1010111
0011011

Ponieważ pierwsze zera nie niosą żadnej wartości, w wyniku otrzymujemy 11011, czyli liczbę 27. Co ciekawe, w przeciwieństwie do OR i AND, XOR jest działaniem odwracalnym. Powyżej zauważyliśmy, że 76 ^ 87 = 27. A ile będzie równe 27 ^ 87?
0011011
1010111
1001100

A więc 76 ^ 87 = 27, 27 ^ 87 = 76 i działanie jest odwracalne. To za pomocą wykonywania działania XOR (czyli tzw. xorowania) tworzy się najprostsze szyfry komputerowe, które można odczytać tylko znając specjalny kod – w naszym przypadku kodem było 87, a szyfrowaną liczbą 76.

Najprostszym operatorem bitowym jest negacja (NOT), zapisywana za pomocą symbolu ~. Może ona pojawić się tylko przed pojedynczą liczbą.
int a = 76;
int b = ~a;
System.out.println(b);

Jaki wynik da nam to działanie?
Liczba 76 w systemie dwójkowym to 1001100. Działanie negacji jest proste: zmienia 1 na 0 i 0 na 1.
1001100
0110011

Wynikiem jest więc liczba 110011, czyli 51.

Tablice zmiennych
Tablice zmiennych to dość ciekawy typ zmiennej. O ile zmienną typu int inicjujemy następująco:
int zmienna,
o tyle tablice inicjujemy z dodatkowymi znakami nawiasów kwadratowych:
int[] zmienna lub rzadziej int zmienna[]. Zalecam korzystanie z pierwszego sposobu, ponieważ jest czytelniejsze. Tablicę tworzymy następująco:
typ[] nazwa = new typ[ilosc], np.
int[] tablica = new int[15].
Stworzyliśmy teraz tablicę typu int, składającą się z 15 elementów. Teraz możemy uzupełnić je wartościami.
tablica[0] = 3;
tablica[1] = 15;
tablica[2] = 254135;
tablica[3] = 4;

i tak dalej, i tak dalej. Ponieważ (jak już wspominałem przy String) w programowaniu liczymy od 0, toteż mając utworzoną tablicę zawierającą 15 elementów, wartości możemy przypisywać od indeksu 0 do indeksu 14.
int[] tablica = new int[15];
tablica[15] = 3;

Spowoduje błąd i wyłączenie się programu.1
Tablice możemy tworzyć dowolnego typu – również typu char. Zmienna String to tak naprawdę tablica char[]!
Przykład:
char[] tablica = new char[6];
tablica[0] = 'H';
tablica[1] = 'e';
tablica[2] = 'l';
tablica[3] = 'l';
tablica[4] = 'o';
tablica[5] = '!';
String tekst = new String(tablica);
System.out.println(tekst);

Wydrukuje nam do konsoli Hello!.

Wczytywanie danych z zewnątrz
Niezbyt ładnym, ale za to najszybszym sposobem na wczytywanie danych jest:
JOptionPane.showInputDialog("wiadomość");
Wyświetla ono okienko z napisem „wiadomość” oraz polem, do którego można coś wpisać. Funkcja ta zwraca zmienną typu String.
Klasa JOptionPane nie jest automatycznie importowana, co oznacza, że musimy na samym początku programu, jeszcze przed tekstem public class nazwaKlasy, podać następującą linijkę:
import javax.swing.*;

A oto przykład użycia wczytywania danych:
String a = JOptionPane.showInputDialog("Wpisz swoje imię");
System.out.println("Witaj, " + a + "!");

Możemy również „przetłumaczyć” tekst na liczbę za pomocą funkcji parseInt:
String a = JOptionPane.showInputDialog("Ile masz lat?");
int b = 100 - Integer.parseInt(a);
System.out.println("Do setki brakuje ci " + b + " lat!");

Należy jednak uważać na „idiotów”, którzy wpisują źle informacje. Spróbuj uruchomić powyższy program i w wyświetlonym okienku napisać tekst, który nie składa się z samych cyfr, np. „lubię pierogi z mięsem”. Program odmówi posłuszeństwa (W jaki sposób mam zapisać „lubię pierogi z mięsem” za pomocą liczby?!) i wyłączy się.

Instrukcje sterujące
Instrukcje sterujące to najczęściej (zaraz po zmiennych) pojawiające się elementy w programie. Najważniejszym jest IF.
if (warunek) {
dzialanie;
}

Program wykona działanie tylko wtedy, gdy zostanie spełniony warunek. Warunkiem jest zmienna typu boolean – jeśli ta zmienna ma wartość true, wtedy działanie zostanie wykonane.
Zmienne boolean możemy tworzyć np. następująco:
int a = 5;
int b = 6;
boolean c = a == b

Znaki == sprawdzają, czy podane dwie liczby są sobie równe. W powyższym przypadku, boolean c ma wartość false. Inne operatory to < (mniejszy, niż), > (większy, niż), <= (mniejszy bądź równy), >= (większy bądź równy), != (różny, przeciwieństwo ==).

Instrukcję IF możemy rozbudować o ELSE:
if (warunek) {
dzialanie1;
} else {
dzialanie2;
}

Jeśli warunek jest spełniony, wykona się działanie 1, w przeciwnym wypadku wykona się działanie 2.

Można również użyć słów ELSE IF. Może ich być dowolnie dużo.
if (warunek1) {
dzialanie1;
} else if (warunek2) {
dzialanie2;
} else if (warunek3) {
dzialanie3;
}
...
else if (warunekn) {
dzialanien;
}
else {
dzialaniek;
}

Można to przetłumaczyć jako „jeśli jest spełniony warunek 1, wykonaj działanie 1, w przeciwnym wypadku jeśli jest spełniony warunek 2, wykonaj działanie 2, w przeciwnym wypadku […] jeśli jest spełniony warunek N, wykonaj działanie N, w przeciwnym wypadku wykonaj działanie K”.

Rozbudujmy nasz przykład związany z wiekiem i z wczytywaniem danych.
String w = JOptionPane.showInputDialog("Ile masz lat?");
int wiek = Integer.parseInt(w);
if (wiek == 100) {
System.out.println("Gratulacje! Masz 100 lat!");
}
else if (wiek < 0) {
System.out.println("Jeszcze się nie urodziłeś...");
}
else if (wiek < 100) {
int a = 100 - wiek;
System.out.println("Do setki brakuje ci " + a + " lat!");
}
else if (wiek > 100) {
int a = wiek - 100;
System.out.println("Masz sto i " + a + " lat!");
}

Jeśli porównujemy cały czas jedną zmienną, możemy skorzystać z polecenia SWITCH. Przykład:
String text = JOptionPane.showInputDialog("Napisz K, jeśli jesteś kobietą, M, jeśli jesteś mężczyzną lub N, jeśli nie wiesz, czym jesteś");
switch (text) {
case "K":
System.out.println("Jesteś kobietą!");
break;
case "M":
System.out.println("Jesteś mężczyzną!");
break;
case "N":
System.out.println("Lepiej zastanów się, kim jesteś!");
break;
default:
System.out.println("Nie rozumiem.");
}

Działanie programu wygląda następująco: wyświetla okienko, w którym prosi o podanie litery K, M lub N. Jeśli podana litera to K, wyświetla tekst „Jesteś kobietą!”, M – „Jesteś mężczyzną!”, N – „Lepiej zastanów się, kim jesteś!”. Ostatni tekst, po słowie „default”, to działanie, z którego się korzysta, gdy poprzednie działania nie zostały wykonane. Jeśli więc użytkownik zamiast podać którąś z powyższych trzech liter poda np. „A”, „B”, „m” lub „Lubie placki”, program wyświetli mu w odpowiedzi „Nie rozumiem”.

Kolejną ważną instrukcją sterującą jest pętla WHILE.
while (warunek) {
działanie;
}

Będzie wykonywało działanie tak długo, jak długo spełniany jest warunek.
int a = 0;
while (a < 10) {
System.out.println(a);
a++;
}

Program wyświetli nam liczby od 0 do 9.
int a = 10;
while (a < 10) {
...
}

Ten program nie zostanie wykonany ani razu, ponieważ liczba a nigdy nie jest mniejsza od 10. Możemy jednak zmusić program, by przynajmniej jeden raz wykonał kod.
do {
działanie;
while (warunek);

Działa podobnie, jak zwykła pętla WHILE, ale warunek jest sprawdzany na jej końcu, więc działanie zostanie zawsze wykonane przynajmniej raz.

Znacznie trudniejszą do opanowania pętlą jest FOR. Jej składnia przedstawia się następująco:
for (inicjalizacja; warunek; poDzialaniu) {
działanie;
}

Po dotarciu programu do pętli FOR, najpierw wykonuje inicjalizację. Później za każdym razem, gdy warunek jest spełniony, wykonuje działanie oraz opcję poDzialaniu.
Wytłumaczenie trudne, ale oto przykład:
for (int i = 0; i <= 100; i++) {
System.out.println(i);
}

Działa w następujący sposób:

  1. Stwórz zmienną i równą 0.
  2. Jeśli i jest mniejsze bądź równe 100, wydrukuj liczbę i i zwiększ i o 1.

Wynikiem programu będzie zbiór liczb od 0 do 100.

Ponieważ możemy odczytać wielkość tablicy za pomocą tablica.length, możemy za pomocą pętli FOR szybko wydrukować zawartość tablicy.
int[] tablicaLiczb = new int[1024];
...
for (int i = 0; i < tablicaLiczb.length; i++) {
System.out.println(tablicaLiczb[i]);
}

Praca domowa
Stwórz swój pierwszy projekt: prosty kalkulator. Najpierw wczyta on od użytkownika znak „+”, „-„, „*”, „/” lub „Q”. Następnie wczyta dwie liczby i wyświetli działanie, a później zacznie od początku. Jeśli użytkownik poda „Q”, kalkulator wyłączy się.

Za tydzień:

  1. Rozwiązanie pracy domowej;
  2. Wprowadzenie do programowania obiektowego.

Ogłoszenia parafialne
Dział „Podstawy programowania” ZAKOŃCZONY! Teraz rozpocznie się znacznie trudniejszy do zrozumienia dział programowania obiektowego.
28 grudnia 2013 roku kurs się nie pojawi. Nie wiem jeszcze, jak będzie wyglądała sprawa roku 2014. Mieszkam w województwie śląskim, które w tym roku odbywa ferie, jak mi się wydaje, w okresie od 20 stycznia do 2 lutego (soboty: 25 stycznia, 1 lutego), i w tych dniach kurs również się nie pojawi.
Do zobaczenia 7 grudnia punktualnie o godzinie 12!

lis 30, 2013ShookTea
364 złote za Minecrafta?!Atak Zombie i nietypowe zakończenie
Comments: 34
  1. Chormon
    12 lat temu

    No ładnie…
    Nie powinno się używać operacji += na stringach!

    ReplyCancel
    • ShookTea
      12 lat temu

      W sumie racja, zaraz to zniknie.

      ReplyCancel
    • Mac70_dev
      12 lat temu

      Można użyć przełącznika, który optymalizuje operacje łączenia Stringów – choć i tak zawsze lepiej jest korzystać ze starego, dobrego StringBuildera. :)

      ReplyCancel
      • Chormon
        12 lat temu

        No ja to wiem, dlatego zwróciłem na to uwagę.

        ReplyCancel
  2. Superkocur
    12 lat temu

    Duuuużo tego…. = fajnieeee !!!!

    ReplyCancel
    • ShookTea
      12 lat temu

      ==.

      ReplyCancel
      • SKmedix
        12 lat temu

        if (duzoTego() == „fajnieeee”); :3

        ReplyCancel
        • Superkocur
          12 lat temu

          ha ha ha ha wybuchłem śmiechem !!!! Słuszna korekta.

          ReplyCancel
  3. Superkocur
    12 lat temu

    Ogłoszenia parafialne !!! To mnie rozwala !

    ReplyCancel
  4. Paweł
    12 lat temu

    Jaka to jest wersja Javy, którą tutaj nauczasz, ponieważ moim zdaniem trochę inaczej przyjmuje się dane z klawiatury niż:

    'String w = JOptionPane.showInputDialog(„Ile masz lat?”);’

    Zależy może to od biblioteki i czegoś innego?

    Po drugie:

    'Wprowadzenie do programowania obiektowego’

    Z tego co wiem to Java jest w pełni obiektowa, więc do tej pory czego uczyłeś?

    ReplyCancel
    • ShookTea
      12 lat temu

      Zapewne chodzi ci o użycie new Scanner(System.in), tak? Klasa JOptionPane jest w pakiecie Swing i jest znacznie prostszy do użycia, niż z Scanner, natomiast zabawa ze Scanner to już bardziej pod programowanie obiektowe podchodzi.

      Owszem, Java jest w pełni obiektowa, ale język obiektowy != programowanie obiektowe. W ogóle, język programowania != programowanie. Nie tworzyliśmy obiektów, użyta do tej pory klasa wraz z metodą main została potraktowana póki co jako „konieczne do działania opakowanie” i nic poza tym. W sumie, można powiedzieć, że do tej pory było prowadzone programowanie strukturalne.

      ReplyCancel
      • Mac70_dev
        12 lat temu

        Java nie jest w 100% obiektowa – prymitywne typy zmiennych nie są obiektami, „static” też jest sprzeczny z programowaniem obiektowym.

        ReplyCancel
        • ShookTea
          12 lat temu

          Racja, aczkolwiek z tego, co wiem, prawdziwie obiektowe są tylko dwa języki: Ruby i bodajże Smalltalk.

          ReplyCancel
          • Sizaur
            12 lat temu

            String jest obiektem :)

            ReplyCancel
          • ShookTea
            12 lat temu

            Tak, tak. Inaczej nie byłoby ze zmiennych funkcji.

            ReplyCancel
          • Mac70_dev
            12 lat temu

            Ze znanych mi jeszcze na pewno JavaScript oraz Scala są takimi językami.

            ReplyCancel
          • ShookTea
            12 lat temu

            JavaScript? Wut?

            ReplyCancel
  5. R0solek
    12 lat temu

    Jak można zrobić takie coś, że jak napiszemy 1+1, to wyświetli się jakiś napis, np. „Policz sam!”?

    ReplyCancel
    • Chormon
      12 lat temu

      String str = System.console().readLine();
      if(str.equals(„1+1”)) System.out.println(„Policz sam!”);

      ReplyCancel
      • xsares aka Skur3byk
        12 lat temu

        Dzięki za bana za multikonto.
        szkoda że nie przeczytałeś
        ŻE NIE MOGĘ TAMTEGO ODZYSKAĆ!!!!!!!!!!!!!!!
        jak już banujesz to chociaż wiedz dlaczego założyłem drugie konto.
        ALE PO CHOLERĘ CZYTAĆ ZE ZROZUMIENIEM!!!!

        wali mnie to że nie w temacie, za taką super administrację to ja dziękuję.

        ReplyCancel
        • Chormon
          12 lat temu

          szkoda, że tamto konto miało ostatnie logowanie dzisiaj… i tak, jak napisałem, jest mail do administracji, żeby takie problemy zgłaszać

          ReplyCancel
      • R0solek
        12 lat temu

        Dzięki ;)

        ReplyCancel
      • Skurczykapeć
        12 lat temu

        tak, jak próbuję się zalogować to pisze że byłem dostępny…
        oczywiście hasło nie poprawne…

        ReplyCancel
        • skurczykapeć
          12 lat temu

          przy okazji, proszę o odbanowanie mnie z serwera. nagle mam perma na 60 minut za słowa.

          tak,tak. to nie tutaj pownienem pisać.
          robię to żeby nie robić nowego konta

          tak pamiętam kto mi tego bana dał

          ReplyCancel
          • ShookTea
            12 lat temu

            „perma na 60 minut”. Nie możesz mieć perma na 60 minut. Człowieku, czy ty w ogóle wiesz, co to jest perm? Perm to skrót od „permanent”, zaś ban permanentny (bo o nim mówisz) to ban „na zawsze”. Decyzja: Albo perm, albo na 60 minut. Nie pogodzisz.

            ReplyCancel
        • Chormon
          12 lat temu

          a wiesz chociaż, na jakiego maila masz założone konto?

          ReplyCancel
          • skurczykapeć
            12 lat temu

            tak , wiem.
            ale jak się okazało e-mail jest już nie aktywny.
            (nie wiem czemu)
            spróbuję założyć go od nowa

            ReplyCancel
          • Chormon
            12 lat temu

            widzę, że się udało

            ReplyCancel
  6. ZBZ
    12 lat temu

    Złe rzeczy się tu dzieją…
    Nic nie rozumiem…
    Jakie stringi ? Damskie ? Czy męskie z Sexszooooopa ?
    Czy ten o to kot dodaje nam do gry zwyczajny kalkulator ?
    Jeśli tak to…
    naprawdę OP mody tworzycie…
    zrób jeszcze Pegazusa i Tetrisa…
    CZEKAM !!!

    ReplyCancel
    • ShookTea
      12 lat temu

      Dokładnie, nic nie rozumiesz. To nie jest kurs modowania, tylko programowania, a to może być naprawdę duża różnica. Stringi męskie, z sexszopa. Noszę takie codziennie na spodniach.

      ReplyCancel
  7. umotex14
    12 lat temu

    Praca domowa?!

    ReplyCancel
    • ShookTea
      12 lat temu

      Tak, jestem szatanem i złem wcielonym >:D Ale oczywiście niezobowiązująca… tylko taka propozycja użycia zdobytej do tej pory wiedzy w praktyce.

      ReplyCancel
  8. ShookTea
    12 lat temu

    Funkcja jest obiektem. Już wolę korzystać z jQuery, bo i tak nie mam nerwów to działania bezpośrednio na JS :)

    ReplyCancel
  9. ShookTea
    12 lat temu

    Czwarta część kursu jest już gotowa i czeka na sobotę :)

    ReplyCancel

Dodaj komentarz Anuluj pisanie odpowiedzi

ShookTea
12 lat temu 34 komentarze Inne, Minecraft, Poradnikibit, bitowe, boolean, char, do, else, for, if, int, java, kurs, Minecraft, negacja, operator, operatory, programowania, string, tablica, while229

© Copyright 2026 by Minecraft.PL – Wszelkie prawa zastrzeżone

Nasze utrzymanie!
Discord



Czym jest Minecraft?
Wyobraź sobie możliwość budowania jak za czasów klocków lego, świat nawiedzany przez przeróżne potwory, od zombie do wybuchających creeperów, przygodówkę, kiedy to wpadamy do ciemnej jaskini zapominając nagle gdzie było wyjście, połącz z wypixelowaną grafiką i masz Minecraft'a.

Czytaj dalej
|Serwery Minecraft
|Serwer Discord
|Skontaktuj się z nami!
2026 © Minecraft.PL
Strona Minecraft.pl nie jest w żaden sposób powiązana z Mojang!