Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2016, 00:04   #1
Eva3000
Новичок
Джуниор
 
Регистрация: 26.06.2016
Сообщений: 1
По умолчанию Необходимо реализовать подсказки 50 на 50 и звонок другу - Delphi

Кто может помочь с реализацией подсказок 50 на 50 и звонок другу для игры кто хочет стать миллионером? Вопросы находятся в Ini-файле.
Eva3000 вне форума Ответить с цитированием
Старый 26.06.2016, 10:53   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

А чем Вам помочь? Советом?

Ну и при чём здесь, где находятся вопросы? Хоть в INI, хоть в TXT, хоть в базе данных.
Это не важно.
Важен игровой процесс - как у Вас организован вывод вариантов. Вот там и нужно делать подсказки.

теперь, что касается подсказок.
50 на 50 делается так - правильный вариант остаётся в любом случае. из оставшихся 3-х вариантов убираете два по ГПСЧ (Random)

теперь, что касается звонок другу.
тут чуть сложнее. я бы сделал так. генерил случайное число от 0 до 99.
если число в диапазоне 0-80, то друг подсказывал ВЕРНЫЙ ответ (вероятность ~80%), иначе - случайным образом выбирал один из неправильных ответов.
Процент, когда друг подсказывает верный вариант можно увеличить или уменьшить.
На мой взгляд, нельзя делать 100% (ну когда друг ТОЧНО подсказывает правильный вариант - это сильно крутая подсказка получается. Такой в игре нет.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.06.2016, 17:47   #3
Igor[Игорь]
Пользователь
 
Аватар для Igor[Игорь]
 
Регистрация: 25.11.2011
Сообщений: 52
По умолчанию

Когда то делал 50/50 у меня так

Код:
procedure fifty_fifty(PO: Integer);
  function R(i: byte): boolean;
  begin
    case i of
      0: result:=false;
      1: result:=true;
    end;
  end;
var
  O1, O2, O3: boolean;
  C: Integer;
begin
  C:=0;
  while C=0 do
  begin
    O1:=R(random(2));
    if O1=false then
    inc(C);
    O2:=R(random(2));
    if O2=false then
    inc(C);
    O3:=R(random(2));
    if O3=false then
    inc(C);
    if (C=3)or(C=1)then
    C:=0;
  end;
  case PO of
    0:
    begin
      form1.LabelOtvet2.Visible:=O1;
      form1.Label2.Visible:=O1;
      form1.LabelOtvet3.Visible:=O2;
      form1.Label3.Visible:=O2;
      form1.LabelOtvet4.Visible:=O3;
      form1.Label4.Visible:=O3;
    end;
    1:
    begin
      form1.LabelOtvet1.Visible:=O1;
      form1.Label1.Visible:=O1;
      form1.LabelOtvet3.Visible:=O2;
      form1.Label3.Visible:=O2;
      form1.LabelOtvet4.Visible:=O3;
      form1.Label4.Visible:=O3;
    end;
    2:
    begin
      form1.LabelOtvet2.Visible:=O1;
      form1.Label2.Visible:=O1;
      form1.LabelOtvet1.Visible:=O2;
      form1.Label1.Visible:=O2;
      form1.LabelOtvet4.Visible:=O3;
      form1.Label4.Visible:=O3;
    end;
    3:
    begin
      form1.LabelOtvet2.Visible:=O1;
      form1.Label2.Visible:=O1;
      form1.LabelOtvet3.Visible:=O2;
      form1.Label3.Visible:=O2;
      form1.LabelOtvet1.Visible:=O3;
      form1.Label1.Visible:=O3;
    end;
  end;
end;

звонок другу так

procedure PomochDruga(PO: integer);
var
  i, j, so: integer;
  Itog: array [0..3] of integer;
  otvet: string;
begin
  POtv:=PO;
  form1.Label7.Caption:='';
  so:=0;
  for i:=0 to 3 do
  begin
    Itog[i]:=random(100);
    if i=PO then
    Itog[i]:=Itog[i]+(50-PD);
    so:=so+Itog[i];
  end;
  for i:=0 to 3 do
  begin
    if Itog[i]<>0 then
    Itog[i]:=round(100/(so/Itog[i]));
  end;
  so:=Itog[0];
  j:=0;
  for i:=1 to 3 do
  begin
    if so<Itog[i] then
    begin
      so:=Itog[i];
      j:=i;
    end;
  end;
  case j of
    0:  otvet:=TRec(ListRec.Items[NumVopros])^.Otvet1;
    1:  otvet:=TRec(ListRec.Items[NumVopros])^.Otvet2;
    2:  otvet:=TRec(ListRec.Items[NumVopros])^.Otvet3;
    3:  otvet:=TRec(ListRec.Items[NumVopros])^.Otvet4;
  end;
  if PO=j then
  if so>=50 then
  form1.Label7.Caption:='Я точно знаю что '+otvet
  else
  form1.Label7.Caption:='Я думаю что '+otvet
  else
  if so>=50 then
  form1.Label7.Caption:='Я не знаю, даже нет предположений'
  else
  form1.Label7.Caption:='Я не знаю, может быть '+otvet
end;
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор
e-mail: igor23dec@yandex.ru , ICQ: 2168364 , Telegram: @IgorVN
Delphi, PHP
Примеры http://igorvn.ucoz.ru/
Igor[Игорь] вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Необходимо реализовать на С++ -still- Помощь студентам 0 08.12.2011 22:27
Необходимо реализовать защиту! VintProg Свободное общение 7 14.09.2011 16:22