All pastes #2054308 Raw Edit

Anonymous

public text v1 · immutable
#2054308 ·published 2011-05-05 18:37 UTC
rendered paste body
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  classes;

var a: tstringlist;
    rodadas: integer = 40;
    tatica: integer;
    input,input2,input3: string;

procedure bobo;
begin
a.Add('ingenuo');
while rodadas > 0 do begin
 dec(rodadas, 1);
 write('voce - ');
 readln(input2);
 writeln('comp - 1');
 a.Add(input2+'-1');
end;
end;

procedure egoista;
begin
a.Add('egoista');
while rodadas > 0 do begin
 dec(rodadas, 1);
 write('voce - ');
 readln(input2);
 writeln('comp - 0');
 a.Add(input2+'-0');
end;
end;

procedure maluco_random;
begin
a.Add('bobo - random');
while rodadas > 0 do begin
 dec(rodadas, 1);
 write('voce - ');
 readln(input2);
 randomize;
 input3 := inttostr(random(2));
 writeln('comp - '+input3);
 a.Add(input2+'-'+input3);
end;
end;

procedure tft;
begin
a.Add('tft');
while rodadas > 0 do begin
 dec(rodadas, 1);
 write('voce - ');
 readln(input2);
 if rodadas = 39 then input3 := '1';
 writeln('comp - '+input3);
 a.Add(input2+'-'+input3);
end;
end;

procedure traira_10;
begin
a.Add('traira - 10');
while rodadas > 0 do begin
 dec(rodadas, 1);
 write('voce - ');
 readln(input2);
 if rodadas < 30 then input3 := '0' else input3 := '1';

 writeln('comp - '+input2);
 a.Add(input2+'-');
end;
end;



begin
writeln('o teste dura em media de 1 a 3 minutos');
writeln('[dilema do prisioneiro]');
writeln('2 opções, 3 resultados diferentes');
writeln('sao em média 20 rodadas');
writeln('* 1 - manter segredo');
writeln('* 0 - trair');
writeln('1. voce mantem segredo e a maquina tambem mantem (1-1), voce e o adversario ficam 6 meses na cadeia');
writeln('2. voce trai e a maquina mantem segredo (0-1), o adversario passara 10 anos na cadeia');
writeln('3. voce trai e a maquina trai (0-0), voce e o adversario passariam 5 anos na cadeia');
writeln('4. voce mantem segredo e a maquina trai (1-0), voce passaria 10 anos na prisao');
writeln('');
writeln('para começar informe seu nome, para ajuda digite "mais"');
readln(input);
if lowercase(input) = 'mais' then begin
  writeln('O dilema do prisioneiro é um problema da teoria dos jogos. Neste problema, cada jogador, de modo independente, quer aumentar ao máximo a sua vantagem sem importar o resultado do outro.');
  writeln('informe seu nome');
  readln(input);
end;
a := tstringlist.Create;
Randomize;

tatica := random(4);

case tatica of
0: bobo;
1: egoista;
2: maluco_random;
3: tft;
4: traira_10;
end;



a.SaveToFile(extractfilepath(paramstr(0))+input+'.txt');

writeln('');
writeln('concluido.');

end.