Prawdziwe oblicze Informatyki. Tysiące linijek kodu i kompilatory które nigdy nie wybaczają.
Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontaktowanie:
    Windows 7 Opera

Post14 lip 2012, 16:49

Witam !
Aktualnie pracuję nad nowym programem, a właściwie grą w Pascalu. Owa gra ma polegać na tym że: Użytkownik jeździ pionkiem po ekranie i gdy trafi w wyznaczony punkt (na ekranie) odpowiada na pytanie jeśli na nie odpowie jedzie dalej, kiedy nie wraca na początek. Miejsca w których mają znajdować się pytania są rozmieszczone na planszy, która jest generalnie odniesieniem do układu kartezjańskiego. Mój problem polega na tym że chcę aby za każdym razem gdy gracz przegrywa (wraca na początek) miejsca w których są pytania, albo chociaż pytania się zmieniały (Logika w tym jest taka żeby gracz nie musiał odpowiadać na te same pytania w wypadku gdy źle odpowie na pytanie. Gra kończy się gdy pionek gracza dojedzie do wyznaczonego punktu (W moim programie jest to x=24 i y=19). Cały projekt jest w fazie początkowej, planuje jeszcze dodać, różne bajery typu: Zapisywanie i wczytywanie gry, zmiana koloru planszy, gra na czas itp. , Ale najpierw muszę jakoś ogarnąć generacje losową pytań, liczę że mi ktoś w tym pomoże, próbowałem już wrzucić to w procedurę ale wyskakuje że instrukcja "goto" nie może współistnieć z procedurami - czy coś takiego. W Googlach wszyscy napalali się na napisanie gry w "Milionerzy" więc tam nic nie ma ciekawego (Bo ta gra nie potrzebuje wykorzystania etykiet w Pascalu). Liczę na konstruktywne podpowiedzi, na koniec dorzucam mój Hiper Super Ekstra kod źródłowy w fazie Pre-Pre-Pre Alfa :trollface:
Oto on:

Kod: Zaznacz cały

program Gra;
uses crt, dos;
var wybor, x, y, a, b : Byte;
klawisz, Odp : char;
Punkty : Integer;
label Menu, Rozpocznij, Poczatek, Start, Koniec;
label P1, P2, P3;
BEGIN
Punkty := 0;
Cursoroff;
Menu: //MENU GRY
   Writeln ('Witaj !');
   Writeln;
   Writeln ('1. Nowa gra');
   Writeln ('2. Samouczek');
   Writeln ('3. Ustawienia');
   Writeln ('4. Wyj',chr(152),'cie');
   Readln (wybor);
   clrscr;
Case wybor of
 1:
 Begin
Rozpocznij: //ROZPOCZĘCIE GRY
   Begin //Obramowanie - POKAZUJE JAKA DUŻA JEST PLANSZA
      For b:=3 to 20 do
        Begin
          a:= 2;
          gotoxy (a,b);
          Writeln (chr(186));
        End;
      For b:= 3 to 20 do
        Begin
          a:= 25;
          gotoxy (a,b);
          Writeln (chr(186));
        End;
      For a:= 3 to 25 do
        Begin
          b:= 2;
          gotoxy (a,b);
          Writeln (chr(205));
        End;
      For a:= 3 to 25 do
        Begin
          b:= 20;
          gotoxy (a,b);
          Writeln (chr(205));
        End;
   Gotoxy(2,2);
     Writeln (chr(201));
   Gotoxy(2,20);
     Writeln (chr(200));
   Gotoxy(25,2);
     Writeln (chr(187));
   Gotoxy(25,20);
     Writeln (chr(188));
   End;
Poczatek: //MIEJSCE POCZĄTKOWE PIONKA
 x:= 3;
 y:= 3;
  Gotoxy (x,y);
  Writeln (chr(254));
Start: // TO CO JEST POD STRAT BĘDZIE SIĘ POWTARZAĆ, ABY PROGRAM SIĘ NIE ZAKOŃCZYŁ PO PIERWSZYM RUCHU GRACZA.
klawisz:= readkey;
Case Klawisz of //OGARNIĘCIE KLAWISZY STERUJĄCYCH
 'a': dec(x);
 's': inc(y);
 'w': dec(y);
 'd': inc(x);
End;
   If (x > 24) Then x:= 24; //WARUNKI JEŚLI KTOŚ BĘDZIE PRÓBOWAŁ PRZEKROCZYĆ PLANSZĘ
   If (y > 19) Then y:= 19;
   If (x < 3) Then x:= 3;
   If (y < 3) Then y:= 3;
   If (x = 24) and (y = 19) Then Goto Koniec;
  Clrscr;
 Gotoxy (x,y);
 Writeln (chr(254)); //WYŚWIETLENIE PIONKA
   Begin //Obramowanie - POWTÓRKA Z OBRAMOWANIA, POKAZUJE JAKA DUŻA JEST PLANSZA.
      For b:=3 to 20 do
        Begin
          a:= 2;
          gotoxy (a,b);
          Writeln (chr(186));
        End;
      For b:= 3 to 20 do
        Begin
          a:= 25;
          gotoxy (a,b);
          Writeln (chr(186));
        End;
      For a:= 3 to 25 do
        Begin
          b:= 2;
          gotoxy (a,b);
          Writeln (chr(205));
        End;
      For a:= 3 to 25 do
        Begin
          b:= 20;
          gotoxy (a,b);
          Writeln (chr(205));
        End;
   Gotoxy(2,2);
     Writeln (chr(201));
   Gotoxy(2,20);
     Writeln (chr(200));
   Gotoxy(25,2);
     Writeln (chr(187));
   Gotoxy(25,20);
     Writeln (chr(188));
   End;
Goto Start; //IDŹ DO ETYKIETY START (TJ. UMOŻLIWIA WIELOKROTNE RUCHY.
Randomize;
  P1: //NIEUZUPEŁNIONE (NA RAZIE) PYTANIE 1
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Writeln (''); // TREŚĆ PYTANIA
   Readln (Odp); // OCZEKIWANIE NA ODPOWIEDŹ
   If (Odp = '') Then //PRZYPADEK GDY ODPOWIEDŹ PRAWIDŁOWA
   Begin
   Punkty := Punkty + 1;
   Writeln ('');
   End
   Else // GDY ODPOWIEDŹ NIE PRAWIDŁOWA
    Begin
    Punkty := Punkty - 1;
    Writeln ('');
    End;
   Clrscr; // CZYSZCZENIE EKRANU I
   Goto Start; // PRZEJŚCIE DO ETYKIETY START POZWALAJĄCEJ NA DOKONANIE NASTĘPNEGO RUCHU.
  P2: //NIEUZUPEŁNIONE (NA RAZIE) PYTANIE 2
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Readln (Odp);
   If (Odp = '') Then
   Begin
   Punkty := Punkty + 1;
   Writeln ('');
   End
   Else
    Begin
    Punkty := Punkty - 1;
    Writeln ('');
    End;
   Clrscr;
   Goto Start;
  P3: //NIEUZUPEŁNIONE (NA RAZIE) PYTANIE 3
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Readln (Odp);
   If (Odp = '') Then
   Begin
   Punkty := Punkty + 1;
   Writeln ('');
   End
   Else
    Begin
    Punkty := Punkty - 1;
    Writeln ('');
    End;
   Clrscr;
   Goto Start;
Koniec: // ETYKIETA KOŃCOWA - GDY PIONEK OSIĄGNIE WYŻEJ WYMIENIONE WSPÓŁRZĘDNE
 Clrscr;
 Goto Menu;
End;
 2: //NIEDOKOŃCZONA INSTRUKCJA WIELOKROTNEGO WYBORU.
   Begin
   
   End;
 3:
   Begin
   
   End;
 4: Halt;
End;    
END.
// P1, P2, P3 TO ETYKIETY DLA PYTAŃ KTÓRE CHCE ABY BYŁY GENEROWANIE LOSOWO - I W TYM JEST PROBLEM.


Liczę na pomoc,
i Pozdrawiam. Ustawienia');
Writeln ('4
Ostatnio zmieniony 31 sie 2012, 18:56 przez TheMediator95, łącznie zmieniany 1 raz.

Awatar użytkownika

pc.qwerty

Zasłużony użytkownik
Posty: 3272
Rejestracja: 01 lip 2010, 11:28
    Macintosh Opera

Post14 lip 2012, 17:43

W teorii można treść pytań umieścić w tablicy, a numerek losować sobie za pomocą randomize.
There is no cloud. It's just someone else's computer.

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontaktowanie:
    Windows 7 Opera

Post14 lip 2012, 18:07

W teorii... A można prosić o przykład tej teorii ?
Tu by było potrzebne coś w stylu: jednej zmiennej przypisać sekwencje instrukcji.

Awatar użytkownika

Ult1me

Administrator
Posty: 2425
Rejestracja: 05 sie 2008, 14:48
Lokalizacja: Wrocław
Kontaktowanie:
    Windows 7 Opera

Post14 lip 2012, 19:16

pc.qwerty pisze:W teorii można treść pytań umieścić w tablicy, a numerek losować sobie za pomocą randomize.


robisz tablicę dwuelementową, w jednym elemencie dajesz pytanie, w drugim odpowiedź, i tak przez n razy. Potem niech program losuje z tej tablicy dowolny jej element, i niech sprawdzi odpowiedź.
Komputery:
Spoiler: pokaż
Laptop (mój główny komputer): Acer Aspire 5750G | Intel Core i3 2330M (Sandy Bridge) 0.8-2.2GHz | Intel HM65 | 6GB RAM DDR3 | Intel HD Graphics 3000 + nVidia GeForce GT540M (nVidia Optimus) | Crucial MX100 256GB SSD | Broadcom 802.11n Network Adapter | Broadcom NetLink Gigabit Ethernet | Realtek ALC269 (+Dolby Advanced Audio)

Laptop służbowy: HP ProBook

Komputer brata (mój stary): Intel Pentium DualCore E6300 (2x 2.8@1.6-3.25 GHz EIST, 64bit, Intel-VT) | Gigabyte EP43T-UD3L (P43, ICH10) | 2x2 GB RAM DDR3 1066MHz GoodRAM | Palit GeForce GT220 | 2x500 GB (Seagate + SpinPoint F3)

Stacja do napraw: Intel Pentium 4 630 (3.00@2.43 GHz, 64bit, HT, Prescott) | ASUS P5GPL (Intel i915, ICH6) | 2x512 MB RAM DDR1 Kingston (PC-3200) | Gainward GeForce 7300 GT 256 MB DDR2 | jakiś dysk :)

Komputer na części: Intel Pentium III 600 MHz Slot 1 | ASUS P3B-F | 128 MB SDR SDRAM | GeForce 2 MX400 (?) | Seagate 8.4GB PATA

Lumia 625


Dowódca Grupy Odwetowej Mafii C-QUAM, łączącej fanów fal długich, średnich i krótkich, nak***iania kabli j**anych, France Bleu Alsace, The Mighty KBC, Voice of Korea, Warszawskiej Radiostacji Centralnej z najwyższym masztem świata Konstantynowie koło Gąbina, oraz Radiowego Centrum Nadawczego z prawie najwyższymi masztami w Solcu Kujawskim

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontaktowanie:
    Windows 7 Opera

Post14 lip 2012, 19:37

To nic nie da gdyż tablica może mieć elementy jednego typu (A ja potrzebuje do tego dwóch typów String na pytanie i Char/Real/Integer na odpowiedź) z resztą potrzebuje więcej niż jedną linijkę tekstu na zadanie pytania (1 linijka na zadanie pytania i następne 4 na warianty odpowiedzi A, B, C lub D) <-- To jest to co zrozumiałem z tej twojej teorii, bo nie rozumiem dokładnie o co ci chodzi z tym Losowaniem w tablicy, chyba że chodziło tobie o tablice dwuwymiarową, dwu dwuelementową a nie tylko dwuelementową, ale tak czy siak to nie jest rozwiązanie problemu.

Awatar użytkownika

lolasher

Zasłużony użytkownik
Posty: 2384
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontaktowanie:
    Windows 8 Opera

Post14 lip 2012, 20:30

To robisz tablicę rekordów, wygoogluj o rekordach, jeżeli ich nie znasz i wszystko stanie się jasne.

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontaktowanie:
    Windows 7 Opera

Post14 lip 2012, 20:40

No nie wiem... Coś tam wiem o rekordach jeszcze zobaczę (Tj jeszcze wrócimy do tego tematu).

Awatar użytkownika

Ult1me

Administrator
Posty: 2425
Rejestracja: 05 sie 2008, 14:48
Lokalizacja: Wrocław
Kontaktowanie:
    Windows 7 Opera

Post14 lip 2012, 21:02

Mediator14 pisze:To nic nie da gdyż tablica może mieć elementy jednego typu (A ja potrzebuje do tego dwóch typów String na pytanie i Char/Real/Integer na odpowiedź) z resztą potrzebuje więcej niż jedną linijkę tekstu na zadanie pytania (1 linijka na zadanie pytania i następne 4 na warianty odpowiedzi A, B, C lub D) <-- To jest to co zrozumiałem z tej twojej teorii, bo nie rozumiem dokładnie o co ci chodzi z tym Losowaniem w tablicy, chyba że chodziło tobie o tablice dwuwymiarową, dwu dwuelementową a nie tylko dwuelementową, ale tak czy siak to nie jest rozwiązanie problemu.


tak, dwuwymiarową n-elementową, wybacz, siedzę ostatnio w historii nie w informatyce. Ale tak, tabela rekordów dałaby tu radę.
Komputery:
Spoiler: pokaż
Laptop (mój główny komputer): Acer Aspire 5750G | Intel Core i3 2330M (Sandy Bridge) 0.8-2.2GHz | Intel HM65 | 6GB RAM DDR3 | Intel HD Graphics 3000 + nVidia GeForce GT540M (nVidia Optimus) | Crucial MX100 256GB SSD | Broadcom 802.11n Network Adapter | Broadcom NetLink Gigabit Ethernet | Realtek ALC269 (+Dolby Advanced Audio)

Laptop służbowy: HP ProBook

Komputer brata (mój stary): Intel Pentium DualCore E6300 (2x 2.8@1.6-3.25 GHz EIST, 64bit, Intel-VT) | Gigabyte EP43T-UD3L (P43, ICH10) | 2x2 GB RAM DDR3 1066MHz GoodRAM | Palit GeForce GT220 | 2x500 GB (Seagate + SpinPoint F3)

Stacja do napraw: Intel Pentium 4 630 (3.00@2.43 GHz, 64bit, HT, Prescott) | ASUS P5GPL (Intel i915, ICH6) | 2x512 MB RAM DDR1 Kingston (PC-3200) | Gainward GeForce 7300 GT 256 MB DDR2 | jakiś dysk :)

Komputer na części: Intel Pentium III 600 MHz Slot 1 | ASUS P3B-F | 128 MB SDR SDRAM | GeForce 2 MX400 (?) | Seagate 8.4GB PATA

Lumia 625


Dowódca Grupy Odwetowej Mafii C-QUAM, łączącej fanów fal długich, średnich i krótkich, nak***iania kabli j**anych, France Bleu Alsace, The Mighty KBC, Voice of Korea, Warszawskiej Radiostacji Centralnej z najwyższym masztem świata Konstantynowie koło Gąbina, oraz Radiowego Centrum Nadawczego z prawie najwyższymi masztami w Solcu Kujawskim

Awatar użytkownika

SzymekRak

Zasłużony użytkownik
Posty: 542
Rejestracja: 09 lip 2008, 10:55
Lokalizacja: /dev/urandom
Kontaktowanie:
    Linux Opera

Post15 lip 2012, 10:48

Można by było pójść na łatwiznę i zrobić oddzielne tablice z pytaniami, odpowiedziami, i numerem poprawnej odpowiedzi.
install Gentoo
Spoiler: pokaż
Główny PC

ASUS P8Z68V
Intel Core i5 2500K
8GB RAM DDR III Patriot
MSI Radeon R9 270 Gaming 2GB
HDD 1TB WD Green SATA2
Plextor M5 Pro 128GB SSD
Arch Linux + Gnome 3
NSA/Windows 10

Lenovo ThinkPad X220

Intel Core i5 2520M 2.5GHz (Sandy Bridge)
8GB RAM DDR3 1600
Intel HD Graphics 3000
Crucial MX300 275 GB
Arch Linux + Gnome 3

HTPC

ASRock AM1B-AM1B-ITX
AMD Athlon 5150
4GB RAM DDR3 1600
Radeon HD 8400(zintegrowana)
320GB HDD
Arch Linux x64 + Kodi + Steam

Testowy

Gigabyte GA-G31M-S2L
Intel Core2Duo E6300
1GB RAM DDR2 533
GeForce 8400GS 512MB
biedo-SSD 120GB(Silicon Power)
Windows 10 Pro i Ubuntu 16.04

Apple Powerbook G4 12"
PowerPC G4 1.5GHz(ma logo Freescale)
1,25GB RAM DDR333
GoForce 5200 64MB
80GB HDD ATA
Mac OS X 10.5.8

Apple iBook G3 12"
PowerPC G3 800MHz
640MB RAM
ATI Mobility Radeon 7500
ADATA SP310 64GB SSD (mSATA + adapter na IDE44)
Mac OS X 10.4.11 + Mac OS 9.2.2

Raspberry Pi - router + printserver

Model B 512MB
4GB SDHC
Arch Linux ARM

Urządzenia przenośne

LG Nexus 4 16GB
Nintendo DS Lite
Nintendo Game Boy Color

Rzadziej używane/zbierające kurz

Dell G1

Pentium 2 400MHz Deschutes
128MB RAM PC133
Integra ATi Rage IIc 2MB
Epicki akcelerator 3dfx Voodoo 2
Windows 98SE

Olivetti M4 P100S

Pentium 100MHz Socket 5
32MB RAM(SIMM 72-pin)
Trident SVGA(zintegrowana)
Zamiast HDD karta Compact Flash Kingston 4GB
Windows 3.11 + Windows NT 4 Workstation

P2

A-Trend ATC-6130
Pentium 2 400MHz@333MHz

Piękne zabytki

HP 95LX 1MB RAM, MS-DOS 3.22
Commodore 64 + nieoryginalny magnetofon
Amiga 500 512K Chip, 512K Slow
Amiga 600 1M Chip
Amstrad CPC6128 + GT65 monitor + 3,5" FDD mod Czasami także powered by Codegen(R)
Nintendo Entertainment System(wersja europejska)
Sony PlayStation SPCH-7504 + jakiś modchip

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontaktowanie:
    Windows 7 Opera

Post15 lip 2012, 11:15

Dobra wszystko fajnie, zrobię sobie pytania, odpowiedzi i numery poprawnej odpowiedzi osobno, ale jak zrobię przypuśćmy 150 pytań to jaką instrukcją mam je losować ? i do tego po wykonaniu instrukcji przejść do Etykiety Start żeby móc dalej grać ? Tam w tym kodzie co podałem na początku brakuje chociaż jednego odwołania do współrzędnej, dla przykładu podam:

Kod: Zaznacz cały

....
  P3:
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Writeln ('');
   Readln (Odp);
   If (Odp = '') Then
   Begin
   Punkty := Punkty + 1;
   Writeln ('');
   End
   Else
    Begin
    Punkty := Punkty - 1;
    Writeln ('');
    End;
   Clrscr;
If (x=3) and (y=4) Then // JEŚLI PIONEK PRZEJDZIE TO TEJ POZYCJI TO:
Begin
{*NORMALNIE ZROBIŁBYM GOTO P1; - CO NIE JEST ROZWIĄZANIEM PROBLEMU BO WTEDY ZAWSZE PYTANIE JEST W TYM SAMYM MIEJSCU
TUTAJ MIAŁOBY BYĆ LOSOWANIE TYCH PYTAŃ, ALE NIE WIEM JA SIĘ MAJĄ DO TEGO TABLICE I REKORDY SKORO I TAK NIMI NIC NIE WYLOSUJE FUNKCJĄ RANDOM BO TA FUNKCJA LOSUJE TYLKO POJEDYNCZE ZMIENNE\LICZBY*}
End;
   Goto Start;
Koniec:
 Clrscr;
 Goto Menu;
...

Awatar użytkownika

SzymekRak

Zasłużony użytkownik
Posty: 542
Rejestracja: 09 lip 2008, 10:55
Lokalizacja: /dev/urandom
Kontaktowanie:
    Linux Opera

Post15 lip 2012, 12:02

Na początku kodu instrukcja:

Kod: Zaznacz cały

Randomize;

A potem coś w tym stylu przy wejściu na pole:

Kod: Zaznacz cały

n:=1+Random(149);

Da Ci to losową liczbę z przedziału 1-150.
install Gentoo
Spoiler: pokaż
Główny PC

ASUS P8Z68V
Intel Core i5 2500K
8GB RAM DDR III Patriot
MSI Radeon R9 270 Gaming 2GB
HDD 1TB WD Green SATA2
Plextor M5 Pro 128GB SSD
Arch Linux + Gnome 3
NSA/Windows 10

Lenovo ThinkPad X220

Intel Core i5 2520M 2.5GHz (Sandy Bridge)
8GB RAM DDR3 1600
Intel HD Graphics 3000
Crucial MX300 275 GB
Arch Linux + Gnome 3

HTPC

ASRock AM1B-AM1B-ITX
AMD Athlon 5150
4GB RAM DDR3 1600
Radeon HD 8400(zintegrowana)
320GB HDD
Arch Linux x64 + Kodi + Steam

Testowy

Gigabyte GA-G31M-S2L
Intel Core2Duo E6300
1GB RAM DDR2 533
GeForce 8400GS 512MB
biedo-SSD 120GB(Silicon Power)
Windows 10 Pro i Ubuntu 16.04

Apple Powerbook G4 12"
PowerPC G4 1.5GHz(ma logo Freescale)
1,25GB RAM DDR333
GoForce 5200 64MB
80GB HDD ATA
Mac OS X 10.5.8

Apple iBook G3 12"
PowerPC G3 800MHz
640MB RAM
ATI Mobility Radeon 7500
ADATA SP310 64GB SSD (mSATA + adapter na IDE44)
Mac OS X 10.4.11 + Mac OS 9.2.2

Raspberry Pi - router + printserver

Model B 512MB
4GB SDHC
Arch Linux ARM

Urządzenia przenośne

LG Nexus 4 16GB
Nintendo DS Lite
Nintendo Game Boy Color

Rzadziej używane/zbierające kurz

Dell G1

Pentium 2 400MHz Deschutes
128MB RAM PC133
Integra ATi Rage IIc 2MB
Epicki akcelerator 3dfx Voodoo 2
Windows 98SE

Olivetti M4 P100S

Pentium 100MHz Socket 5
32MB RAM(SIMM 72-pin)
Trident SVGA(zintegrowana)
Zamiast HDD karta Compact Flash Kingston 4GB
Windows 3.11 + Windows NT 4 Workstation

P2

A-Trend ATC-6130
Pentium 2 400MHz@333MHz

Piękne zabytki

HP 95LX 1MB RAM, MS-DOS 3.22
Commodore 64 + nieoryginalny magnetofon
Amiga 500 512K Chip, 512K Slow
Amiga 600 1M Chip
Amstrad CPC6128 + GT65 monitor + 3,5" FDD mod Czasami także powered by Codegen(R)
Nintendo Entertainment System(wersja europejska)
Sony PlayStation SPCH-7504 + jakiś modchip

Awatar użytkownika

lolasher

Zasłużony użytkownik
Posty: 2384
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontaktowanie:
    Windows 8 Opera

Post15 lip 2012, 12:19

I przy okazji: ja bym nie dał rady napisać tak długiego programu bez użycia procedur i funkcji ;)

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontaktowanie:
    Windows 7 Opera

Post15 lip 2012, 13:09

SzymekRak pisze:A potem coś w tym stylu przy wejściu na pole:

n:=1+Random(149);

Da Ci to losową liczbę z przedziału 1-150.

Wiem jak się losuje liczbę - Ale jak bym to umieścił przypuśćmy w Rekordzie czy w Tablicy to nie wiem jak to wylosować całe sekwencje instrukcji w tej tablicy\rekordzie. Chyba trzeba obrać inny tok myślenia żeby rozwiązać ten problem, myślałem nad jakimiś zmiennymi pomocniczymi.

lolasher pisze:I przy okazji: ja bym nie dał rady napisać tak długiego programu bez użycia procedur i funkcji ;)

Procedury i Funkcje wykorzystam do Ustawień kolorów w grze, Zapisywaniu gry itp.

Awatar użytkownika

lolasher

Zasłużony użytkownik
Posty: 2384
Rejestracja: 10 paź 2008, 18:28
Lokalizacja: Zadupie pod Siedlcami ;)
Kontaktowanie:
    Windows 8 Opera

Post15 lip 2012, 13:17

Mediator14 pisze:Wiem jak się losuje liczbę - Ale jak bym to umieścił przypuśćmy w Rekordzie czy w Tablicy to nie wiem jak to wylosować całe sekwencje instrukcji w tej tablicy\rekordzie. Chyba trzeba obrać inny tok myślenia żeby rozwiązać ten problem, myślałem nad jakimiś zmiennymi pomocniczymi.


Masz tablicę z rekorami, w których jeden rekord zawiera pytanie i odpowiedź (czy jak to tam miało być). Losujesz numer i wybierasz element tablicy o tym indeksie.
Mediator14 pisze:Procedury i Funkcje wykorzystam do Ustawień kolorów w grze, Zapisywaniu gry itp.


Ja bym użył także do losowania i wyświetlania pytań i w ogóle wszystkiego co się da. Za długi moim zdaniem masz ten kod w głównej pętli i się zgubisz. No chyba, że się nie zgubisz to rób jak chcesz, osobiście uważam, że wszędzie tam gdzie użyłeś etykiet i goto, lepiej użyć procedur. Bo w tej chwili masz taki skaczący labirynt :hyhy:

Awatar użytkownika

TheMediator95

Posty: 468
Rejestracja: 29 kwie 2010, 9:35
Kontaktowanie:
    Windows 7 Opera

Post15 lip 2012, 13:24

lolasher pisze:Masz tablicę z rekorami, w których jeden rekord zawiera pytanie i odpowiedź (czy jak to tam miało być). Losujesz numer i wybierasz element tablicy o tym indeksie.

Tablice z rekordami ? Możesz podać przykład, bo nie rozumiem jak ty sobie to wyobrażasz.

lolasher pisze:Ja bym użył także do losowania i wyświetlania pytań i w ogóle wszystkiego co się da. Za długi moim zdaniem masz ten kod w głównej pętli i się zgubisz. No chyba, że się nie zgubisz to rób jak chcesz, osobiście uważam, że wszędzie tam gdzie użyłeś etykiet i goto, lepiej użyć procedur. Bo w tej chwili masz taki skaczący labirynt

Tam gdzie mam etykiety nie mogę użyć procedury/funkcji ponieważ procedury/funkcje nie obsługują instrukcji Goto która jest niezbędna do mojej gry (Żeby pionek mógł się przemieszczać) - Próbowałem już wsadzić to w procedurę.

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości