Java od podstaw – piszemy grę w Javie!

Poniższy wpis pochodzi z materiałów rozsyłanych do subskrybentów listy mailingowej kursu Java od podstaw. Dołącz do listy i ucz się programowania w języku Java!

Dzisiaj napiszemy prostą grę w Javie – komputer będzie losować liczbę od 1 do 100, a Twoim zadaniem będzie ją odgadnąć!

To, czego będziesz potrzebować to 10 minut oraz zainstalowany program IntelliJ IDEA. Jak zainstalować IntelliJ IDEA (oraz Javę) pisałem w jednym z maili, pełną instrukcję znajdziesz też tutaj: Instalacja IntelliJ IDEA.

Teraz nie pozostaje już nic innego, jak tylko utworzyć nowy projekt w IntelliJ i rozpocząć pisanie naszej gry.

Zaczynamy od wylosowania liczby całkowitej z przedziału od od 1 do 100. W tym celu korzystam z metody nextInt() należącej do klasy Random.

Przy pomocy słowa kluczowego new tworzymy nową instancję klasy Random, a następnie wywołujemy metodę nextInt().

W tym momencie jednak IntelliJ podkreśli nam słowo Random i wyświetli informację, że nie może rozpoznać tego symbolu. Wynika to z tego, że klasa Random znajduje się poza domyślnym pakietem Javy i w takiej sytuacji musimy ją zaimportować.

Pisząc programy w Javie będziemy bardzo często importować różne klasy, ale na szczęście jest to bardzo prosta czynność. Wystarczy umieścić kliknąć wewnątrz słowa Random i IntelliJ wyświetli następujące menu:

Wciskamy następnie kombinację klawiszy Alt + Enter i wyświetlają się następujące opcje:

Wciskamy Enter potwierdzając wybór pierwszej opcji – Import class.

IntelliJ wyświetla kilka propozycji – oto wszystkie klasy o nazwie Random, które znalazł. Ta która nas interesuje to ta pierwsza, znajdująca się w pakiecie java.util. Wciskamy Enter i klasa zostaje zaimportowana!

Możemy zauważyć, że na samej górze naszego programu pojawiła się nowa linia o treści import java.util.Random. To instrukcja, dzięki której informujemy kompilator o konieczności zaimportowania klasy Random z pakietu java.util. Gdyby był jakikolwiek problem z importem klasy przy użyciu IntelliJ i skrótu klawiszowego Alt + Enter wystarczy dodać tę linijkę ręcznie i również wszystko będzie działać:)

Pozostaje więc jeszcze jedno pytanie – dlaczego jako argument podajemy 100, a potem do całości dodajemy 1?

Sprawa jest prosta – jeżeli wywołalibyśmy tylko metodę nextInt(100), Java wylosowałaby dla nas liczbę z przedziału 0-100, z tym, że lewy przedział byłby przedziałem domkniętym, a prawy przedział byłby przedziałem otwartym. Mówiąc krótko – Java wylosowałaby dla nas liczbę od 0 do 99. My chcemy liczbę od 1 do 100, więc nie pozostaje nam nic innego, jak tylko na końcu dodać 1 🙂

Tę liczbę przypisujemy do zmiennej typu int (czyli zmiennej służącej do przechowywania liczb całkowitych) o nazwie number.

Następnie potrzebujemy pobrać liczbę od użytkownika.

W tym celu tworzymy nową instancję klasy Scanner jako argument podając System.in i przypisujemy tę instancję do zmiennej o nazwie scanner.

W kolejnej linii wyświetlamy instrukcję dla użytkownika (Podaj liczbę), a następnie przy pomocy metody nextInt() z klasy Scanner pobieramy wpisaną przez użytkownika liczbę i zapisujemy ją do zmiennej userNumber.

Teraz możemy już porównać to, co podał użytkownik z tym, co wylosował komputer.

Przy pomocy instrukcji if-else sprawdzamy dwa warunki:
1) Czy liczba użytkownika jest mniejsza od wylosowanej liczby? Jeżeli TAK, wyświetlamy informację “Za mało!
2) Czy liczba użytkownika jest większa od wylosowanej liczby? Jeżeli TAK, wyświetlamy informację “Za dużo!”.

Jeżeli ani pierwszy ani drugi warunek nie są spełnione, oznacza to, że użytkownik odgadł wylosowaną liczbę!

Wszystko super, tylko tutaj pojawia się jeden problem – użytkownik ma tylko jedną szansę na odgadnięcie liczy, co czyni grę pozbawioną sensu.

Musimy więc poprawić ten kod, tak aby użytkownik podawał liczbę, DOPÓKI jego liczba nie będzie równa liczbie wylosowanej przez komputer.

W tym celu skorzystamy z tak zwanej pętli while, która wykonuje się tak długo, dopóki spełniony jest zdefiniowany w niej warunek.

Przenosimy więc kod odpowiedzialny za pobieranie liczby od użytkownika i porównywanie jej z liczbą wylosowanej przez komputer do pętli while.

Warunek pętli definiujemy jako userNumber != number, co oznacza, że pętla będzie się wykonywać, dopóki wartość zmiennej userNumber będzie różna od wartości zmiennej number.

Ale tutaj pojawia się jeszcze jeden problem!

Zmienną userNumber deklarujemy dopiero wewnątrz pętli while, co oznacza, że na etapie sprawdzania warunku kompilator nie rozpoznaje tej zmiennej!

Rozwiązaniem jest zadeklarowanie jej przed pętlą i nadanie jej domyślnej wartości, spoza zakresu losowanych liczb. Skoro losujemy liczby od 1 do 100, ustawmy domyślną wartość na -1.

I w ten oto sposób napisaliśmy swoją pierwszą grę w Javie!

Teraz nie pozostaje nam nic innego, jak tylko kliknąć przycisk Run i uruchomić program 🙂

Do kursu Java od podstaw możesz dołączyć tutaj, a tutaj zapraszam Cię do dołączenia do mailingu, dzięki któremu zaczniesz uczyć się programowania już teraz!

Dołączając do mailingu Java od podstaw, w każdy wtorek będziesz otrzymywał ode mnie maila.

Co w tych mailach znajdziesz?

✅ mini – lekcje o podstawach programowania w Javie
✅ zadania do wykonania (bo programowania uczysz się przez praktykę!)
✅ wskazówki dotyczące tego, czego i w jaki sposób się uczyć
✅ rekomendacje dodatkowych materiałów, z którymi warto się zapoznać

Czego się dzięki temu mailingowi nauczysz?

⭐ dowiesz się, czym jest Java i dlaczego jej znajomość jest tak pożądana na rynku pracy

⭐ nauczysz się podstaw Javy i będziesz w stanie samodzielnie tworzyć proste programy z użyciem tego języka

⭐ poznasz te zagadnienia, które każdy programista powinien znać, a które w kursach programowania są niestety często pomijane

🔥 BONUS: BEZPŁATNY EBOOK! 

Dodatkowo, już na samym starcie, otrzymasz ode mnie wyjątkowego ebooka 7 kroków do zostania programistą Java, w którym nakreślam drogę, jaką musisz przejść, by tym programistą się stać.

Ile to wszystko kosztuje?

Mailing oraz ebook 7 kroków do zostania programistą Java są całkowicie bezpłatne. Jedyne, co musisz zrobić to podać (i potwierdzić) adres email oraz imię.

Czasem otrzymasz ode mnie maila z ofertą jednego z moich kursów. Co ważne, część ofert kieruję JEDYNIE do osób zapisanych na mailing. Dzięki mailingowi również najwcześniej dowiesz się o premierze kursu Java od podstaw, a także będziesz mieć możliwość dołączenia do niego w najlepszej możliwej cenie.

Kto jest autorem kursu?

Nazywam się Kamil Brzeziński. Pierwsze kroki w programowaniu stawiałem jeszcze jako dzieciak (miałem wtedy dwanaście albo trzynaście lat), tworząc pierwsze strony internetowe i pisząc proste programy.

Później pasja przerodziła się w pracę (ale pasja wciąż została!) – w branży IT jestem obecny już ponad dziesięć lat. Karierę rozpoczynałem w Menlo Innovations, wyjątkowej, wielokrotnie nagradzanej firmie z Ann Arbor w stanie Michigan (USA). Po powrocie do Polski pracowałem nad rozwojem narzędzi wykorzystywanych przez firmę TomTom w branży autonomicznych samochodów, w Fujitsu rozwijałem aplikację, bez której nie działałaby tokijska giełda, a w międzynarodowej korporacji IDEMIA byłem częścią zespołu odpowiedzialnego za rozwiązania dla jednego z największych operatorów telekomunikacyjnych w Indiach.

Od czterech lat prowadzę w serwisie YouTube popularny kanał o programowaniu Jak nauczyć się programowania, na którym w prostych słowach opowiadam o programowaniu.

Kanał Jak nauczyć się programowania na YouTubie to:

🔥 5 milionów wyświetleń wszystkich filmów
🔥 200 tysięcy wyświetleń miesięcznie
🔥 70 tysięcy subskrybentów
🔥 15 tysięcy pozytywnych komentarzy
🔥 setki prywatnych wiadomości z podziękowaniami za pomoc w rozpoczęciu kariery w IT

Jestem również twórcą kursu Git od podstaw oraz autorem dwóch ebooków: Roadmapa programisty, w którym piszę czego,  kiedy i dlaczego się uczyć, żeby zostać programistą oraz Programista dzisiaj, w którym wskazuję konkretne, sprawdzone źródła, z którymi powinniśmy się zapoznać rozpoczynając swoją przygodę z programowaniem oraz branżą IT.

A poza YT zapraszam na Instagram, grupę na Facebooku oraz kanał na Discordzie.

Scroll to Top