Elektroda.pl
Elektroda.pl
X
Proszŕ, dodaj wyj▒tek www.elektroda.pl do Adblock.
Dziŕki temu, ┐e ogl▒dasz reklamy, wspierasz portal i u┐ytkownikˇw.

[Turbo Pascal] Licznik b│ŕdˇw w wisielcu

QruczaQ 13 Lis 2010 17:47 1344 5
  • #1 13 Lis 2010 17:47
    QruczaQ
    Poziom 2  

    witam,
    mam problem co do pascala. Chcialbym napisac licznik bledow do zle wprowadzonych liter przy zgadywaniu hasla. Jezeli popelnimy 6 bledow to program powinien pokazac "przegrales" i wyjsc do menu.
    tutaj kod:

    Code:

    program wisielec;
    uses crt;
    var
    s,m:string;
    l:string[1];
    i,z,licznik,tymcz:integer;
    begin;
    licznik:=0;
    repeat
    clrscr;
    textcolor(green);
    gotoxy(33,4);writeln('╔═══════════════»');
    gotoxy(33,5);
    writeln             ('║      Menu     ║');
    gotoxy(33,6);writeln('╠═══════════════▒');
    gotoxy(33,7);
    writeln             ('║ 1-Podaj slowo ║');
    gotoxy(33,8);
    writeln             ('║ 2-Graj!       ║');
    gotoxy(33,9);
    writeln             ('║ 3-Exit        ║');
    gotoxy(33,10);writeln('╠═══════════════▒');
    gotoxy(33,11);writeln('║     Autor:    ║');
    gotoxy(33,12);writeln('║    Dawid M.   ║');
    gotoxy(33,13);writeln('╠═══════════════▒');
    gotoxy(33,14);writeln('║               ║');
    gotoxy(33,15);writeln('╚═══════════════ą');
    gotoxy(40,14);
    readln(z);
    m:=s;
    case z of
    1: begin;
    clrscr;
    gotoxy(33,4);writeln('╔═══════════════»');
    gotoxy(33,5);
    writeln             ('║ Podaj Slowo   ║');
    gotoxy(33,6);writeln('╠═══════════════▒');
    gotoxy(33,7);
    writeln             ('║               ║');
    gotoxy(33,8);writeln('╚═══════════════ą');
    gotoxy(35,7);
    readln(s);
    clrscr;

      end;
    2: begin;
    clrscr;
        for i:=1 to ord(s[0]) do
        begin;
         gotoxy(i+35,9);
         write('-');
         licznik:=-1;
          if s<> ' ' then
           begin;
            m[i]:=' ';
           end;
        end;
        repeat
    gotoxy(33,4);writeln('╔═══════════════»');
    gotoxy(33,5);
    writeln             ('║ Podaj litere  ║');




    gotoxy(33,6);writeln('╠═══════════════▒');
    gotoxy(33,7);writeln('║               ║');
    gotoxy(33,8);writeln('╠═══════════════▒');
    gotoxy(33,9);writeln('║');gotoxy(49,9);writeln('║');
    gotoxy(33,10);writeln('╠═══════════════▒');
    gotoxy(33,11);writeln('║');gotoxy(49,11);writeln('║');
    gotoxy(33,12);writeln('║');gotoxy(49,12);writeln('║');
    gotoxy(33,13);writeln('║');gotoxy(49,13);writeln('║');
    gotoxy(33,14);writeln('║');gotoxy(49,14);writeln('║');
    gotoxy(33,15);writeln('║');gotoxy(49,15);writeln('║');
    gotoxy(33,16);writeln('╠═══════════════▒');
    gotoxy(33,17);writeln('║               ║');
    gotoxy(33,18);writeln('╚═══════════════ą');
    gotoxy(40,7);readln(l);
    tymcz:=1;
          for i:=1 to ord(s[0]) do
           begin;
            gotoxy(i+35,9);
            if s[i]=l then
             begin;
              m[i]:=l[1];
              write(l);
              tymcz:=0;
             end;
             if tymcz<>0 then licznik:=licznik+1;
              if licznik=6 then
              begin;
              gotoxy(37,17);
              writeln('Przegrales');
              end;
            end;
         until m=s;

         gotoxy(37,17);
         writeln('Wygrales');
         readkey;

     end;

    end;
    until z=3;
    end.

    0 5
  • #2 13 Lis 2010 18:39
    Spooner
    Poziom 16  

    Na pierwszy rzut oka to tak▒ funkcjŕ masz, domyÂlam, ┐e siŕ nie kompiluje.

    Pierwsze to wywal ; po s│owie begin. Potem zobacz co wysz│o.

    Moderowany przez arnoldziq:

    Za pisanie wiadomoÂci bez sensu i udzielanie kompletnie bzdurnych porad. Ostrze┐enie #2.

    0
  • #3 13 Lis 2010 18:50
    QruczaQ
    Poziom 2  

    wszystko dzia│a, tylko nie moge z b│ŕdami dojŠ do porozumienia.

    0
  • #4 13 Lis 2010 21:36
    Spooner
    Poziom 16  

    Powiem, ┐e zŕby zjad│em na Pascalu i powiem, ┐e nie ogarniam twojego kodu.

    Nie wiem co robi funkcja ORD w pŕtli for.

    Napisz krok po kroku co ma robiŠ, mo┐e pomo┐emy

    0
  • Pomocny post
    #5 13 Lis 2010 21:47
    arnoldziq
    Moderator Programowanie

    Tak na szybko :

    Code:
    program wisielec;
    
    uses crt;
    var
    s,m:string;
    l:string[1];
    i,z,licznik:integer;
    poprawna,koniec : boolean;
    begin;
    licznik:=0;
    repeat
    clrscr;
    textcolor(green);
    gotoxy(33,4);writeln('╔═══════════════╗');
    gotoxy(33,5);
    writeln             ('s      Menu     s');
    gotoxy(33,6);writeln('E═══════════════a');
    gotoxy(33,7);
    writeln             ('s 1-Podaj slowo s');
    gotoxy(33,8);
    writeln             ('s 2-Graj!       s');
    gotoxy(33,9);
    writeln             ('s 3-Exit        s');
    gotoxy(33,10);writeln('E═══════════════a');
    gotoxy(33,11);writeln('s     Autor:    s');
    gotoxy(33,12);writeln('s    Dawid M.   s');
    gotoxy(33,13);writeln('E═══════════════a');
    gotoxy(33,14);writeln('s               s');
    gotoxy(33,15);writeln('C═══════════════C');
    readln(z);
    m:=s;
    case z of
    1: begin;
    clrscr;
    gotoxy(33,4);writeln('╔═══════════════╗');
    gotoxy(33,5);
    writeln             ('s Podaj Slowo   s');
    gotoxy(33,6);writeln('E═══════════════a');
    gotoxy(33,7);
    writeln             ('s               s');
    gotoxy(33,8);writeln('C═══════════════L');
    gotoxy(35,7);
    readln(s);
    clrscr;

      end;
    2: begin;
    clrscr;
        for i:=1 to length(s) do
        begin;
         gotoxy(i+35,9);
         write('-');
         licznik:=-1;
          if s<> ' ' then
           begin;
            m[i]:=' ';
           end;
        end;
    licznik:=0;
    repeat
     koniec:=false;
     gotoxy(33,4);writeln('╔═══════════════╗');
     gotoxy(33,5);
     writeln             ('s Podaj litere  s');
     gotoxy(33,6);writeln('E═══════════════a');
     gotoxy(33,7);writeln('s               s');
     gotoxy(33,8);writeln('E═══════════════a');
     gotoxy(33,9);writeln('s');gotoxy(49,9);writeln('s');
     gotoxy(33,10);writeln('E═══════════════a');
     gotoxy(33,11);writeln('s');gotoxy(49,11);writeln('s');
     gotoxy(33,12);writeln('s');gotoxy(49,12);writeln('s');
     gotoxy(33,13);writeln('s');gotoxy(49,13);writeln('s');
     gotoxy(33,14);writeln('s');gotoxy(49,14);writeln('s');
     gotoxy(33,15);writeln('s');gotoxy(49,15);writeln('s');
     gotoxy(33,16);writeln('E═══════════════a');
     gotoxy(33,17);writeln('s               s');
     gotoxy(33,18);writeln('C═══════════════L');
     gotoxy(34,17);
     writeln(' Bledy : ',licznik);
     gotoxy(40,7);
     readln(l);

     poprawna:=false;
     for i:=1 to length(s) do
      begin;
       if s[i]=l then
       begin;
        m[i]:=l[1];
        gotoxy(i+35,9);
        write(m[i]);
        poprawna:=true;
       end;
      end;

     koniec:=(m=s);
      if koniec then
       begin
        gotoxy(34,17);
        writeln('   Wygrales');
       end;

     if not poprawna then inc(licznik);

     if licznik=6 then
      begin;
       gotoxy(34,17);
       writeln('   Przegrales');
       koniec:=true;
      end;
    until koniec;
     readkey;
     end;
    end;
    until z=3;
    end.


    Popraw sobie tylko ramki, bo chyba mi je Widows7 "rozjecha│" :(

    0
  • #6 13 Lis 2010 21:50
    QruczaQ
    Poziom 2  

    dzieki wielkie;) nie moglem tego skminiŠ;/

    0