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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2010, 16:54   #1
valiaam55
Пользователь
 
Регистрация: 01.06.2010
Сообщений: 16
Печаль Игра в слова.

Игра в слова. В файле на диске содержится словарь. Случайным образом из него выбирается слово и выводится на экран. Игроки поочередно вводят с клавиатуры составленные слова. Программа проверяет, не использованы ли лишние буквы при составлении слова и не было ли оно уже введено одним из игроков ранее. В интерфейсе пользователя должна быть использована кнопка «Сдаюсь» одна на двух игроков.
valiaam55 вне форума Ответить с цитированием
Старый 29.09.2010, 17:02   #2
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Ты вопрос забыл задать! =)
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 29.09.2010, 17:02   #3
valiaam55
Пользователь
 
Регистрация: 01.06.2010
Сообщений: 16
По умолчанию

Народ, помогите пожалуйста из за этой программы девчонка стоит на отчислении(( Единственная надежда на вас.

XeruH надо программу составить.

Последний раз редактировалось Stilet; 30.09.2010 в 09:29.
valiaam55 вне форума Ответить с цитированием
Старый 29.09.2010, 18:14   #4
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

без графического интерфейса и без некоторых проверок, но должен работать (хотя не проверял).

Код:
program Game;

const
  DictionaryFileName = 'dictionary.wdc';

var
  f: Text;
  word, playerWord, dir: string;
  allwords, inputedWords: array of string;
  i,c,correctWord, player1words, player2words: Integer;
  gameover: boolean;
  curPlayer: integer;

begin
  randomize;
  GetDir(0,Dir);
  {$I-}
  Assign(f, Dir+'\'+DictionaryFileName);
  Reset(f);
  {$I+}  	{отключить внутреннюю проверку}
  if IOResult <> 0 then
  begin
    Writeln('Файл ', Dir+'\'+DictionaryFileName, ' не найден!. Программа будет закрыта!');
    readln;
    Exit;
  end;
  i:=0;
  while not EOF(f) do
  begin
    readln(f, word);
    if Length(word)>0 then
    begin
      SetLength(allwords, i+1);
      allwords[i]:=word;
      inc(i);
    end;
  end;
  Close(f);

  if i<1 then
  begin
    writeln('Файл ', DictionaryFileName, ' не содержит слов. Программа будет закрыта!');
    readln;
    Exit;
  end;

  c:=0;
  if i=1 then
    c:=1
  else
    c:=random(i);

  word := allwords[c];

  gameover := false;

  writeln('Для выхода напишите слово exit');
  writeln('Слово: ',word);
  curPlayer := 1;
  player1words := 0;
  player2words := 0;
  SetLength(inputedWords, 0);
  while not gameover do
  begin
    correctWord := 0;
    write('Игрок ',curPlayer,' введите ваше слово: ');
    readln(playerWord);

    if playerWord = 'exit' then
    begin
      gameover := true;
      Break;
    end;

    for i:=1 to Length(playerWord) do
      if pos(playerWord[i], word) = 0 then
      begin
        correctWord := 1;
        break;
      end;

    for i:=0 to Length(inputedWords)-1 do
      if inputedWords[i] = playerWord then
      begin
        correctWord := 2;
        break;
      end;

    if correctWord=0 then
    begin
      c:=Length(inputedWords)+1;
      SetLength(inputedWords,c);
      inputedWords[c-1] := playerWord;
      case curPlayer of
        1: begin
             curPlayer := 2;
             inc(player1words);
           end;
        2: begin
             curPlayer := 1;
             inc(player2words);
           end;
      end;
      Continue;
    end else
    begin
      case correctWord of
        1: writeln('Ошибка! Слово содержит символы не встречающие в исходном слове!');
        2: writeln('Ошибка! Данное слово уже использовалось!');
      end;
      Continue;
    end;

  end;

  if player1words > player2words then writeln('Выиграл Игрок 1 у него ', player1words, ' слов против ', player2words, ' слов у Игрока 2');
  if player2words > player1words then writeln('Выиграл Игрок 2 у него ', player2words, ' слов против ', player1words, ' слов у Игрока 1');
  if player1words = player2words then writeln('Ничья у обоих игроков по ', player1words, ' слов');
  writeln('Для выхода нажмите любую клавишу');
  readln;
end.
P$ А если девушка ничего не понимает и учится не на программиста, то лучше пускай заказывает ее за деньги.
Правильно заданный вопрос - половина ответа!

Последний раз редактировалось XeruH; 29.09.2010 в 18:23.
XeruH вне форума Ответить с цитированием
Старый 29.09.2010, 18:28   #5
valiaam55
Пользователь
 
Регистрация: 01.06.2010
Сообщений: 16
Подмигивание

XeruH, спасибо тебе огромное, я ей передам твои слова, да и надеюсь она сама это поняла.
valiaam55 вне форума Ответить с цитированием
Старый 29.09.2010, 20:31   #6
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

Не за что! Но почитать книжки советую. Хотя б для того чтоб понимать что тут делается. А то мало ли, вдруг преподаватель попросит рассказать.
Правильно заданный вопрос - половина ответа!
XeruH вне форума Ответить с цитированием
Старый 29.09.2010, 21:16   #7
valiaam55
Пользователь
 
Регистрация: 01.06.2010
Сообщений: 16
По умолчанию

надеюсь, что она за эту ночь что нибудь поймет. У нее завтра последний день, когда можно будет сдать.
valiaam55 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разбить текст на слова и произвести поиск каждого слова по текстовому массиву Burning_brook Microsoft Office Excel 2 22.05.2010 01:56
Игра в слова-города на С++ Styks Фриланс 7 26.11.2009 21:46
СИ. Удалить слова, которые содержат все повторяющиеся буквы первого слова nick23 Помощь студентам 7 01.11.2009 14:47
Игра в слова на С++ Styks Помощь студентам 1 22.09.2009 01:22
Delphi. Задачка. Игра в слова bape Фриланс 8 23.01.2009 15:16