B0ndyara
Сообщений: 198
Оценки: 0
Присоединился: 2009-08-22 20:54:55.830000
|
Стоит хадача написать программу, играющую в Интернете в Сапера. Написал алгоритм расчета вероятностей нахождения мин в закрытых полях. Алгоритм не свовершенен, в некоторых случаях возникают ошибки. Алгоритм: За основу взял: Так как сумма всех вероятностей равна кол-ву мин… 1) Ячейки вокруг подсказок Проверяем все ячейки, если ячейка открыта (с подсказкой о кол-ве мин - КолМинВокруг) считаем сколько закрытых ячеек вокруг (КолНеизвЯч) в которых еще не расчитана вероятность. Суммируем вероятность в уже расчитанных ячейках (на основе других подсказок) - СуммИзвестВероятн. Тогда вероятность в каждой неизвестной вокруг данной: Вер = (КолМинВокруг - СуммИзвестВероятн) / КолНеизвЯч 2) Остальные ячейки Сканируем опять. Считаем сколько осталось закрытых ячеек в которых не расчитана вероятность (КолНеизвЯч). Суммируем вероятность в расчитанных ячейках (ОбщСуммВер). Тогда вероятность в каждой неизвестной ячейке: Вер = (КолМинНаПоле - ОбщСуммВер) / КолНеизвЯч Второй пункт работает нормально. В первом в некоторых ситуациях возникают ошибки. У кого какие мысли?
|