Форум программистов, компьютерный форум CyberForum.ru

Программа для игры в покер - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы http://www.cyberforum.ru/cpp-beginners/thread797100.html
Задана целочисленная квадратная матрица A(N x N). Найти максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
C++ Задача про Лестницу Условия формулируются так: Есть лестница высотой в n ступенек (плюс «нулевая» - площадка, где мы стоим вначале). На каждой ступеньке написано число (положительное или отрицательное). На стартовой площадке и на последней ступеньке - нули. Можно ступать либо на следующую ступеньку либо перескакивать через одну. Напишите алгоритм, определяющий, как надо шагать, чтобы сумма чисел на пройденных... http://www.cyberforum.ru/cpp-beginners/thread797095.html
Где графику делать? C++
Всем доброго времени суток! Собственно вопрос в следующем. Курсовая работа по программированию - разработать приложение для игры в Рассаду. головоломка такая. надо сделать с графическим интерфейсом, чтобы "и мышкой можно было поиграться и чтоб красиво было." Тоесть рисование черточками ему не подходит. Сам я пишу в visual studio 10 и после гуглинья ниче внятного про графику в консоли в вс10 я...
Одномерные массивы (найти количество элементов, отличающихся от среднего арифметического не более чем на 5%) C++
В одномерном массиве, состоящем из n вещественных элементов, найти количество элементов, отличающихся от среднего арифметического не более чем на 5%.
C++ Шаблон класса http://www.cyberforum.ru/cpp-beginners/thread797084.html
Приветствую. Есть глупый вопрос. Имеется класс: #pragma once #include "support.hpp" template <typename at> class ellipse {
C++ Программа в IDE Eclipse (написать программу которая выводит на консоль геометрическую фигуру: прямоугольник) написать программу которая выводит на консоль геометрическую фигуру: прямоугольник. более в задании ничего не указано, видимо не принципиально какой язык java или С++ подробнее

Показать сообщение отдельно
AnyOne697
134 / 106 / 5
Регистрация: 22.05.2010
Сообщений: 533
04.03.2013, 06:46     Программа для игры в покер
Цитата Сообщение от NEbO Посмотреть сообщение
Поскольку буков многа, а я скромный по натуре, думаю, всем будет лучше, если я все это дело засуну под спойлер.
БукАФ очень много =( Боюсь, что большая часть не дочитает до конца, например я. Алсо в K&R стиле нет ничего плохого, наоборот это единственно-верный стиль написания скобок! (хотя с отступами там не всё верно - мониторы стали пошире)
Цитата Сообщение от nefton Посмотреть сообщение
ни одного наследования
Пора бы уже успокоиться. Наследование требуется, когда есть схожие сущности.
Например, есть класс
C++
1
2
3
4
5
6
7
class GameState {
   /*...*/
public:
   virtual void update ();
   virtual void draw ();
   /*...*/
};
У него есть два виртуальных метода: update () и draw (). Но какие возможны состояния, например, в рпг? Допустим, рпг тактическая с претензией на реалистичность. У нас возможны состояния брифинга (допустим, это обычный текстовый брифинг), состояния похода (карта с большим масштабом), состояния тактической планировки (карта с небольшим масштабом) и непосредственно бой (карта с минимальным масштабом). Каждый режим сильно отличается друг от друга и содержит сильно различные методы. Но у них есть общие методы update и draw, которые мы в любом случае будем вызывать поочерёдно. Что можно сделать? Да очень просто - объявляем указатель на currentState типа GameState и в цикле их вызываем. Чтобы частота кадров была примерно одинакова было бы не плохо после update и draw ждать ровно столько, сколько нужно. То есть нам потребуется как-то хранить пройденное время... Но это всё - мелочи:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*includes*/
 
/*using namespaces*/
 
int main ( int argc, char **argv ) {
    GameState *currentState = new MenuGameState ();
    /*...*/
    while ( true ) {
        Date date = Date ( Date::now );
        currentState->update ();
        currentState->draw ();
        Sleep ( date + 1000 / 60 - Date ( Date::now ) );
    }
 
    /*...*/
}
MenuGameState наследован от GameState. То есть он также содержит методы update и draw. Но так как они виртуальные, программа по таблице проверит всех наследников GameState при обращении к функциям на наличие перегруженных update и draw... Как то так.
Вот Вам и наследование. Но это опасная штука. Следует применять её только тогда, когда действительно нет другого выбора.

Цитата Сообщение от NEbO Посмотреть сообщение
по сложности, наверное, примерно как ваше, если учесть, что у вас там и работа с сетью, и есть над чем над алгоритмами подумать, плагинная система и прочее и прочее. вначале выбирал, сделать его на wx или qt. долго выбирал. потом узнал про канвас джаваскиптовский, решил сделать на нем. потом позучал, как оно на практике, это прототипное наследование, плюнул, начал писать на qt (уже прошло несколько месяцев). начал проектировать, составлять uml диаграммы, составил эдак классов на 50, потом что-то решил разделить, переделать, поменять... потом еще какую то книгу по проектированию почитал, еще вспомнил, что будут применяться svg изображения, причем с шаблонами (очень много одинаковых элементов со сложной форме, но различающиеся, например, одним цветом заливки). вот думал-думал, как это сделать. придумал.
Чуууувак! Пожалуйста, используй прописные буквы. Мы не в аське, читать очень сложно. Алсо, в ECMAScript НЕТ классов!
Вообще, разрабатывать на javascript сказка - прототипы сложных систем пишутся за пару дней. Но вот внедрение новых возможностей растягивается на неделю-две. Настолько сложно разобраться в этой динамической системе, которую ТЫ сделал два дня назад, что проще просто взять и переписать заного. При том, что примерно так и выходит. Пытаешься использовать ООП - javascript резко теряет свою былую мощь, да и становиться этаким уродцем, что скучаешь по Lua и Си. Пытаешься применять вроде бы успешные паттерны - получается что-то между: проще работать по планам, но js перестаёт подкупать своей простотой и мощью.
ИМХО, javascript сто раз динамический язык, он удобен для быстрых и кривоватых прототипов, чтобы прояснить, что мы собственно делаем, но для настоящих проектов он слабо подходит. TypeScript и Dart вроде бы что-то помогают, но перфоманс ни к чёрту и приходится изучать особенности компиляторов в js и редактировать собственно скомпилированный код.

Вообще, дело говоришь, тысяча классов - не то что нужно. В первую очередь надо проникнуться принципами KISS и DRY. Эти два супер-паттерна упростят жизнь настолько, насколько это возможно. Первый не позволит строить сложные системы, в которых потом чёрт ногу сломит, а второй заставит использовать ООП там, где это надо. По поводу ООП пару советов, хотя и капитанских:
Кликните здесь для просмотра всего текста
+ Не стоит плодить сущностей, которых нет в области применения ПО и без которых вполне можно обойтись [KISS];
+ Используй инкапсуляцию везде, где это возможно. Инкапсулируй вообще всё. По началу это будет доходить до глупостей, но потом, когда будет набита рука и появиться опыт, можно будет довольно быстро определять возможные потребности в будущем. Вместе с наследованием, можно творить чудеса [DRY].
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru