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

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

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

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

11.05.2010, 22:08. Просмотров 556. Ответов 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++
Ну, правила игры таковы: - если клетка пустая но имеет ровно 3 соседа (вообще их 8), там появляется жизнь. - если клетка полная, но там...

игра в города - C++
помогите плз. очень нужно написать компилятор, который открывает текстовый файл , в котором в случайном порядке написаны города, и...

Игра reversi - C++
Здорова! Тут новую задачку решаю, там нужно написать игру reversi. Ну я так поиграл в нее чуток....

Сетевая игра - C++
Хочу сделать, на пример, крестики-нолики, в которые смогут играть 2 пользователя через интернет или по Wi-Fi. Но я не знаю откуда начать...

Игра Арканоид - C++
Добрый день дорогие кибер форучане, сделал попытку написать игру арканоид, вроде вот и получилось, но вот незадача, выйглядит это как то...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
talis
791 / 543 / 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
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
11.05.2010, 22:56     Игра с числами. #4
Если компьютерный игрок может знать максимальное число и своё количество баллов, и вы хотите сделать его непобудимым, то пусть прибавляет 9, пока limit < 9, а затем прибавит limit - score[current_Player].
Mr.X
Эксперт С++
3048 / 1693 / 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
1154 / 959 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
12.05.2010, 09:02     Игра с числами. #7
Mr.X,
Т.е. если первым будет ходить компьютер, то он всегда выиграет.
Я понимаю, ты болеешь за компутер, но увы, это не всегда так.
Простейший пример: N=20, n=10, ход компутера.
Т.е. начальное положение уже с инциативой человека.
А так - все правильно
Mr.X
Эксперт С++
3048 / 1693 / 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     Игра с числами.
Еще ссылки по теме:

Игра Наперстки - C++
Срочно!! Помогите ребят чем сможете, необходимо сделать игру &quot; Наперстки&quot; на C++

Игра в города - C++
Несколько (2-15) игроков по очереди вводят строки. Основное правило, чтобы первый символ очередной строки был равен последнему из...

Игра в кости - C++
НУжно написать на C++ игру в кости,консольную,с использованием генератора случайных чисел. т.е есть два игрока один бросает генерируеца...

игра галактика - C++
здравствуйте!Решил написать игру галактика(в консоле).Подскажите примерный алгоритм написания(раньше игры в консоле не писал)

Консольная игра в 21 - 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     Игра с числами.
Ответ Создать тему
Опции темы

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