Games - programa em modo console para advinhar numero que o usuario pensa |
Top Previous Next |
// fonte completo em modo console program adivinhador;
{$APPTYPE CONSOLE}
var indice,t,i,j,k,maxtela,maxj,restart,maxpix:integer; x,num,n,escolha,pot2,nn:integer; v:array[1..20] of integer; c:char;
begin writeln('O numero que sera adivinhado esta em que intervalo ? (nao maior do que 16383)'); writeln('(recomenda-se 127)'); write('De 0 ate '); readln(n);
x:=1; indice:=1; v[indice]:=x; while n>=x do begin x:=2*x; indice:=indice+1; v[indice]:=x; end; writeln; writeln('Voce vera ',indice-1,' tabelas'); writeln('Pense em um numero entre 0 e ',n,' e verifique se ele se encontra nas tabelas'); writeln; writeln('.. pressione ENTER para continuar .. '); readln;
escolha:=0; maxpix:=19; nn:=trunc(sqrt(n)); if nn<maxpix then maxtela:=nn else maxtela:=maxpix; for t:=1 to indice-1 do begin restart:=0; pot2:=v[t]; k:=0; num:=pot2-1; j:=0; while k<=n div 2 do begin for i:=1 to pot2 do begin num:=num+1; if num<=n then if num div 10 < 1 then write(' ',num) else if num div 10<10 then write(' ',num) else write(' ',num); k:=k+1; if num <=n then j:=j+1; if num div 10>=100 then if num div 10 >=1000 then maxj:=12 else maxj:= 15 else maxj:=maxtela; if j=maxj then begin writeln; j:=0; restart:=restart+1; end; if restart=16 then begin restart:=0; writeln; writeln('.. mais ..'); readln; end; end; num:=num+pot2; end; writeln; repeat writeln; write('Seu numero esta nesta tabela ? (s/n)'); readln(c); until ((c='s') or (c='S') or (c='n') or (c='N')); if ((c='s') or (c='S')) then escolha:=escolha+pot2;
end; writeln; writeln('O numero que voce pensou eh ',escolha); writeln; readln; end.
|