1

Тема: Казино

Від нічого робити написав простеньку программу на паскалі,проте не знаю як зробити так,щоб воно запам'ятовувало останні мої гроші і в наступних разах виконувало операції вже з тими грошима що в мене залишились

program cas;
var b,a,s,n : integer;
Begin
b:=2000;
writeln('На какое число ставим?(от 0 до 10)');
readln(a);
writeln('Ваша ставка?');
readln(s);
  randomize;
  n:= random (11);
  begin
  if a=n
  then begin
  b:=b+s;
  writeln(n , 'Ставка сыграла,ваш банк' , b );
  end
  else begin
  b:=b-s;
  writeln(n , 'Ваша ставка не сыграла' , b );
  end;
  end;
 if b=0
 then begin
 writeln('Вы проиграли все свои деньги');
 end;
end. 

2

Re: Казино

Є 2 варіанти.
1. Організовуєте цикл щоб програма працювала доки гравець не програє всі гроші (або не введе команду збереження).
2. Або в кінці програми записуйте кількість грошей, а при наступному запуску зчитуйте з файлу скільки було.

Нехай буде з тобою сила!
Подякували: magnevitis1

3

Re: Казино

drWoZD написав:

Є 2 варіанти.
1. Організовуєте цикл щоб програма працювала доки гравець не програє всі гроші (або не введе команду збереження).
2. Або в кінці програми записуйте кількість грошей, а при наступному запуску зчитуйте з файлу скільки було.

Щодо циклу я розумію,що це repeat-until , проте не розумію де його поставити

4

Re: Казино

Все,знайшов методом підбору

5 Востаннє редагувалося koala (03.04.2014 17:44:53)

Re: Казино

repeat - перед початком тих дій, які ви хочете повторювати, until - після.

Подякували: magnevitis1

6

Re: Казино

magnevitis написав:

Все,знайшов методом підбору

Найкращий спосіб зробити щось - зробити самому, еге ж?
Але в цілому непогано було б викласти код - а раптом комусь знадобиться.
І ще - з randomize проблем не було?

Подякували: magnevitis1

7

Re: Казино

koala написав:
magnevitis написав:

Все,знайшов методом підбору

Найкращий спосіб зробити щось - зробити самому, еге ж?
Але в цілому непогано було б викласти код - а раптом комусь знадобиться.
І ще - з randomize проблем не було?

Так,згоден,що самому карще зробити, більше отримуєш задоволення. А з randomize що не так? Все парцює,все чудово.
Ось код

program cas;
var b,a,s,n : integer;
Begin
b:=2000;
repeat
writeln('На какое число ставим?(от 0 до 10)');
readln(a);
writeln('Ваша ставка?');
readln(s);
  randomize;
  n:= random (11);
  begin
  if a=n
  then begin
  b:=b+s;
  writeln('Выпало число', ' ',n,' ','Ставка сыграла,ваш банк',' ',b );
  end
  else begin
  b:=b-s;
  writeln('Выпало число', ' ',n,' ','Ваша ставка не сыграла',' ', b );
  end;
  end;
 until b=0; 
 if b=0
 then begin
 writeln('Вы проиграли все свои деньги');
 end;
end. 

8

Re: Казино

Ви випадково не побачили бага, бо програма працює повільно. Спробуйте задати вхідні дані автоматично (наприклад, з файлу чи вбити в програмі фіксовані значення замість вводу) - побачите проблему.

9

Re: Казино

Справа в тому, що random повертає значення однієї і тієї самої послідовності, а randomize виставляє місце, з якого ці числа видаються. Точніше, randomize без параметрів бере поточне значення часу в секундах для вибору місця в послідовності. Тому randomize має бути один на програму - на початку, там, де ви b ініціалізуєте.