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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
enginegl
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 6
#1

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

11.05.2010, 22:08. Просмотров 510. Ответов 8
Метки нет (Все метки)

Вот задача:
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++ Игра на C++
C++ Игра на C++
C++ игра змейка
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
3021 / 1677 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
11.05.2010, 23:45     Игра с числами. #5
Здесь выигрышную стратегию имеет игрок, который делает первый ход. Ему на первом ходе надо прибавить столько, чтобы получилось число на целое число десятков меньшее N. Далее на каждом ходе дополнять ход соперника до десяти. Если на каком-то ходе он этого не сделал, то инициативу может перехватить другой игрок.
Т.е. если первым будет ходить компьютер, то он всегда выиграет.
enginegl
0 / 0 / 0
Регистрация: 11.01.2010
Сообщений: 6
12.05.2010, 07:46  [ТС]     Игра с числами. #6
Спасибо огромное!
Суть уловил, сегодня вечером напишу.
Day
 Аватар для Day
1152 / 957 / 57
Регистрация: 29.10.2009
Сообщений: 1,384
12.05.2010, 09:02     Игра с числами. #7
Mr.X,
Т.е. если первым будет ходить компьютер, то он всегда выиграет.
Я понимаю, ты болеешь за компутер, но увы, это не всегда так.
Простейший пример: N=20, n=10, ход компутера.
Т.е. начальное положение уже с инциативой человека.
А так - все правильно
Mr.X
Эксперт С++
 Аватар для Mr.X
3021 / 1677 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
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++
Игра 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     Игра с числами.
Ответ Создать тему
Опции темы

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