Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lisp
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Dascha25
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 12
1

Программа для игры «Быки и коровы»

08.04.2014, 20:51. Просмотров 1065. Ответов 6
Метки нет (Все метки)

Требуется угадать случайное четырехзначное число. Называются пробные цифры. Если цифра по значению и позиции совпала с цифрой в исходном числе, то эта цифра – «корова». Если же цифра совпала по значению, но не совпала по позиции с цифрой в исходном числе, то эта цифра – «бык». Программа должна работать в режиме «человек-машина» и «машина-человек».
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2014, 20:51
Ответы с готовыми решениями:

Алгоритм игры Быки -коровы в С++
сложно ли реализовать алгоритм игры Быки -коровы в С++

Не работает код игры быки и коровы
Добрый день. У меня 8 винда и vb6, код игры быки и коровы, размещенный на вашем сайте не идет(...

Написать исходник игры Быки и Коровы
Условия вроде такие: комп загадывает число (4 знака), а человек пытается отгадать. Но человек...

Нужно сделать алгоритм для игры "Быки и Коровы"
Нужно чтобы я загадал число, и программа угадывала.

Задача про вектор для игры "Быки и коровы"
Задача из книги Страуструпа, вот условие : программа должна хранить вектор из четырех различных...

6
Catstail
Модератор
25015 / 12721 / 2333
Регистрация: 12.02.2012
Сообщений: 20,706
08.04.2014, 21:54 2
Очень минималистский вариант игры с машиной (когда загадывает машина). Ввод -1 - человеку надоело... (HomeLisp)


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
(defun digList (n)
  (if (< n 10) (list n) (append (digList (\ n 10)) (list (% n 10))))) 
 
(defun get-cow (l1 l2)
  (cond ((null l1) 0)
        ((= (car l1) (car l2)) (+ 1 (get-cow (cdr l1) (cdr l2))))
        (t (get-cow (cdr l1) (cdr l2)))))
        
(defun get-bull-cow (n1 n2)
  (let* ((l1 (digList n1))
         (l2 (digList n2)) 
         (c (get-cow l1 l2))        
         (b (- (length (intersection l1 l2)) c)))
        (list b c))) 
  
(defun bull&cow nil
  (let ((secr (rnd 9999)) (curr 0) (chk nil))
    (loop
      (printsline "Ваш ход")
      (setq curr (read))
      (when (= curr -1) (return secr))
      (setq chk (get-bull-cow secr curr))
      (if (= 4 (cadr chk)) (return 'ok!) (printline chk)))))
 
(bull&cow)
Ваш ход
1234
(0 0) ;; 0 быков 0 коров
Ваш ход
5678
(0 1) ;; 0 быков 1 корова
Ваш ход
6789
(3 0) ;; 3 быка 0 коров
Ваш ход
9967 
(0 2) ;; 0 быков 2 коровы
Ваш ход
-1 ;; надоело...
==> 9908 ;; было загадано машиной
3
transformator.t
defun
598 / 612 / 44
Регистрация: 30.04.2011
Сообщений: 701
08.04.2014, 21:56 3
даша просто кю
0
Catstail
08.04.2014, 21:59
  #4

Не по теме:

transformator.t, что такое "кю"? Боюсь искать сам, а то будет как с hardCore

0
transformator.t
08.04.2014, 22:03
  #5

Не по теме:

Планета, Плюк:
Кю — допустимое в обществе ругательство. «Кин-дза-дза» :)

даша за прошлую тему не выразила ни одной благодарности..:(

0
Catstail
Модератор
25015 / 12721 / 2333
Регистрация: 12.02.2012
Сообщений: 20,706
09.04.2014, 10:43 6
Улучшенный вариант (в котором не допускается повторения цифр):

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
(defun digList (n)
  (if (< n 10) (list n) (append (digList (\ n 10)) (list (% n 10))))) 
 
(defun get-cow (l1 l2)
  (cond ((null l1) 0)
        ((= (car l1) (car l2)) (+ 1 (get-cow (cdr l1) (cdr l2))))
        (t (get-cow (cdr l1) (cdr l2)))))
        
(defun get-bull-cow (n1 n2)
  (let* ((l1 (digList n1))
         (l2 (digList n2)) 
         (c (get-cow l1 l2))        
         (b (- (length (intersection l1 l2)) c)))
        (list b c))) 
  
(defun generate nil
  (let ((res nil) (s 0))
    (loop 
       (when (= 4 (length res)) (return (reduce #'(lambda (a x) (+ x (* a 10))) res :initial-value 0)))
       (setq s (rnd 9))
       (unless (member s res) (push s res)))))
  
(defun bull&cow nil
  (let ((secr (generate)) (curr 0) (chk nil))
    (loop
      (printsline "Ваш ход")(terpri)
      (setq curr (read))
      (when (= curr -1) (return secr))
      (setq chk (get-bull-cow secr curr))
      (if (= 4 (cadr chk)) (return 'ok!) (printline chk)))))
3
Lambdik
1044 / 938 / 107
Регистрация: 04.11.2012
Сообщений: 971
Записей в блоге: 3
09.04.2014, 11:31 7
Сейчас сыграю:
Кликните здесь для просмотра всего текста

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
(bull&cow)
Ваш ход
 
1234
(2 0)
Ваш ход
 
1111
(0 1)
Ваш ход
 
1333
(1 1)
Ваш ход
 
5555
(0 1)
Ваш ход
 
2222
(0 0)
Ваш ход
 
1222
(1 0)
Ваш ход
 
2122
(0 1)
Ваш ход
 
3222
(1 0)
Ваш ход
 
2232
(1 0)
Ваш ход
 
2223
(0 1)
Ваш ход
 
5222
(1 0)
Ваш ход
 
2252
(0 1)
Ваш ход
 
4153
(0 3)
Ваш ход
 
6153
(0 3)
Ваш ход
 
7153
(0 3)
Ваш ход
 
8153
 
==> ok!

Задания у ТС какие-то сложные)
2
09.04.2014, 11:31
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.04.2014, 11:31

составить программу для игры "коровы и быки"
Помогите пожалуйста решить срочно надо:составить программу для игры &quot;коровы и быки&quot;.Программа...

Составить программу для игры "коровы и быки"
программа выбирает следующим образом 4-х значное число с разными цифрами.нужно угадать это число.на...

Функция для игры "быки и коровы"
Помогите составить код для С++, для раздела Функции. сама задача Компьютер задумывает...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.