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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.03.2010, 12:11   #1
Cause
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 11
По умолчанию Игра "Угадай число"

Если не сложно, могли-ли вы написать код программы "Угадай число", то-есть в водится 3 уровня сложности:
1)2 попытки и до 5 чисел
2)5 попыток до 20
3)10 попыток до 50
если человек ошибся, то программа пишет :
Не правильно, загаданное число меньше/больше
Если угадал пишет:
Вы выиграли, молодец, хотите попробовать ещё?
Вот начало:
Uses
SysUtils

Label m,s,f,g;
Var pop,a,rn,b:integer
q:string
Begin
Writeln('Vvedite imya,poshaluista')
Readln(q);
Writeln('Zdravstvuite',q,'Dobro poshalovat');
Writeln('Biberite uroven sloshnosty');
Writeln('1 - Prosto, 2 popitki, chisla do 5');
Writeln('2 - sredne,5 popitok, do 20');
Writeln('3- Genii, 10 popitok, do 50');
Readln(b);
If..........

Вот начало,есле не сложно, где можно скачать Delphi 10 Lite, ,бесплатный,чтобы ключа не требовал)
Вот ещё операторы которые могут быть использованы:
Условный оператор if;
Case;
Goto;
for;
оператор присваивания;
random;
ну и в этом духе
Заранее спс.

Последний раз редактировалось Cause; 20.03.2010 в 12:13.
Cause вне форума Ответить с цитированием
Старый 20.03.2010, 13:13   #2
Незлобин
 
Регистрация: 20.03.2010
Сообщений: 9
По умолчанию

Сам код могу выложить только в среду(:
http://dump.ru/file/4459834
Незлобин вне форума Ответить с цитированием
Старый 20.03.2010, 13:40   #3
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

А что именно не понятно?
В цикле читаем число, сравниваем с сгенерированным...
Вот код(написано без использования label'ов), разбирайтесь.
Код:
program randomGame;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  level, maxCount, maxNum, aNum, curCount, curNum: integer;
  name: string;
  answ: char;
  contin: boolean;
begin
//init
  maxCount := 0;
  maxNum := 0;
  contin := false;
//
  writeln('Vvedite imya, poshaluista');
  readln(name);
  writeln('Zdravstvuite, ', name, '! Dobro poshalovat.');
  while (true) do
  begin
    writeln('Viberite uroven sloshnosty:');
    writeln('1 - prosto, 2 popitki, chisla do 5');
    writeln('2 - sredne,5 popitok, do 20');
    writeln('3 - genii, 10 popitok, do 50');
    while (true) do
    begin
      readln(level);
      case level of
        1:
          begin
            maxCount := 2;
            maxNum := 5;
          end;
        2:
          begin
            maxCount := 5;
            maxNum := 20;
          end;
        3:
          begin
            maxCount := 10;
            maxNum := 50;
          end;
      else
        writeln('Nevernuy vvod. Povtorite.');
        continue;
      end;
      break;
    end;
    curCount := 0;
    randomize;
    aNum := random(maxNum) + 1;
    while (curCount < maxCount) do
    begin
      write('Vvedite predpologaemoe chislo: ');
      readln(curNum);
      inc(curCount);
      if (curNum > aNum) then
        writeln('Nepravilno(zagadannoe chislo menshe). U vas ostalos ', maxCount - curCount, ' poputok.')
      else if (curNum < aNum) then
        writeln('Nepravilno(zagadannoe chislo bolshe). U vas ostalos ', maxCount - curCount, ' poputok.')
      else
      begin
        writeln('Vy vyigrali, molodec!');
        break;
      end;
    end;
    if (curCount = maxCount) then
      writeln('Vy proigrali.');
    while (true) do
    begin
      write('Hotite poprobovat esche? [y\n]: ');
      readln(answ);
      case answ of
        'y': contin := true;
        'n': contin := false;
      else
        writeln('Nevernuy vvod. Povtorite.');
        continue;
      end;
      break;
    end;
    if (not contin) then
      break;
  end;
  writeln('Spasibo za igru! O:-)');
  write('Nazhmite enter dlya vuhoda...');
  readln;
end.
NikLik вне форума Ответить с цитированием
Старый 20.03.2010, 14:52   #4
Cause
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от NikLik Посмотреть сообщение
А что именно не понятно?
В цикле читаем число, сравниваем с сгенерированным...
Вот код(написано без использования label'ов), разбирайтесь.
Код:
program randomGame;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  level, maxCount, maxNum, aNum, curCount, curNum: integer;
  name: string;
  answ: char;
  contin: boolean;
begin
//init
  maxCount := 0;
  maxNum := 0;
  contin := false;
//
  writeln('Vvedite imya, poshaluista');
  readln(name);
  writeln('Zdravstvuite, ', name, '! Dobro poshalovat.');
  while (true) do
  begin
    writeln('Viberite uroven sloshnosty:');
    writeln('1 - prosto, 2 popitki, chisla do 5');
    writeln('2 - sredne,5 popitok, do 20');
    writeln('3 - genii, 10 popitok, do 50');
    while (true) do
    begin
      readln(level);
      case level of
        1:
          begin
            maxCount := 2;
            maxNum := 5;
          end;
        2:
          begin
            maxCount := 5;
            maxNum := 20;
          end;
        3:
          begin
            maxCount := 10;
            maxNum := 50;
          end;
      else
        writeln('Nevernuy vvod. Povtorite.');
        continue;
      end;
      break;
    end;
    curCount := 0;
    randomize;
    aNum := random(maxNum) + 1;
    while (curCount < maxCount) do
    begin
      write('Vvedite predpologaemoe chislo: ');
      readln(curNum);
      inc(curCount);
      if (curNum > aNum) then
        writeln('Nepravilno(zagadannoe chislo menshe). U vas ostalos ', maxCount - curCount, ' poputok.')
      else if (curNum < aNum) then
        writeln('Nepravilno(zagadannoe chislo bolshe). U vas ostalos ', maxCount - curCount, ' poputok.')
      else
      begin
        writeln('Vy vyigrali, molodec!');
        break;
      end;
    end;
    if (curCount = maxCount) then
      writeln('Vy proigrali.');
    while (true) do
    begin
      write('Hotite poprobovat esche? [y\n]: ');
      readln(answ);
      case answ of
        'y': contin := true;
        'n': contin := false;
      else
        writeln('Nevernuy vvod. Povtorite.');
        continue;
      end;
      break;
    end;
    if (not contin) then
      break;
  end;
  writeln('Spasibo za igru! O:-)');
  write('Nazhmite enter dlya vuhoda...');
  readln;
end.
Я не уверен ,что это приймут, сказали зделать по этим главам:

Cause вне форума Ответить с цитированием
Старый 20.03.2010, 15:15   #5
Cause
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от NikLik Посмотреть сообщение
А что именно не понятно?
В цикле читаем число, сравниваем с сгенерированным...
Вот код(написано без использования label'ов), разбирайтесь.
Код:
program randomGame;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  level, maxCount, maxNum, aNum, curCount, curNum: integer;
  name: string;
  answ: char;
  contin: boolean;
begin
//init
  maxCount := 0;
  maxNum := 0;
  contin := false;
//
  writeln('Vvedite imya, poshaluista');
  readln(name);
  writeln('Zdravstvuite, ', name, '! Dobro poshalovat.');
  while (true) do
  begin
    writeln('Viberite uroven sloshnosty:');
    writeln('1 - prosto, 2 popitki, chisla do 5');
    writeln('2 - sredne,5 popitok, do 20');
    writeln('3 - genii, 10 popitok, do 50');
    while (true) do
    begin
      readln(level);
      case level of
        1:
          begin
            maxCount := 2;
            maxNum := 5;
          end;
        2:
          begin
            maxCount := 5;
            maxNum := 20;
          end;
        3:
          begin
            maxCount := 10;
            maxNum := 50;
          end;
      else
        writeln('Nevernuy vvod. Povtorite.');
        continue;
      end;
      break;
    end;
    curCount := 0;
    randomize;
    aNum := random(maxNum) + 1;
    while (curCount < maxCount) do
    begin
      write('Vvedite predpologaemoe chislo: ');
      readln(curNum);
      inc(curCount);
      if (curNum > aNum) then
        writeln('Nepravilno(zagadannoe chislo menshe). U vas ostalos ', maxCount - curCount, ' poputok.')
      else if (curNum < aNum) then
        writeln('Nepravilno(zagadannoe chislo bolshe). U vas ostalos ', maxCount - curCount, ' poputok.')
      else
      begin
        writeln('Vy vyigrali, molodec!');
        break;
      end;
    end;
    if (curCount = maxCount) then
      writeln('Vy proigrali.');
    while (true) do
    begin
      write('Hotite poprobovat esche? [y\n]: ');
      readln(answ);
      case answ of
        'y': contin := true;
        'n': contin := false;
      else
        writeln('Nevernuy vvod. Povtorite.');
        continue;
      end;
      break;
    end;
    if (not contin) then
      break;
  end;
  writeln('Spasibo za igru! O:-)');
  write('Nazhmite enter dlya vuhoda...');
  readln;
end.
Слушай, а можеш ещё выложить код анимации,чтобы 2 квадрата двигались по окну и сталкивались иногда
Cause вне форума Ответить с цитированием
Старый 20.03.2010, 17:30   #6
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Цитата:
Сообщение от Cause Посмотреть сообщение
Слушай, а можеш ещё выложить код анимации,чтобы 2 квадрата двигались по окну и сталкивались иногда
К теме не относится.
NikLik вне форума Ответить с цитированием
Старый 20.03.2010, 17:45   #7
Cause
Пользователь
 
Регистрация: 20.03.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от NikLik Посмотреть сообщение
К теме не относится.
ладно создам новую..
Cause вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Игра "Угадай слово" Женишгуль Помощь студентам 4 21.03.2010 03:28
Игра "угадай число" russian-stalker PHP 7 29.01.2010 21:39
"Угадай число" SmelMary Помощь студентам 2 22.10.2009 10:44
Pascal - Игра "Угадай число" d_b Помощь студентам 8 16.02.2009 09:33
[Delphi] Игра "Угадай число" Bomber Помощь студентам 15 05.06.2008 09:34