Разбор кода Nebula Device2. Часть1. Класс строки (статья 4 - "Не выпить ли кофейку?")
Автор: graveman
"Кофе-машина"
Перед прочтением этой статьи рекомендую пойти и заварить себе кофе. Только не тот вида перемолотой в муку смолы - уверен его не стали бы пить и местные сторонники практики "бомжевания". Да и не залейте клавиатуру случайно - она вам еще понадобится!
В этой статье я решил поупражняться дабы лучше запомнить изученные строковые операции класса nString. Дело в том, что мозг обычно готов что-то запоминать, если с запоминаемым объектом происходит какая-то практическая работа. Ну и кофе немного помогает взбодриться. Чтобы не было так уныло, решил забацать что-то вроде примитивного кофе-автомата. Но для начала опишу еще пару операций, которые понадобятся.
Объекты класса nString можно сравнивать при помощи операций "==", "!=", ">", "<", ">=", "<=". Все они реализованы при помощи strcmp над строками, содержащимися во внутренних буферах двух объектов класса nString. Например:
nString s1("Game"); nString s2( "Game"); nString s3( "Same"); if ( s1==s2); // true if ( s1!=s3); //true
В nString можно размещать целые числа (более подробно в следующей статье) при помощи операции SetInt():
void SetInt(int val);
Ниже я привожу код кофе-автомата. Прежде чем смотреть его, полезно попробовать накидать свою реализацию, если есть цель изучить движок.
В кофе-автомате реализованы следующие команды:
help или несуществующая команда - показать справку
cls - очистка экрана
quit - выход из демо
coffeelist - список доступных типов кофе
have you - запрос определенного типа напитка. Далее просят ввести название ("Cappuccino" и т.п.)
Кофе-автомат: