Просмотреть всю тему "Морской бой" »»
Re: Морской бой   ID:1704   ответ на 1697 Ср, 25 мая 2005 07:48 [#]
Mariner Форумы CasinoGames
Приветствую!

2 Mercator

Короче наваял симулятор. Smile

Если стоимость игры за 2 поытки составляет 1000$, то имеем жуткий плюс в +98.6%.

Если стоимость игры за 2 поытки составляет 2000$, то имеем минус -3.45%.

<div style="margin:20px; margin-top:5px">
<div class="smallfont" style="margin-bottom:2px">Код:</div>
<pre class="alt2" dir="ltr" style="
margin: 0px;
padding: 4px;
border: 1px inset;
width: 640px;
height: 498px;
text-align: left;
overflow: auto">procedure TForm1.Button1Click(Sender: TObject);
type
zzz=array[1..24] of integer;
const
zeroArPole24: zzz=(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
var
k,kk,i,j,r: integer;
ArPole24: zzz;
cntMiss: integer;
cntHit: integer;
res: real;

function myRandom: integer;
begin
myRandom:=Random(24)+1;
end;

begin
res:=0;
kk:=10000000;
for k:=1 to kk do
begin
ArPole24:=zeroArPole24;

res:=res-2000; //плата за участие в игре. 1000 или 2000

// расставляем корабли
j:=0;
while j<>12 do
begin
r:=myRandom;
if ArPole24[r]=0 then
begin
ArPole24[r]:=1;
Inc(j);
end;
end;

//стреляем
cntMiss:=0;
cntHit:=0;
while cntMiss<>2 do
begin
r:=myRandom;
if ArPole24[r]=1 then
begin
ArPole24[r]:=2; // типа стреляли в эту клетку
Inc(cntHit);
res:=res+1000; // подбили корабль
end;
if ArPole24[r]=0 then
begin
ArPole24[r]:=2; // типа стреляли в эту клетку
Inc(cntMiss);
end;
end;

// типа 2 раза сразу промахнулись
if cntHit=0 then res:=res+500;
end;
res:=res/kk;
end;</pre>
</div>