small basic for you


Piszemy pierwszą grę w zgadywanie liczb
Marzec 3, 2009, 8:13 am
Filed under: SmallBasic

PISZEMY GRĘ

Założenia:

Chcemy zgadywać liczbę od 1 do 100. Liczba za każdym razem ma być losowo wybierana. Podczas zabawy gdy podamy liczbę za małą powinien wyświetlić się komunikat „podałeś za małą liczbę”, a gdy podamy liczbę za dużą powinien wyświetlić się komunikat „podałeś za dużą liczbę”. Nasz program powinien także oznajmić nam gdy wskażemy liczbę wylosowaną przez komputer. Nasza gra powinna również umożliwiać rozpoczęcie rozgrywki od nowa bez wychodzenia z programu.

Po przeczytaniu założeń stawianych przed naszą grą powinniśmy zauważyć że nasz program wymagać będzie na początek 2 zmiennych – nazwijmy je :

LiczbaLosowa – zmienna będzie oznaczać wylosowaną przez komputer losową liczbę

Liczba – zmienna będzie oznaczać liczbę podaną przez nas z klawiatury

Zwróćmy również uwagę na fakt iż zmienna LiczbaLosowa – będzie wyznaczana raz na rozgrywkę, natomiast zmienna Liczba będzie podawana wielokrotnie podczas rozgrywki.

Zastanówmy się jak można by przedstawić nasz program w postaci algorytmu. Skupmy się na razie nie tyle na komunikatach jakie powinny się wyświetlać na naszym monitorze a na czynnościach jakie powinien wykonać nasz program by spełnić podane założenia.

W najprostszej postaci algorytm działania naszego programu mógłby wyglądać następująco:

1. Losuj liczbę

2. Wprowadź liczbę z klawiatury

3. Jeżeli wprowadzona liczba jest różna od liczby wylosowanej wróć do punktu 2

4. Jeżeli wprowadzona liczba jest taka sama jak liczba wylosowana przez komputer to wróć do punktu 1.

Dlaczego warto pisać programy w postaci algorytmów? Bo dzięki temu możemy na początku nie skupiać się na samej technice wykonania/ kodowanie programu a więcej czasu poświęcić ogólnemu działaniu programu. Uzyskujemy dzięki temu ogólny pogląd jak powinien działać nasz program.

Mając taki ogólny algorytm możemy zacząć przekształcać go w działający program. Ponieważ nasz program May zapisany w postaci algorytmu najpierw zastanówmy się jak zrealizować jego poszczególne elementy.

1. Losuj liczbę

Program nasz zaczynamy od wygenerowania losowej liczby z zakresu od 1 do 100 i przypisania jej do zmiennej LiczbaLosowa

LiczbaLosowa=Math.GetRandomNumber(100)

Aby wylosować losową liczbę musimy skorzystać z generatora liczb losowych:

Math.GetRandomNumber(100)

100 – oznacza że górnym zakresem losowanych liczb jest właśnie 100

Wylosowaną liczbę przypisujemy do zmiennej: LiczbaLosowa

2.Wprowadź liczbę z klawiatury

TextWindow.Write(„Podaj liczbę 1-100: „)

Liczba=textwindow.ReadNumber()

3. Jeżeli wprowadzona liczba jest różna od liczby wylosowanej wróć do punktu 2

Skoro musimy powrócić w jakieś miejsce naszego programu musimy skorzystać z pętli.

Ponieważ pętla ma wykonać się różną liczbę razy (w zależności od naszego szczęścia raz możemy zgadnąć wylosowaną przez komputer liczbę za 3 razem a innym razem za 10 lub 15 razem), oczywistym wyborem będzie więc pętla While

While (Liczba<>LiczbaLosowa)

EndWhile

Liczba<>LiczbaLosowa – w pętli While oznacza że będzie się ona wykonywała tak długo aż ten warunek nie będzie spełniony, a więc do momentu w którym zgadniemy prawidłową liczbę.

W pętli While powinny być umieszczone instrukcję warunkowe informujące nasz o tym, czy podana przez nasz liczba jest za duża czy za mała.

Zwróćmy także uwagę na to, że przecież tyle razy ile wykona się pętla While tyle razy będziemy musieli podać liczbę. Dlatego też kod odpowiedzialny za odczytywanie kolejnych liczb również umieszczamy w tej pętli.

Ostatecznie nasza pętla While wyglądać będzie następująco:

While (Liczba<>LiczbaLosowa)

TextWindow.Write(„Podaj liczbę 1-100: „)

Liczba =textwindow.ReadNumber()

If (Liczba >LiczbaLosowa )Then

TextWindow.WriteLine(„podałeś za dużą liczbę”)

Else

TextWindow.WriteLine(„podałeś za małą liczbę”)

EndIf

EndWhile

A co się stanie gdy wreszcie uda nam się odgadnąć zgadywaną liczbę? Oczywiście program opuści pętle i powinien poinformować nas o tym że w końcu się nam udało za pomocą komunikatu:

„podałeś PRAWIDŁOWĄ LICZBĘ GRATULUJĘ”

Aby był on wyświetlany po wyjściu z pętli to musimy go umieścić poza nią:

TextWindow.WriteLine(„podałeś PRAWIDŁOWĄ LICZBĘ GRATULUJĘ”)

4. Jeżeli wprowadzona liczba jest taka sama jak liczba wylosowana przez komputer to wróć do punktu 1.

Przyszedł czas na punkt czwarty naszego algorytmu. Aby zrealizować ten punkt należy wprowadzić procedurę. Procedura to część naszego programu, którą możemy wielokrotnie uruchamiać. To taki program w programie, który możemy wywoływać (uruchamiać) wielokrotnie. Procedurę rozpoczynamy od słowa Sub a po tym słowie kluczowym następuje nazwa procedury, która także służy do jej wywoływania. Procedurę kończymy słowem EndSub.

Sub gra

. . .

EndSub

Musimy teraz rozdzielić nasz program na część główną i procedurę. W procedurze mieścimy powtarzające się instrukcje jakie będą wykonywane za każdym razem, jeśli będziemy chcieli ponownie uruchomić naszą grę.

Sub gra

LiczbaLosowa=Math.GetRandomNumber(100)

While (Liczba<>LiczbaLosowa)

TextWindow.Write(„Podaj liczbę 1-100: „)

Liczba =textwindow.ReadNumber()

If (Liczba >LiczbaLosowa )Then

TextWindow.WriteLine(„podałeś za dużą liczbę”)

Else

TextWindow.WriteLine(„podałeś za małą liczbę”)

EndIf

EndWhile

TextWindow.WriteLine(„podałeś PRAWIDŁOWĄ LICZBĘ GRATULUJĘ”)

EndSub

Musimy teraz napisać nasz główny program, który będzie wywoływać napisaną przez nasz procedurę.

Ponieważ chcemy naszą procedurę uruchamiać wiele razy musimy napisać odpowiednią pętle, która będzie to założenie realizować. Zaimplementujemy to w naszym programie w ten sposób że jeżeli będziemy chcieli kontynuować zgadywanie liczb powinniśmy nacisnąć klawisz t (tak), a w wypadku jeżeli chcemy zakończyć zabawę powinniśmy nacisnąć klawisz n (nie). Odczytywane litery z klawiatury będą przypisywane do zmiennej kontynuacja.

kontynuacja=”t”

While (kontynuacja=”t”)

gra()

TextWindow.WriteLine(„grasz jeszcze raz naciśnij t (tak) / n (nie)”)

kontynuacja =textwindow.Read()

EndWhile

TextWindow.WriteLine(„Zapraszamy ponownie do zabawy”)

Ostatecznie nasz program będzie wyglądał następująco:

kontynuacja=”t”

While (kontynuacja=”t”)

gra()

TextWindow.WriteLine(„grasz jeszcze raz naciśnij t (tak) / n (nie)”)

kontynuacja = textwindow.Read()

EndWhile

TextWindow.WriteLine(„Zapraszamy ponownie do zabawy”)

Sub gra

LiczbaLosowa=Math.GetRandomNumber(100)

While (Liczba<>LiczbaLosowa)

TextWindow.Write(„Podaj liczbę 1-100: „)

Liczba = textwindow.ReadNumber()

If (Liczba >LiczbaLosowa )Then

TextWindow.WriteLine(„podałeś za dużą liczbę”)

Else

TextWindow.WriteLine(„podałeś za małą liczbę”)

EndIf

EndWhile

TextWindow.WriteLine(„podałeś PRAWIDŁOWĄ LICZBĘ GRATULUJĘ”)

EndSub

Kod pod jakim możemy pobrać program to: SHV462

Reklamy

1 komentarz so far
Dodaj komentarz

zrobiłem inaczej, bez sub i też się udało 🙂

Komentarz - autor: elmus




Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Wyloguj / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Wyloguj / Zmień )

Connecting to %s



%d blogerów lubi to: