function TryParseInt(s: string; var num: integer): boolean;
begin
Result := True;
try
num := StrToInt(s);
except
Result := False;
num := -1;
end;
end;
begin
var red := [1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36];
var balance := 100;
Writeln('Добро пожаловать в рулетку! Баланс: ', balance);
while balance > 0 do
begin
Writeln;
Writeln('Баланс: ', balance);
Write('Ставка: ');
var bet := ReadInteger;
if (bet <= 0) or (bet > balance) then
begin
Writeln('Некорректная ставка');
continue;
end;
Write('На что ставим? (число 0-36 / red / black / even / odd): ');
var choice := LowerCase(ReadString);
var res := Random(37);
var isRed := red.Contains(res);
var color := 'green';
if res <> 0 then
if isRed then color := 'red' else color := 'black';
Writeln('Выпало: ', res, ' (', color, ')');
var win := False;
var num: integer;
var isNumber := TryParseInt(choice, num);
if isNumber and (num = res) then
begin
balance += bet * 35;
win := True;
end
else if (choice = 'red') and (color = 'red') then
begin
balance += bet;
win := True;
end
else if (choice = 'black') and (color = 'black') then
begin
balance += bet;
win := True;
end
else if (choice = 'even') and (res <> 0) and (res mod 2 = 0) then
begin
balance += bet;
win := True;
end
else if (choice = 'odd') and (res mod 2 = 1) then
begin
balance += bet;
win := True;
end;
if win then
Writeln('Выигрыш!')
else
begin
balance -= bet;
Writeln('Проигрыш');
end;
end;
Writeln('Баланс закончился. Игра окончена.');
end.