Форум программистов, компьютерный форум CyberForum.ru

Игра с числами. - C++

Восстановить пароль Регистрация
 
enginegl
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 6
11.05.2010, 22:08     Игра с числами. #1
Вот задача:
2 игрока. Игра начинается с числа n. За один ход к имеющемуся числу прибавляется любое от 1 до 9. Выигрывает тот, кто получит N. Числа n и N задаются в начале игры случайно (N>n).

Понятно, что в начале строить дерево с пометками - не вариант, слишком большое получится.
Подскажите, пожалуйста, идею или алгоритм..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2010, 22:08     Игра с числами.
Посмотрите здесь:

C++ Игра
Игра на С++ C++
C++ игра (с++)
C++ Игра слов, игра Scrabble
C++ Игра
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.05.2010, 22:15     Игра с числами. #2
Дерево с пометками? Зачем?!

Создайте массив int, скажем, score, из двух элементов. В нём будут храниться очки игроков.
В каждый из элементов впишите случайно сгенерированное n. Создайте int limit, который будет хранить целевое число. Сгенерируйте туда это число. Генерируйте, пока limit не станет больше n.
Создайте bool currentPlayer, который будет хранить номер текущего игрока.

Затем в цикле:
Введите число от 1 до 9.
Прибавьте его в score[currentPlayer].
Проверьте значение score[currentPlayer], если оно равно или больше limit, выйдите из цикла
currentPlayer = !currentPlayer; - выберите другого игрока
И снова также.

Если score[currentPlayer] равно limit, выведите, что игрок №currentPlayer выиграл (на нём же прервался цикл). Иначе напишите, что выиграл другой игрок.

В общем так.
enginegl
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 6
11.05.2010, 22:18  [ТС]     Игра с числами. #3
Спасибо.
Но как реализовать искусственный интеллект (игра "человек - компьютер"), который ищет выигрышную стратегию игры? В этом и проблема..
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.05.2010, 22:56     Игра с числами. #4
Если компьютерный игрок может знать максимальное число и своё количество баллов, и вы хотите сделать его непобудимым, то пусть прибавляет 9, пока limit < 9, а затем прибавит limit - score[current_Player].
Mr.X
Эксперт С++
 Аватар для Mr.X
2801 / 1577 / 247
Регистрация: 03.05.2010
Сообщений: 3,662
11.05.2010, 23:45     Игра с числами. #5
Здесь выигрышную стратегию имеет игрок, который делает первый ход. Ему на первом ходе надо прибавить столько, чтобы получилось число на целое число десятков меньшее N. Далее на каждом ходе дополнять ход соперника до десяти. Если на каком-то ходе он этого не сделал, то инициативу может перехватить другой игрок.
Т.е. если первым будет ходить компьютер, то он всегда выиграет.
enginegl
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 6
12.05.2010, 07:46  [ТС]     Игра с числами. #6
Спасибо огромное!
Суть уловил, сегодня вечером напишу.
Day
 Аватар для Day
1149 / 954 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
12.05.2010, 09:02     Игра с числами. #7
Mr.X,
Т.е. если первым будет ходить компьютер, то он всегда выиграет.
Я понимаю, ты болеешь за компутер, но увы, это не всегда так.
Простейший пример: N=20, n=10, ход компутера.
Т.е. начальное положение уже с инциативой человека.
А так - все правильно
Mr.X
Эксперт С++
 Аватар для Mr.X
2801 / 1577 / 247
Регистрация: 03.05.2010
Сообщений: 3,662
12.05.2010, 10:28     Игра с числами. #8
Цитата Сообщение от Day Посмотреть сообщение
Mr.X
Простейший пример: N=20, n=10, ход компутера.
Т.е. начальное положение уже с инциативой человека.
А, да, дополнение существенное.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.05.2010, 10:48     Игра с числами.
Еще ссылки по теме:

2Д-игра C++
C++ Найти все натуральные числа меньше N, которые одновременно являются числами Фибоначчи и простыми числами.
C++ Игра

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

Или воспользуйтесь поиском по форуму:
enginegl
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 6
12.05.2010, 10:48  [ТС]     Игра с числами. #9
{
...
if((N-n)%10==0)
{
printf("\nYou Win\n");
return;
}


При безошибочной игре человека, конечно
Yandex
Объявления
12.05.2010, 10:48     Игра с числами.
Ответ Создать тему
Опции темы

Текущее время: 04:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru