ZalogujRejestracjaSzukaj U�ytkownicy MedaleZaloguj si�, by sprawdzi� wiadomo�ciGrupyStatystyki

Na forum.stronghold.net.pl wykorzystujemy ciasteczka. Jeśli jeszcze nie masz dość tego typu komunikatów, więcej informacji znajdziesz w Polityce Cookies. zamknij


Poprzedni temat «» Następny temat
Program (pascal)
Autor Wiadomość
przemusio 
Piechur


Gra w: czasami zrobię mapę na konkurs (SH/ SHC),
Wiek: 26
Posty: 460
Skąd: Gdynia
Medale: Brak

Wysłany: 20 Styczeń 11, 17:32   Program (pascal)

Otóż pisałem sobie gre w pascalu, a tu nagle fatal error. Korzystam z Free Pascal. Oto kod, prosze o podpowiedź : co jest źle ? (Free Pascal mi się wyłącza więc nie widze)
Edit: polskie znaki w notatniku się źle otworzyły. sry
Kod:
program rpg;
uses crt;
 type
  tbron=record
   bron:string[30];
   obrmi:word;
   obrma:word;
   cen:byte;
  end;
 var
 tbronq:array[1..13] of tbron;
 r:char;
 i,j,k,a,p:word;
 z,has,sz:string;
 lvl:byte;
 exp:longint;
 lvlmon:byte;
 label l,s;
 begin
 s:
 has:='';
 clrscr;
begin
 write('Podaj pi©cio literowe hasˆo');
 gotoxy(2,2);
 repeat
 r:= readkey;
  has:= has+r;
  write(#9);
  p:= length(has);
 until p=5;
 end;
  if (has='hasuo') then
  begin
  delay(500);
   clrscr;
   write('OK');
   delay(1000);
  end;
  if (has<>'hasuo') then
  begin
   write('false');
   delay(2000);
   halt;
  end;
  delay(2000);
  //
  // T
  // R
  //  E
  //   S
  //     C
  //        T R U E
  //
  //
  clrscr;
  a:= 5;
  gotoxy(11,2);
  write('POCZEKAJ');
  gotoxy(5,3);
  write('_ _ _ _ _');
  repeat
   delay(500);
   gotoxy(a,3);
   write('/');
    inc(a);
    inc(a);
  until a=15;
  delay(2000);
   clrscr;
   gotoxy(20,3);
   write('WITAJ W PRZEMUSJOPOLIS');
   DELAY(2000);
   //fabularne intro
   clrscr;
   write('Witaj. Jeste&#732; Sengji-Onk, samuraj. Twoim zadaniem jest eliminacja wyznaczonych  wrog˘w ;] ');
   delay(4000);
   clrscr;
   begin

    sz:= 'sztylet';
    //postac
    l:
     with tbronq do
     begin
     sz:= bron;
     end;

    begin
    clrscr;
    writeln('IMIE : Sengji-Onk');
    writeln('KLASA : Samuraj ');
    writeln('BRON : ', sz, ' ');
      //staty broni

    begin
     if sz='sztylet' then
      begin
      with tbronq do
      begin
      obrmi:= 1;
      obrma:= 2;
      cen:= 0;
      end;
      end;
     if sz='mieczyk' then
      begin
      with tbronq do
      begin
      obrmi:= 2;
      obrma:= 3;
      cen:= 10;
      end;
      end;
     if sz='pochodnia' then
      begin
      with tbronq do
      begin
      obrmi:= 1;
      obrma:= 4;
      cen:= 5;
      end;
      end;
     if sz='toporek' then
      begin
      with tbronq do
      begin
      obrmi:= 2;
      obrma:= 4;
      cen:= 13;
      end;
      end;
     if sz='miecz' then
      begin
      with tbronq do
      begin
      obrmi:= 3;
      obrma:= 5;
      cen:= 15;
      end;
      end;
     if sz='top˘r' then
      begin
      with tbronq do
      begin
      obrmi:= 2;
      obrma:= 7;
      cen:= 19;
      end;
      end;
     if sz='kijek z kupĄ' then
      begin
      with tbronq do
      begin
      obrmi:= 3;
      obrma:= 8;
      cen:= 0;
      end;
      end;
     if sz='katana' then

      begin
      with tbronq do
      begin
      obrmi:= 5;
      obrma:= 8;
      cen:= 25;
      end;
      end;
     if sz='halabarda' then
      begin
      with tbronq do
      begin
      obrmi:= 5;
      obrma:= 9;
      cen:= 31;
      end;
      end;
     if sz='katana miszcza' then
      begin
      with tbronq do
      begin
      obrmi:= 7;
      obrma:= 11;
      cen:= 45;
      end;
      end;
     if sz='lampa' then
      begin
      with tbronq do
      begin
      obrmi:= 7;
      obrma:= 10;
      cen:= 0;
      end;
      end;
     if sz='katana z kupĄ' then
      begin
      with tbronq do
      begin
      obrmi:= 9;
      obrma:= 13;
      cen:= 0;
      end;
      end;
     if sz='katana hartowana' then
      begin
      with tbronq do
      begin
      obrmi:= 11;
      obrma:= 15;
      cen:= 70;
      end;
      end;
    end;
   end;
   end;
   //rysowanie planszy

   begin
    for i:= 4 to 12 do
      begin
      gotoxy(i,4);
      write('o');
      gotoxy(i,12);
      write('o');
      gotoxy(4,i);
      write('o');
      gotoxy(12,i);
      write('o');
    end;
    a:= 1;
    k:= 4;
    z:= 'karczma';
     for a:= 1 to 7 do
     begin
      gotoxy(8,k+a);
      write(z[a]);
     end;
    a:= 4;
    k:= 16;
    for i:= 1 to 7 do
    begin
     gotoxy(k,4);
     write('o');
     gotoxy(k,7);
     write('o');
     inc(k);
    end;
    begin
        gotoxy(16,5);
        write('o');
        gotoxy(16,6);
        write('o');
        gotoxy(22,5);
        write('o');
        gotoxy(22,6);
        write('o');
    end;
    gotoxy(17,5);
    write('TARG');
    gotoxy(4,14);
    write('Droga do Sen-Dan-'#26);
    gotoxy(4,15);
    write('____________');
    //opcje
    gotoxy(29,3);
    write(' Co robisz? ');
    gotoxy(29,4);
    write(' 1. Ide do karczmy ');
    gotoxy(29,5);
    write(' 2. Ide na targ ');
    gotoxy(29,6);
    write(' 3. Ide do Sen-Dan ');
    gotoxy(29,7);
    write('Aby wyj&#732;&#8224; wpisz "s"');
    gotoxy(29,9);
    write('Aby zobaczy&#8224; statystyki broni wpisz "4"');
    //
    gotoxy(29,10);
    {uwaga - decyzja !}
    read(i);
     if i=1 then
     begin //karczma
      delay(300);
      clrscr;
       for k:= 3 to 32 do
        begin
         gotoxy(k,2);
         write('Í');
         gotoxy(2,k);
         write('ş');
         p:= 37+k;
         gotoxy(p,2);
         write('Í');
        end;
       gotoxy(2,2);
       write('É');
       gotoxy(39,2);
       write('ş');
       {stoliki}
        begin
         gotoxy(6,6);
         write(#1,'/\', #1);
         gotoxy(6,7);
         write(#2,'\/', #1);
         gotoxy(19,3);
         write(#2);
         gotoxy(19,4);
         write(#24);
         gotoxy(19,5);
         write('^');
         gotoxy(40,12);
         write('Jak widzisz, nie ma tu nic ciekawego.');
         delay(4000);
         goto l;
        end;
       readln;
     end;//koniec karczmy
     if i=4 then
     begin//staty
      clrscr;
      with tbron do
      begin
       writeln('Nazwa : ', bron);
       writeln('obraľenia min./max. : ', obrmi,'/', obrma);
       writeln('cena na targu - ', cen);
      end;
      readln;
      delay(5000);
      goto l;
     end;//koniec stat˘w
     if i=2 then
     begin//targ
      clrscr;
      gotoxy(2,2);
      write('Witaj ! Jestem Kole-Siu, kowal. Oto co moľesz u mnie kupi&#8224;.');
      gotoxy(2,4);
      write('<--------}{DO KUPIENIA}{-------->');
      //gotoxy(2,6);
      //p:= random(lvl);
      //write(tbron);
      readln;
     end;//koniec targu////////////////////////////////////////////// /
    readln;
   end;
   end.

_________________

 
 
Odyn 
Administrator


Wiek: 34
Posty: 856
Medale: Brak

Wysłany: 23 Styczeń 11, 13:39   

Nie sądzę, żeby ktoś znalazł błąd w takim kodzie, bez żadnych wskazówek z twojej strony. Przydałoby się też dodać wcięcia...
 
 
przemusio 
Piechur


Gra w: czasami zrobię mapę na konkurs (SH/ SHC),
Wiek: 26
Posty: 460
Skąd: Gdynia
Medale: Brak

Wysłany: 23 Styczeń 11, 13:51   

Błąd jest gdzieś w mojej stworzonej zmiennej 'tbron', oraz operacjach przy niej. Z góry dzięki wielkie :)
przemusio napisał/a:
type
tbron=record
bron:string[30];
obrmi:word;
obrma:word;
cen:byte;
end;
var
tbronq:array[1..13] of tbron;


przemusio napisał/a:
begin
with tbronq do
begin
obrmi:= 11;
obrma:= 15;
cen:= 70;
end;
end;
end;
end;
end;
przemusio napisał/a:
with tbron do
begin
writeln('Nazwa : ', bron);
writeln('obraľenia min./max. : ', obrmi,'/', obrma);
writeln('cena na targu - ', cen);
end;
przemusio napisał/a:
with tbronq do
begin
sz:= bron;
end;
_________________

 
 
Odyn 
Administrator


Wiek: 34
Posty: 856
Medale: Brak

Wysłany: 23 Styczeń 11, 18:24   

Problem może polegać na tym, że instrukcja with służy do odwoływania się do wartości zmiennej rekordowej, a ty używasz jej do tablicy ze zmiennymi tbronq.
Wydaje mi się, że musisz użyć dodatkowej pętli, żeby działać na pojedynczych rekordach, będących elementami tablicy, a nie na całej tablicy.

Na przykład tak:
Kod:
for i:= 1 to 13 do
begin
with tbronq[i] do
begin
obrmi:= 11;
obrma:= 15;
cen:= 70;
end;
end;
 
 
przemusio 
Piechur


Gra w: czasami zrobię mapę na konkurs (SH/ SHC),
Wiek: 26
Posty: 460
Skąd: Gdynia
Medale: Brak

Wysłany: 23 Styczeń 11, 18:51   

Dzięki wielkie - działa :)
_________________

 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group | Template DarkMW created by razz