Uczenie się nowego języka programowania może być przyjemne. Za każdym razem, gdy próbuję nauczyć się nowego, skupiam się na definiowaniu zmiennych, pisaniu instrukcji i ocenianiu wyrażeń. Kiedy mam już ogólne zrozumienie tych pojęć, zazwyczaj jestem w stanie samemu rozgryźć resztę. Większość języków programowania ma pewne podobieństwa, więc gdy już poznasz jeden język programowania, nauka następnego jest kwestią poznania unikalnych szczegółów i rozpoznania różnic w nim.

Aby pomóc mi przećwiczyć nowy język programowania, lubię napisać kilka programów testowych. Jednym z przykładowych programów, które często piszę, jest prosty program typu „zgadnij liczbę”, w którym komputer wybiera liczbę z przedziału od 1 do 100 i prosi mnie o jej odgadnięcie. Program zapętla się, dopóki nie zgadnę poprawnie.

Program „zgadnij liczbę” ćwiczy kilka koncepcji języków programowania: jak przypisywać wartości zmiennym, jak pisać instrukcje oraz jak wykonywać obliczenia warunkowe i pętle. Jest to świetny praktyczny eksperyment do nauki nowego języka programowania.

Zgadnij liczbę w Bashu

Bash jest standardową powłoką dla większości systemów linuksowych. Oprócz dostarczania bogatego interfejsu użytkownika wiersza poleceń, Bash obsługuje również kompletny język programowania w postaci skryptów.

Jeśli nie jesteś zaznajomiony z Bash, polecam te wprowadzenia:

  • Co to jest Bash?
  • Zacznij od programowania w Bashu
  • Zacznij od skryptów Bash dla administratorów
  • Jak pisać funkcje w Bashu
  • Czytaj więcej o Bashu

Możesz poznać Bash, pisząc wersję gry „zgadnij liczbę”. Oto moja implementacja:

Rozkładanie skryptu

Pierwszy wiersz skryptu, #!/bin/bash, mówi Linuksowi, aby uruchomił ten skrypt przy użyciu powłoki Bash. Każdy skrypt zaczyna się od pary znaków #!, która wskazuje, że jest to skrypt powłoki. To, co następuje bezpośrednio po #!, to powłoka, którą należy uruchomić. W tym przypadku, /bin/bash jest powłoką Bash.

Aby przypisać wartość zmiennej, wymień jej nazwę, a następnie znak =. Na przykład instrukcja guess=0 przypisuje zmiennej guess wartość zerową.

Możesz również poprosić użytkownika o podanie wartości, używając instrukcji read. Jeśli napiszesz read guess, Bash czeka, aż użytkownik wprowadzi jakiś tekst, a następnie przechowuje tę wartość w zmiennej guess.

Aby odwołać się do wartości zmiennej, użyj $ przed nazwą zmiennej. Tak więc, przechowawszy wartość w zmiennej guess, możesz ją pobrać, używając $guess.

Możesz używać dowolnych nazw dla zmiennych, ale Bash rezerwuje dla siebie kilka specjalnych nazw zmiennych. Jedną ze specjalnych zmiennych jest RANDOM, która generuje bardzo dużą liczbę losową za każdym razem, gdy się do niej odwołujesz.

Jeśli chcesz wykonać operację w tym samym czasie, gdy przechowujesz wartość, musisz zawrzeć instrukcję w specjalnych nawiasach. To mówi Bashowi, aby wykonał tę instrukcję jako pierwszą, a = przechowuje wynikową wartość w zmiennej. Aby obliczyć wyrażenie matematyczne, użyj $(( )) wokół swojej instrukcji. Podwójne nawiasy wskazują na wyrażenie arytmetyczne. W moim przykładzie number=$(( $RANDOM % 100 + 1 )) oblicza wyrażenie $RANDOM % 100 + 1, a następnie zapisuje wartość w zmiennej number.

Standardowe operatory arytmetyczne, takie jak + (plus), - (minus), * (mnożenie), / (dzielenie) i % (modulo), mają zastosowanie.

To oznacza, że instrukcja number=$(( $RANDOM % 100 + 1 )) generuje liczbę losową z przedziału od jednego do 100. Operator modulo (%) zwraca resztę po podzieleniu dwóch liczb. W tym przypadku, Bash dzieli liczbę losową przez 100, pozostawiając resztę w zakresie od zera do 99. Dodając jeden do tej wartości, otrzymujemy liczbę losową pomiędzy jeden a 100.

Bash obsługuje wyrażenia warunkowe i sterowanie przepływem jak pętle. W grze „zgadnij liczbę”, Bash kontynuuje pętlę tak długo, jak wartość w guess nie jest równa number. Jeśli wartość jest mniejsza od liczby losowej, Bash wypisuje tekst „Za niska”, a jeśli wartość jest większa od liczby, Bash wypisuje tekst „Za wysoka.”

Jak to działa

Po napisaniu skryptu Bash możesz go uruchomić, aby zagrać w grę „zgadnij liczbę”. Kontynuuj zgadywanie, aż znajdziesz poprawną liczbę:

Guess a number between 1 and 100
50
Too high
30
Too high
20
Too high
10
Too low
15
Too high
13
Too low
14
That's right!

Za każdym razem, gdy uruchomisz skrypt, Bash wybierze inną liczbę losową.

Ta gra „zgadnij liczbę” jest świetnym programem wprowadzającym do nauki nowego języka programowania, ponieważ ćwiczy kilka popularnych koncepcji programowania w dość prosty sposób. Implementując tę prostą grę w różnych językach programowania, możesz zademonstrować niektóre podstawowe koncepcje i porównać szczegóły w każdym języku.

Czy masz ulubiony język programowania? Jak napisałbyś w nim grę „zgadnij liczbę”? Śledź tę serię artykułów, aby zobaczyć przykłady innych języków programowania, które mogą Cię zainteresować.