Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 07.06.2012
Сообщений: 27
1

Разработать программу для игры «Угадывание слова»

10.04.2014, 02:16. Показов 2802. Ответов 23
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Слова для угадывания хранятся в файле. Предусмотреть подсчет числа попыток и ограничить их количество. Программа должна работать в режиме «человек-машина» и «машина-человек».
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.04.2014, 02:16
Ответы с готовыми решениями:

Разработать программу для игры «Угадывание слова»
Слова для угадывания хранятся в файле. Предусмотреть подсчет числа попыток и ограничить их...

Разработать программу для игры «Жизнь»
3. Разработать программу для игры «Жизнь». Игра моделирует жизнь поколений гипотетической колонии...

Разработать программу для игры в морской бой
Уважаемые коллеги!!!! помогите пожалуйста с этой задачей!! буду очень благодарна!!!! Разработать...

Разработать программу для игры "Ним"
очень прошу, помогите, пожалуйста, разработать программу для игры «Ним».В игре используются спички,...

23
Модератор
Эксперт функциональных языков программированияЭксперт Python
37302 / 20736 / 4272
Регистрация: 12.02.2012
Сообщений: 34,126
Записей в блоге: 14
10.04.2014, 11:17 2
Угадывание выполняется простым перебором?

Файл base.txt

Код
кошка
мышка
жучка
внучка
бабка
дедка
репка
Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
(defun task-1 (fname att)
  (let ((fi (gensym 'fi))
        (base nil)
        (word nil))
    (filOpen fi fname _INPUT)
    (loop
      (when (filEOF fi) (return t))
      (push (input (filGetLine fi)) base))
    (filClose fi)
    (dotimes (a att 'Число_попыток_исчерпано)
      (printsline "Введите слово")
      (setq word (read))
      (when (member word base) (return 'Угадали!)))))
      
==> task-1
 
(task-1 "base.txt" 3)
 
Введите слово
собака
Введите слово
машина
Введите слово
кошка
 
==> Угадали!
 
(task-1 "base.txt" 3)
 
Введите слово
корабль
Введите слово
автомобиль
Введите слово
компьютер
 
==> Число_попыток_исчерпано
3
3 / 3 / 0
Регистрация: 15.06.2014
Сообщений: 8
15.06.2014, 14:48 3
допустим у нас есть слова
1 строчка: "кошка",
2 строчка: "мышка",
3 строчка: "паук"
когда мы первый раз вызываем функцию, правильный ответ должен быть "кошка", а не мышка или паук
когда мы второй раз вызываем функцию, ответ должен быть "мышка", а не остальные слова
как такое можно сделать?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37302 / 20736 / 4272
Регистрация: 12.02.2012
Сообщений: 34,126
Записей в блоге: 14
15.06.2014, 21:50 4
Вот так (с замыканием):

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
(let ((c 0)) 
   (defun next-c nil (setq c (+ c 1)))
   (defun reset-c nil (setq c 0)))
 
(defun task-1 (fname att)
  (let ((fi (gensym 'fi))
        (base nil)
        (word nil)
        (k 0)
        (p (next-c)))
    (filOpen fi fname _INPUT)
    (loop
      (when (filEOF fi) (reset-c) (setq k 0 p (next-c)) (filClose fi) (filOpen fi fname _INPUT))
      (setq base (input (filGetLine fi)) k (+ 1 k))
      (when (= k p) (return t)))
    (filClose fi)
    (dotimes (a att 'Число_попыток_исчерпано)
      (printsline "Введите слово")
      (setq word (read))
      (when (eq word base) (return 'Угадали!)))))
Входной файл wds.txt

Код
бабка
дедка
внучка
жучка
кошка
мышка
репка
Запуск:

Lisp
1
(task-1 "wds.txt" Число_попыток)
3
0 / 0 / 0
Регистрация: 07.06.2012
Сообщений: 27
17.06.2014, 18:25  [ТС] 5
Что это значит ... после запуска программы выдает , что часть входного выражения игнорируется
Миниатюры
Разработать программу для игры «Угадывание слова»  
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37302 / 20736 / 4272
Регистрация: 12.02.2012
Сообщений: 34,126
Записей в блоге: 14
17.06.2014, 20:17 6
Это вот что: сначала нужно ввести (let ***), а потом определение task-1
0
3 / 3 / 0
Регистрация: 15.06.2014
Сообщений: 8
11.07.2014, 14:52 7
подскажите пожалуйста можно ли сделать так, что бы в 1-ой строке был вопрос, во 2-ой строке ответ на этот вопрос, и чтоб в документе было примерно 5-10 вопросов? И как можно интерфейс сделать?
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37302 / 20736 / 4272
Регистрация: 12.02.2012
Сообщений: 34,126
Записей в блоге: 14
11.07.2014, 15:16 8
В файл можно занести сколько угодно строк, а число попыток задается при запуске (2-й параметр).
0
3 / 3 / 0
Регистрация: 15.06.2014
Сообщений: 8
19.08.2014, 11:10 9
если с замыканием делать, то при первом и последующих вызовах функции отгадывается одно и тоже слово, а хотелось что бы слова шли по списку (может у меня что то не то) или может это все можно объединить т.е. если он угадал первое слово, то тогда игрок начинает отгадывать второе слово, а если он первое не угадал конец игры
0
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 3
01.09.2014, 17:48 10
как увеличить количество попыток и ,например, на каждой третьей попытке выдавать подсказку (напр. случайную букву из заданного слова). Когда слово отгадано - выдавать информацию о том с какого раза оно угадано???????
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37302 / 20736 / 4272
Регистрация: 12.02.2012
Сообщений: 34,126
Записей в блоге: 14
01.09.2014, 20:06 11
Цитата Сообщение от Владимир798546 Посмотреть сообщение
как увеличить количество попыток
- у функции task-1 второй параметр это и есть число попыток.

Добавлено через 13 минут
Вот:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
(let ((c 0)) 
   (defun next-c nil (setq c (+ c 1)))
   (defun reset-c nil (setq c 0)))
 
 
==> reset-c
(defun task-1 (fname att)
  (let ((fi (gensym 'fi))
        (base nil)
        (word nil)
        (k 0)
        (p (next-c))
        (ccc 0)
        (lb  0))
    (filOpen fi fname _INPUT)
    (loop
      (when (filEOF fi) (reset-c) (setq k 0 p (next-c)) (filClose fi) (filOpen fi fname _INPUT))
      (setq base (input (filGetLine fi)) k (+ 1 k))
      (when (= k p) (return t)))
    (filClose fi)
    (dotimes (a att 'Число_попыток_исчерпано)
      (setq ccc (+ 1 ccc))
      (printsline "Введите слово")
      (setq word (read))
      (when (eq word base) (return (strCat "Угадали c " (fix2str ccc) "-й попытки")))
      (when (zerop (% ccc 3))
        (let* ((lll (explode base)))
               (prints "В слове есть буква ")
               (printline (nth (rnd (length lll)) lll)))))))
 
==> task-1
 
(task-1 "wds.txt" 10)
 
Введите слово
yuyu
Введите слово
lklkl
Введите слово
aaaas
В слове есть буква а
Введите слово
xxx
Введите слово
c
Введите слово
vvvvv
В слове есть буква а
Введите слово
бабка
 
==> "Угадали c 7-й попытки"
2
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 3
01.09.2014, 20:21 12
ввел код, который вы прислали, выдает
==> task-1

(task-1 "wds.txt" 7)
Введите слово
дерево
Введите слово
слива
Введите слово
дом
В слове есть буква
Внутри LET: Внутри LET: EVFUN: Не найдена функция NTH
==> ERRSTATE
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37302 / 20736 / 4272
Регистрация: 12.02.2012
Сообщений: 34,126
Записей в блоге: 14
01.09.2014, 20:38 13
В этой нити лежит последняя версия ядра (а ниже - последняя версия библиотеки). Замени - заработает.

Другой вариант - введи функцию nth:

Lisp
1
2
3
4
(DEFUN nth (n lst) 
    (COND ((= n 0) (CAR lst)) 
              ((NULL lst) NIL) 
              (T (nth (- n 1) (CDR lst)))))
и перезапусти.
1
0 / 0 / 0
Регистрация: 01.09.2014
Сообщений: 3
01.09.2014, 20:46 14
отлично, все получилось, спасибо!
0
0 / 0 / 0
Регистрация: 20.09.2014
Сообщений: 9
20.09.2014, 15:52 15
подскажите пожалуйст ,какая будет блок схема к этой программе

\
0
0 / 0 / 0
Регистрация: 20.09.2014
Сообщений: 9
20.09.2014, 16:11 16
к ней
Миниатюры
Разработать программу для игры «Угадывание слова»  
0
3 / 3 / 0
Регистрация: 15.06.2014
Сообщений: 8
20.09.2014, 22:22 17
Anko, это уже можно и самим подумать)))
0
0 / 0 / 0
Регистрация: 20.09.2014
Сообщений: 9
20.09.2014, 23:12 18
не получается, так что очень нужна помощь (((
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
37302 / 20736 / 4272
Регистрация: 12.02.2012
Сообщений: 34,126
Записей в блоге: 14
21.09.2014, 09:28 19
Цитата Сообщение от Anko Посмотреть сообщение
какая будет блок схема к этой программе
- не рисую блок-схем, т.к. считаю их анахронизмом.
0
0 / 0 / 0
Регистрация: 20.09.2014
Сообщений: 9
21.09.2014, 15:07 20
Не могли бы вы рассказать последовательность действий вашей программы
0
21.09.2014, 15:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2014, 15:07
Помогаю со студенческими работами здесь

Разработать программу для игры "Калах"
Пожалуйста, помогите реализовать а Лиспе алгоритм игры "калах". В калах играют на доске с двумя...

Разработать иерархию не менее 2 классов, и программу Разработать программу для реализации игры пятнашки. Разработать 2-3
Составить описание класса многочленов от одной переменной, задаваемых степенью многочлена и...

Разработать игровую программу - угадывание символов
Разработать игровую программу. В ее основу положить следующее правило игры. В игре участвуют два...

Разработать программу для определения кратчайшего слова в тексте
Разработать программу для определения кратчайшего слова в тексте.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru