1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

[Игра] Test your skill

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Synth (LM), 18 янв 2012.

  1. Guard Старожила

    Сообщения:
    473
    Спасибы:
    47
    Сборка бота GHost:
    Ghost++ RAKAL Edition
    Дата начала использования бота:
    00.00.2009
    Skype:
    Мой статус
    Данная функция экранирует спецсимволы переданной в неё строки (в данном примере – имя игрока), таким образом, что результат можно безопасно использовать в SQL-запросе.
  2. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Совершенно верно.

    Следущий вопрос:
    Зачем в коде бота нужна эта строка перед выводом рандомного числа?
  3. Guard Старожила

    Сообщения:
    473
    Спасибы:
    47
    Сборка бота GHost:
    Ghost++ RAKAL Edition
    Дата начала использования бота:
    00.00.2009
    Skype:
    Мой статус
    srand - генерирует семя, которое впоследствии будет использоваться функцией rand.
    unsigned - задаёт тип семени, целочисленный беззнаковый.
    time(0) - даёт возможность удостовериться, что значение семени будет одинаковым только однажды (т.е. семя будет непредсказуемо уникальным), при запуске данной программы (кода) в пределах каждых следующих 1000 мс.
  4. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
  5. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Код:
    CBaseGame( CGHost *nGHost, CMap *nMap, CSaveGame *nSaveGame, uint16_t nHostPort, unsigned char nGameState, string nGameName, string nOwnerName, string nCreatorName, string nCreatorServer );
    game_base.h
    Что это и для чего используется?
  6. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Можно я? Можно я? :avtoradolf:
    объявление Конструктор для создания игры
  7. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    GJ
    Что означает данный код:
    Код:
    class MyClass
    {
    Value operator++ (int);
    };
  8. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    И следующий более сложный.
    Код:
    class MyClass
    {
    public:
    operator unsigned int( );
    private:
    int Val;
    };
    MyClass::operator unsigned int( )
    {
    return ( int (Val) );
    }
    Пойду посплю. Жду правильных ответов ;)
  9. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    И напоследок самый легкий.
    Чем отличается:
    Код:
    y = x++;
    от
    Код:
    y = ++x;
    Ответ желательно на примере.
  10. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    В первом примере сначало присваивается значение x переменной y, а потом инкриминируется x.
    А во втором случае, сначало инкриминируется x, а потом присваивается значение x к y.

    Пример:
    Код:
    int y = 0;
    int x = 5;
    y = x++;
    std::cout << y << std::endl;
    Выведет "5".
    Код:
    int y = 0;
    int x = 5;
    y = ++x;
    std::cout << y << std::endl;
    Выведет "6".
  11. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Правильно. А еще лучше написать под конец что это называется постфиксный и префиксный инкриементы. Тоже самое действует и на декриементы.
  12. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Ээээ... что никто не знает? Даю еще несколько часов. Не ответите - опишу сам :)
  13. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    Перегрузка оператора
  14. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Верно, а точнее? Это не полный ответ.
  15. ViperNight ▒▒▒▒▒▒▒▒▒

    Сообщения:
    311
    Спасибы:
    154
    Сборка бота GHost:
    GHost++ r597M
    Дата начала использования бота:
    20.01.2007
    Skype:
    Мой статус
    ???

    Перегрузка унарного оператора класса MyClass с постфиксным инкрементом (значение возвращается до инкремента).
  16. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Верно. Остался 1 не открытый вопрос.
  17. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Жду еще сегодня ответ на:
    Если нет - после обеда по МСК выкладываю ответ.
    P.S.: Напомню вопрос, что означает код выше.
  18. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    оператор преобразования в тип unsigned int
    MyClass n;
    unsigned int asd =  n;
  19. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Верно. Кстати очень полезная вещь. Объект класса можно использовать как переменную стандартного типа.
    Т.е. int char string...
    Вот небольшой пример использования:
    #include <iostream>
    #include <string>
    
    using namespace std;
    
    class MyClass
    {
    public:
    	MyClass( );
    	~MyClass( );
    	operator int( );
    	operator string( );
    private:
    	int Val;
    	string Str;
    };
    
    MyClass::MyClass( ) : Val(5), Str("Hello") {}
    MyClass::~MyClass( ) {}
    
    MyClass::operator int( )
    {
    	return ( int (Val) );
    }
    
    MyClass::operator string( )
    {
    	return (string (Str) );
    }
    
    int main( )
    {
    	MyClass Obj;
    	int y = 10 + Obj;
    	string tmp = Obj;
    	tmp += " world!";
    
    	cout << y << " " << tmp << endl;
    }

    Код:
    15 Hello world!
  20. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    если честно, то перегрузка операторов вообще редко нужна.
    а этот пример вытянут за уши.


    зы: я про то, что классов на одну переменную(или хотябы с одной главной переменной ) в природе не существуют (встречаются крайне редко), и без просмотра документации\кода той библиотеки которая это использует, тяжело будет понять "что здесь происходит", гораздо понятнее( многим удобнее) использовать Get-еры\To_Val-ы.

    Ну это мое имхо, я вообще считаю, что 90% "разницы" между си и с++ бесполезны, местами даже вредны. :palevo: