Добрый день
Недавно понадобилось мне написать одну простую программку. Суть программы - угадай слово по буквам. Игрок вводит буквы, программа показывает, угадал ли игрок букву или нет. Если угадал показывает, где именно располагается буква, если нет выводит сообщение об ошибке. Если ошибок более 3, игрок проигрывает, если слово угадано - выигрывает.
Казалось бы алгоритм должен быть простой. Я решил задачу в лоб, на все ушло полчаса времени. Однако, когда я решил набросать алгоритм программы, то понял, что вариантов решения несколько. На этих схемах я начертил 4 варианта. Один из них реализован. Все они плохие, это кстати стало очевидно сразу после того, как я их нарисовал. Вспоминая указания языка ДРАКОН пробовал переделать схему, но похоже ничего толкового не получилось. Подскажите оптимальную схему ?
Сам я недавно начал изучать ДРАКОН и поэтому пока нахожусь в затруднении.
Ссылки на мои схемы
https://docs.google.com/drawings/d/1-Wb ... sp=sharinghttps://docs.google.com/drawings/d/1TBy ... sp=sharinghttps://docs.google.com/drawings/d/1hwR ... sp=sharinghttps://docs.google.com/drawings/d/1dGA ... sp=sharingДва вывода, которые я сделал из этого кейса.
1. Есть оптимальные и неоптимальные алгоритмы. В классификации языка ДРАКОН, эргономические алгоритмы и нет.
В данном случае эргономичность - это понятность алгоритма. Видимо существует самый понятный алгоритм и именно
его имеет смысл реализовывать. Жаль, что в данном случае мы не можем измерить эту эргономичность как-либо, ибо для вычислительных алгоритмов есть объективный показатель - скорость работы. А тут мне кажется характеристика все же более субъективная.
2. Однозначно есть понятие алгоритм решения проблемы и реализация в виде программы. Программа реализует алгоритм и в этом смысле алгоритм первичен. Я написал эту программу на нескольких языках и везде был реализован один и тот же алгоритм.