2 / 2 / 2
Регистрация: 09.11.2013
Сообщений: 16

Определить наибольшее количество шашек которое можно съесть за ход

09.11.2013, 20:04. Показов 3710. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер, пожалуйста помогите написать программу ,что бы определить наибольшее количество шашек которое можно съесть за ход.
Конкретно дан входной файл в котором первая строка число N- далее как бы доска NXN
вот пример
7
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 0
0 0 2 0 0 0 0 0
0 1 0 1 0 0 0 0
0 0 0 0 0 0 0 0
0 1 0 1 0 1 0 0
0 0 0 0 0 0 0 0

2-наша шашка
1-чужие шашки
0-пустые клетки

Я начал ,но все мои идеи заходят в тупик
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Dim f(999, 999) As String
s = 1
Open "input.txt" For Input As #1
Line Input #1, p
For i = 1 To p
Line Input #1, x
s = 1
For n = 1 To p
If Mid(x, s, 1) = "1" Then raz = raz + 1
f(i, n) = Mid(x, s, 1)
If Mid(x, s, 1) = "2" Then vert = i: gor = n
s = s + 2
Next n
Next i
Close #1
до этого я считываю файл в двумерный массив далее надо определить куда ходить .
Пожалуйста помогите.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.11.2013, 20:04
Ответы с готовыми решениями:

Определить максимальное суммарное количество пирожков, которое может съесть Ваня
Ваня Пирожков очень любит пирожки с картошкой и с капустой. Один пирожок с картошкой он съедает за N мс, а с капустой – за M мс. У него...

Определить наибольшее количество пар, которое можно составить из игроков требуемым образом, и вывести эти пары.
Сколько не ломал голову не могу и всё В соревнованиях по бадминтону участвуют n игроков. Каждый игрок имеет свой индивидуальный номер -...

Определить порядковый номер числа в последовательности, которое содержит наибольшее количество цифр
2. Дана последовательность чисел. Определить порядковый номер числа, которое содержит наибольшее количество цифр.

30
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
09.11.2013, 21:49
В принципе интересная задачка!
Надо же учесть, что шашка может зайти в дамки и после этого у неё изменится алгоритм поиска возможных ходов!
А так, по большому счёту, просчитать все варианты и выбрать лучший.
И притом, думаю, с рекурсией будет красивее
0
2 / 2 / 2
Регистрация: 09.11.2013
Сообщений: 16
10.11.2013, 18:54  [ТС]
Цитата Сообщение от Alex77755 Посмотреть сообщение
В принципе интересная задачка!
Надо же учесть, что шашка может зайти в дамки и после этого у неё изменится алгоритм поиска возможных ходов!
А так, по большому счёту, просчитать все варианты и выбрать лучший.
И притом, думаю, с рекурсией будет красивее
Я понимаю ,что нужна рекурсия ,но у меня не получаеться организовать сохранение предыдущих вариантов что из них вытекали последующие.
0
Заблокирован
10.11.2013, 19:31
Я обычно использую в рекурсиях
счетчик вызовов, обычно пишу прям в параметрах
и мне всегда понятно какая копия процедуры выполняется

Добавлено через 6 минут
Visual Basic
1
2
3
4
Sub myPrim(optional ChVz&)
 
 if ChVz<10 then myPrim ChVz+1
end sub
Добавлено через 7 минут
таким способом можно построить
многоуровневые многоходовые операции
там помоему допустимое значение для создание очередной копии около 6450
тоесть на столько ходов можно организовать работу
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
10.11.2013, 19:36
Цитата Сообщение от lengrab Посмотреть сообщение
Я понимаю ,что нужна рекурсия ,но у меня не получаеться организовать сохранение предыдущих вариантов что из них вытекали последующие.
Создавай локальный массив, и в него копируй который передаешь в качестве параметра.
0
Заблокирован
10.11.2013, 19:48
Цитата Сообщение от The trick Посмотреть сообщение
Создавай локальный массив
Да объяви массив данных на уровне модуля для хранения промежуточных данных
64*64(клетки)=4096 в принципе хватает для рекурсии...

Добавлено через 7 минут
The trick привет !!!
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
10.11.2013, 19:48
Цитата Сообщение от JoraVoenyjHaker Посмотреть сообщение
Да объяви массив данных на уровне модуля для хранения промежуточных данных
64*64(клетки)=4096 в принципе хватает для рекурсии...
Задача простая, сохранять предыдущее состояние и просчитывать в нем 4 хода, и т.д.

Добавлено через 27 секунд
JoraVoenyjHaker, Привет!
1
Заблокирован
10.11.2013, 20:01
8*8 это 64 клетки
а количество вероятных состояний тоже 64
иначе любой школьник обыграет такой комп
у каторого только 4 хода в уме )))

Добавлено через 3 минуты
вернее для шашек надо 4*4
они же только по чёрным клеткам ходят )))

Добавлено через 2 минуты
последний раз я в шашки играл в пионер лагере с вожаткой
и то в чипая...
0
2 / 2 / 2
Регистрация: 09.11.2013
Сообщений: 16
10.11.2013, 20:06  [ТС]
Цитата Сообщение от The trick Посмотреть сообщение
Задача простая, сохранять предыдущее состояние и просчитывать в нем 4 хода, и т.д.
Это хорошо ,но можешь код набрасать?)
Просто я уже пробовал так сделать,но у меня не вышло.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
10.11.2013, 20:06
Цитата Сообщение от JoraVoenyjHaker Посмотреть сообщение
иначе любой школьник обыграет такой комп
у каторого только 4 хода в уме )))
За один просчет - один ход, шашка может сделать 4 хода, 2 - вперед и если сзади нее враги и есть куда идти то еще + 2 (также нужно учитывать свободу на краях и если это дамка, то еще и шаги) - это уже отдельная ветвь и ее надо продумывать пока можно убить шашку.
0
Заблокирован
10.11.2013, 20:09
А если мухлевать )))
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
10.11.2013, 20:10
Цитата Сообщение от lengrab Посмотреть сообщение
Это хорошо ,но можешь код набрасать?)
Просто я уже пробовал так сделать,но у меня не вышло.
Если никто не поможет, позже набросаю, сейчас нет под рукой VB
0
Заблокирован
10.11.2013, 20:16
массив Kletki( 1 to 32, 1 to 4 )

32 шашки
4 возможных состояния так ?
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
10.11.2013, 20:20
Т.к. за одину итерацию мы не можем уничтожить больше одной шашки, то можно и вовсе не хранить состояние всех клеток, а только измененной. Это будет намного быстрей работать.
0
Заблокирован
10.11.2013, 20:26
Добавлено через 2 минуты
Цитата Сообщение от JoraVoenyjHaker Посмотреть сообщение
32
вернее не 32 а 24
не поленился посмотрел в википедии
12 черных
12 белых

Добавлено через 2 минуты
массив Kletki( 1 to 24, 1 to 2 )
2 состояния в массиве на уровне процедуры ?
0
2 / 2 / 2
Регистрация: 09.11.2013
Сообщений: 16
10.11.2013, 20:30  [ТС]
Забыл сказать что дамка учитывать не надо=)
0
Заблокирован
10.11.2013, 20:31
вот именно что дамка резко увеличивает число состояний
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
10.11.2013, 20:35
Цитата Сообщение от JoraVoenyjHaker Посмотреть сообщение
вот именно что дамка резко увеличивает число состояний
Шашка по-прежнему может только в 4-х направлениях ходить, только на разные дистанции.
0
Заблокирован
10.11.2013, 20:55
У меня схема примерно нарисовалась, пришлось
вспомнить правила игры
там вообще небольшой код получится если правильно организовать рекурсию
и массив

Добавлено через 9 минут
Kletki( 1 to 24, 1 to 4 )
или Kletki( 23,3 )

Добавлено через 2 минуты
массив на уровне процедуры
+счетчик ходов если ему надо получить число

Добавлено через 6 минут
Всё медаль мне пора довать )))
0
 Аватар для Alex77755
11525 / 3812 / 683
Регистрация: 13.02.2009
Сообщений: 11,229
11.11.2013, 09:45
В качестве параметра в процедуру, я думаю, можно передавать адрес поля, с которого необходимо начинать проверку, и агрумент пешка-дамка для изменения параметров проверки нахождения на линии боя шашек противника и пустых клеток за ними.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.11.2013, 09:45
Помогаю со студенческими работами здесь

Определить множество, которое содержит наибольшее количество элементов, которые есть в других множествах
Дано N множеств. Определить множество, которое содержит наибольшее количество элементов, которые есть в других множествах.

Определить количество различных чисел, которое можно составить из цифр данного числа
Вводится трёхзначное число. Определить количество различных чисел, которое можно составить из цифр данного числа (цифру нельзя...

Определить минимальное количество корректных отрезков, на которое можно разбить заданную последовательность.
Известно, что если сохранить в каждом слове текста первую и последнюю букву, а остальные переставить произвольным образом, получившийся...

Наибольшее кол-во обуви, которое можно одеть одновременно
В обувном магазине продается обувь разного размера. Известно, что одну пару обуви можно надеть на другую, если она хотя бы на три размера...

Наибольшее число, которое можно записать в переменную типа int
Доброго времени суток! Есть функция, вычисляющая значения ряда Фибоначчи: typedef vector&lt; int &gt; fibonachiSequence; ... ...


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

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

Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru