Нужно написать шахматы на C#, для двоих игроков. Требования: 1. Ни одного компонента на форме лежать не должно во время старта программы. 2. Структурное оформление программы и подробное описание каждой строки. 3. Ни одного объекта после завершения программы в опер. 4. памяти не должно оставаться. 5. Классы должны быть разработаны по шаблону. (patterne - программирование). 6. Не более 400 строк кода Объясните, что значит 1-ый и 5-ый пункт?
Все компоненты на форме (кнопочки-херопочки и прочее) не должны существовать в момент запуска программы. Т.е. их надо создавать руками. Несложно (по факту сделать все в дизайнере, а потом перенести код из InitializeComponents() в свой метод), но требование дебильное. Отвечаю, исходя из предположения, что писать требуется под WinForms (т.к. если бы это требовалось под WPF - я бы лично нашел и убил человека, требующего такое под WPF) Читай - писать хорошо и красиво, с отступами и комментариями. Говнокода не плодить. Я так полагаю, это один пункт . И он опять-таки бредовый, т.к. после завершения программы вся ее память будет освобождена операцинной системой. К тому же допустить даже простую утечку памяти в .NET - это первый признак гениальности (хотя это и возможно). Ключевое слово - Design pattern, паттерны проектирования. См. замечательную книжку "Design patterns: elements of reusable object-oriented software", авторы E. Gamma, R. Helm, R. Johnson, J. Vlissides. Есть в русском переводе. Т.е. писать хорошо и аккуратно, говнокода не плодить.
Эммм... Крутой вопрос. Так же, как и ко всему остальному. Выстроить грамотную архитектуру всей программы, используя по максимуму готовые решения в виде паттернов.
начал писать шахматы, первое что написал, это класс Shape: PHP: /// <summary> /// класс описывает клетку шахматной доски /// </summary> class Shape { // ячейкой будет кнопка private Button shape = new Button(); // конструктор с параметрами public Shape(int width, int height, int left, int top, Color color) { // задаём параметры } } Потом создам класс доска... Верно ли я начал? или нужно начинать по другому?
начинать с GUI или с логики - второстепенно. главное, что бы они было отдельны друг от друга. лучший pattern для этого - model-view-presenter(mvp) или model-view-controller(mvc).