Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование[11]

var  

286 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

по коду не скажу а по commits naming сразу хуево

имя должно быть краткое, емкое, говорящее

 

коммит с названием '221' может сказать только что у вас коллега пидарас конченый 

Поделиться сообщением


Ссылка на сообщение
ural1qqq написал 50 минут назад:

по коду не скажу а по commits naming сразу хуево

имя должно быть краткое, емкое, говорящее

 

коммит с названием '221' может сказать только что у вас коллега пидарас конченый 

ну тут я чисто для себя делал надеясь что никто не увидит , возьму к сведению , спасибо

Поделиться сообщением


Ссылка на сообщение
#Dodgersdota написал 2 часа назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

прикольно, но бывает что я жму 2 кнопки сразу (врядли конечно) скорее с очень маленьким делеем, практически одновременно, и в таком случае змейка вообще не реагирует, бежит как бежала. Так должно быть?


гиены скалятся — нахуй гиен
МОЙ ТГК https://t.me/phorphoriquetg

 

Поделиться сообщением


Ссылка на сообщение
phosphorique написал 4 минуты назад:
#Dodgersdota написал 2 часа назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

прикольно, но бывает что я жму 2 кнопки сразу (врядли конечно) скорее с очень маленьким делеем, практически одновременно, и в таком случае змейка вообще не реагирует, бежит как бежала. Так должно быть?

не должно, но я сейчас играю и не могу воспроизвести баг или фичу , всегда вроде норм поворачивает по крайней мере как мне кажется , как было задумано работает вроде +-.
Но мб я уже привык к этому движению

Поделиться сообщением


Ссылка на сообщение
#Dodgersdota написал 1 час назад:

ну тут я чисто для себя делал надеясь что никто не увидит , возьму к сведению , спасибо

Ты должен делать хорошо для себя "дебила", а не для других.

  Показать содержимое
include_directories(${PROJECT_NAME} ${SDL2_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/src )

https://cmake.org/cmake/help/latest/command/target_include_directories.html

if (CMAKE_COMPILER_IS_GNUCXX)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -static-libgcc -static-libstdc++")

endif()

https://cmake.org/cmake/help/latest/command/target_compile_features.html

https://cmake.org/cmake/help/latest/command/target_compile_options.html

static SimpleTimer* GetInstance() ;

SimpleTimer* SimpleTimer::GetInstance() { return (timer != nullptr) ? timer : timer = new SimpleTimer; }

Возвращай референс, а не поинтер в таких случаях. По референсу сразу ясно кто владеет объектом, по поинтеру нихуя не ясно.

Зачем этот класс синглтоном неясно. Сигнлтон должен использоваться когда класс представляет собой какойто уникальный ресурс который ну кровь из жопы нужно абстрагировать для его использования в разных местах никак не связывая эти собственно части. Например генерация UUID1 строк через демон линукса, который нужно закрыть мьютексами и всякое такое. Эта генерация будет использоваться по всему коду, и который ну никак не связать друг с другом красиво что бы оно владело одним объектом генератора, потому использование синглтона оправдано.

Зачем указателем создается не ясно тоже. Зачем хранить мембером инстанс неясно в том числе. Ты мог просто сделать так:

SimpleTimer& SimpleTimer::GetInstance()
{
    static auto singletone = SimpleTimer();
    return singletone;
}

Указывай единицы измерений, не используй просто float. Конкретнее:

class SimpleTimer {
    float GetDeltaTime() const;
    void Tick();
private:
    float delta_time = 0;
    float last_time = 0;
};

float SimpleTimer::GetDeltaTime() const { return delta_time; }

void SimpleTimer::Tick()
{
    delta_time = (SDL_GetTicks() - last_time) / 1000.f;

    last_time = SDL_GetTicks();
}

Вот и хуй просышь сходу что у тебя такое delta_time. Гугл говорит что SDL_GetTicks возвращает милисекунды, ну и оберни это в них:

class SimpleTimer {
    std::chrono::seconds GetDeltaTime() const;
    void Tick();
private:
    std::chrono::seconds delta_time = std::chrono::seconds(0);
    std::chrono::milliseconds last_time = std::chrono::milliseconds(0);
};

std::chrono::seconds SimpleTimer::GetDeltaTime() const { return delta_time; }

void SimpleTimer::Tick()
{
    auto now = std::chrono::milliseconds(SDL_GetTicks());
    delta_time = std::chrono::duration_cast<decltype(delta_time)>(now - last_time);
    last_time = now;
}

Не используй указатели вообще без крайней необходимости. Так же ты должен вообще забыть как вызывать New/Delete. Например:

class Framework {
public:
    void Close();
    void LoadMedia();
private:
    Background* background;
    Field* field;
    Food* food;
    Snake* snake;
};

void Framework::Close()
{
    delete field;
    field = nullptr;
    delete food;
    food = nullptr;
    delete snake;
    snake = nullptr;
    delete background;
    background = nullptr;
    delete game_manager;
    game_manager = nullptr;

    // Close UI
    ui_manager->Close();
    ui_manager = nullptr;
    // Destroy window
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    window = nullptr;
    renderer = nullptr;
    // Quit SDL subsystems
    TTF_Quit();
    IMG_Quit();
    SDL_Quit();
}

void Framework::LoadMedia()
{
    game_manager = Game_Manager::GetInstance();
    game_manager->RefreshSquareSize(window);

    background = new Background(window);

    field = new Field(window);

    snake = new Snake(window);

    food = new Food(window);
}

Здесь ты сам в себе легко насрешь в штаны если забудешь Close позвать или два раза вызовешь Load.

Используй:

https://en.cppreference.com/w/cpp/memory/unique_ptr

 

Но в данном случае как я понял можно было вообще в конструкторе проинициализировать один раз и все, без всяких клоз и прочего.

И вообще без необходимости избегай "опциональных" Init, Close, и прочей параши.

Твой FrameWork одна из причин почему сиглтоны не стоит использовать бездумно. Он должен принимать в конструкторе параметры для Init и проводить эту инициализацию в нем. 

class Framework {
    bool is_running = false;

    int SCREEN_WIDTH;
    int SCREEN_HEIGHT;
};

Соблюдай свой же нейминг.

 

Я вообще считаю что тех кто заставляет язык учить на граф либах стоит убить. Большинство из них это Си с классами блять, а не плюсы.

 

Soulless1989, Kant, Arzanis и 2 другим понравилось это

ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал 12 минут назад:
#Dodgersdota написал 1 час назад:

ну тут я чисто для себя делал надеясь что никто не увидит , возьму к сведению , спасибо

Ты должен делать хорошо для себя "дебила", а не для других.

  Показать содержимое

include_directories(${PROJECT_NAME} ${SDL2_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/include ${PROJECT_SOURCE_DIR}/src )

https://cmake.org/cmake/help/latest/command/target_include_directories.html


if (CMAKE_COMPILER_IS_GNUCXX)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -static-libgcc -static-libstdc++")

endif()

https://cmake.org/cmake/help/latest/command/target_compile_features.html

https://cmake.org/cmake/help/latest/command/target_compile_options.html


static SimpleTimer* GetInstance() ;

SimpleTimer* SimpleTimer::GetInstance() { return (timer != nullptr) ? timer : timer = new SimpleTimer; }

Возвращай референс, а не поинтер в таких случаях. По референсу сразу ясно кто владеет объектом, по поинтеру нихуя не ясно.

Зачем этот класс синглтоном неясно. Сигнлтон должен использоваться когда класс представляет собой какойто уникальный ресурс который ну кровь из жопы нужно абстрагировать для его использования в разных местах никак не связывая эти собственно части. Например генерация UUID1 строк через демон линукса, который нужно закрыть мьютексами и всякое такое. Эта генерация будет использоваться по всему коду, и который ну никак не связать друг с другом красиво что бы оно владело одним объектом генератора, потому использование синглтона оправдано.

Зачем указателем создается не ясно тоже. Зачем хранить мембером инстанс неясно в том числе. Ты мог просто сделать так:


SimpleTimer& SimpleTimer::GetInstance()
{
    static auto singletone = SimpleTimer();
    return singletone;
}

Указывай единицы измерений, не используй просто float. Конкретнее:


class SimpleTimer {
    float GetDeltaTime() const;
    void Tick();
private:
    float delta_time = 0;
    float last_time = 0;
};

float SimpleTimer::GetDeltaTime() const { return delta_time; }

void SimpleTimer::Tick()
{
    delta_time = (SDL_GetTicks() - last_time) / 1000.f;

    last_time = SDL_GetTicks();
}

Вот и хуй просышь сходу что у тебя такое delta_time. Гугл говорит что SDL_GetTicks возвращает милисекунды, ну и оберни это в них:


class SimpleTimer {
    std::chrono::seconds GetDeltaTime() const;
    void Tick();
private:
    std::chrono::seconds delta_time = std::chrono::seconds(0);
    std::chrono::milliseconds last_time = std::chrono::milliseconds(0);
};

std::chrono::seconds SimpleTimer::GetDeltaTime() const { return delta_time; }

void SimpleTimer::Tick()
{
    auto now = std::chrono::milliseconds(SDL_GetTicks());
    delta_time = std::chrono::duration_cast<decltype(delta_time)>(now - last_time);
    last_time = now;
}

Не используй указатели вообще без крайней необходимости. Так же ты должен вообще забыть как вызывать New/Delete. Например:


class Framework {
public:
    void Close();
    void LoadMedia();
private:
    Background* background;
    Field* field;
    Food* food;
    Snake* snake;
};

void Framework::Close()
{
    delete field;
    field = nullptr;
    delete food;
    food = nullptr;
    delete snake;
    snake = nullptr;
    delete background;
    background = nullptr;
    delete game_manager;
    game_manager = nullptr;

    // Close UI
    ui_manager->Close();
    ui_manager = nullptr;
    // Destroy window
    SDL_DestroyRenderer(renderer);
    SDL_DestroyWindow(window);
    window = nullptr;
    renderer = nullptr;
    // Quit SDL subsystems
    TTF_Quit();
    IMG_Quit();
    SDL_Quit();
}

void Framework::LoadMedia()
{
    game_manager = Game_Manager::GetInstance();
    game_manager->RefreshSquareSize(window);

    background = new Background(window);

    field = new Field(window);

    snake = new Snake(window);

    food = new Food(window);
}

Здесь ты сам в себе легко насрешь в штаны если забудешь Close позвать или два раза вызовешь Load.

Используй:

https://en.cppreference.com/w/cpp/memory/unique_ptr

 

Но в данном случае как я понял можно было вообще в конструкторе проинициализировать один раз и все, без всяких клоз и прочего.

И вообще без необходимости избегай "опциональных" Init, Close, и прочей параши.

Твой FrameWork одна из причин почему сиглтоны не стоит использовать бездумно. Он должен принимать в конструкторе параметры для Init и проводить эту инициализацию в нем. 


class Framework {
    bool is_running = false;

    int SCREEN_WIDTH;
    int SCREEN_HEIGHT;
};

Соблюдай свой же нейминг.

 

Я вообще считаю что тех кто заставляет язык учить на граф либах стоит убить. Большинство из них это Си с классами блять, а не плюсы.

 

Благодарю ,  буду исправлять по тихоньку , есть ли смысл переписывать щас код или лучше делать с учётом ошибок с некст проекта уже?
За смаке отдельное спасибо ибо мне чёт ваще не заходят их доки. Начал делать с граф либ ибо подумал пока так легче далее думал некст делать уже что то типа приложухи для фитнесса на QT+База данных либо пытаться в сервер/клиент какой то морской бой для начала но мб уже с SFML библиотекой она вроде более как на с++ написана чем на С с классами. Учу всё сам , объём информации большой как для после завода, но очень нравится этим заниматься. Спасибо еще раз за разьеб  

Поделиться сообщением


Ссылка на сообщение
#Dodgersdota написал 3 часа назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

Думал будет гифка в репе с игрой с геймплеем,а нету - печаль


 

Лучшая в этом мире

4cd5e7dcf57746f698f023a78718.jpg

 

 

Лучшая в мире читает стихи

 

Эксперт в религии
 

Поделиться сообщением


Ссылка на сообщение
(изменено)
v1le написал Только что:
#Dodgersdota написал 3 часа назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

Думал будет гифка в репе с игрой с геймплеем,а нету - печаль

Будет , делается как раз, снял видео а девушка нарезает , к вечеру мб или к утру будет.

v1le написал 10 минут назад:
#Dodgersdota написал 3 часа назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

Думал будет гифка в репе с игрой с геймплеем,а нету - печаль

как то так будет , не знаю нужна ли длиннее

https://prodota.ru/forum/uploads/monthly_2023_02/gameplay.mp4.a51add034a8007e95fe04e8353ab2a02.mp4
Изменено пользователем #Dodgersdota
v1le понравилось это

Поделиться сообщением


Ссылка на сообщение
#Dodgersdota написал 10 минут назад:

Благодарю ,  буду исправлять по тихоньку , есть ли смысл переписывать щас код или лучше делать с учётом ошибок с некст проекта уже?

Смысла переписывать не вижу, но смысл развить то что на лабал. Тысяча строк кода не дадут практического понимания почему нужно писать так, а не эдак. Если есть идеи для фич и тебе самому интересно еще змеей заниматься, то попили ее имхо. Какиенибудь фрукты там временные, мигающие, дающие ускорение, замедление, телепорты для змейки, авто скриншоты результатов, разноцветную змейку, змейку у которо меняются цвета, текстура.


ward написал 04.01.2022 в 02:54:

Hades для стада долбоебичей которые прокликивали Дэш и думали ебать они в артхаузнвй рогалик играют, не такие как все.

mazt3r написал 20.09.2019 в 11:27:

ласт оф ас - хуета для лисят и прочих мальчиков с вагиной между ног.

 

Поделиться сообщением


Ссылка на сообщение
GoldRobot написал 4 минуты назад:
#Dodgersdota написал 32 минуты назад:

Благодарю ,  буду исправлять по тихоньку , есть ли смысл переписывать щас код или лучше делать с учётом ошибок с некст проекта уже?

Смысла переписывать не вижу, но смысл развить то что на лабал. Тысяча строк кода не дадут практического понимания почему нужно писать так, а не эдак. Если есть идеи для фич и тебе самому интересно еще змеей заниматься, то попили ее имхо. Какиенибудь фрукты там временные, мигающие, дающие ускорение, замедление, телепорты для змейки, авто скриншоты результатов, разноцветную змейку, змейку у которо меняются цвета, текстура.

идеи для фич есть, такие же как и у тебя , просто внутри она с обычным SDL2_renderer даже не OpenGL поэтому в голове токо переписать это под OpenGL в 2д чтобы шустрее мб обрабатывалось и уже пилить фичи дальше , но мб я хуету несу и этого не нужно совсем. В башку такая мысль пришла ибо на линуксе что то плохо идёт отрисовка и есть разрывы кадров как будто когда всинк выключен хотя либы юзаю кроссплатформ , но я не сильно шарю.

Поделиться сообщением


Ссылка на сообщение
(изменено)
#Dodgersdota написал 10 часов назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

class GameObject {
public:
    GameObject(SDL_Window* window);
    virtual ~GameObject() = default;

    virtual void Render(SDL_Renderer* renderer) = 0;
    virtual void Update(double delta_time) = 0;
    virtual void HandleInput(SDL_Event& event) = 0;

    virtual void UpdateWindowSize(SDL_Window* window);

    Vector2<int> GetCoordinates() const;

protected:
    Vector2<int> window_size;
    Vector2<int> coordinates;
};
    Background* background;
    Field* field;
    Food* food;
    Snake* snake;

Полное непонимание зачем нужен динамический полиморфизм и как его использовать.
Нагородил бессмысленную иерархию и ни разу не воспользовался. Тебе нужны виртуальные функции когда ты хранишь указатели на базу условно
std::vector<GameObject*> entity_list;
и хочешь колить для каждого Render();
for (auto &&ent: entity_list)

____ent->Render();
более того - так и надо делать, более того - так и делают.
EntityList где Entity базовый класс и все игровые объекты от него наследуются это стандарт для игровой индустрии.

Советую 10 раз подумать перед тем как в голову придёт слово virtual написать
Виртуалки не бесплатные за дереференс платить нужно. Ты платишь но не пользуешься.

    GameObject(SDL_Window* window);
protected:
    Vector2<int> window_size;

Какого хуя у тебя ваще GameObject принимает окно ? Почему он ваще должен заботиться и знать о размерах окна ?
 

void Game_Manager::RestartGame()
{
    for (int y = 0; y < SIZE_Y; ++y)
    {
        for (int x = 0; x < SIZE_X; ++x)
        {
            field[x][y] = 0;
        }
    }
    score = 0;
}

Почему управляющий(Manager) вообще занимается такой хуйней ? Мэнеджер должен управлять, а не сам всё руками делать.
Чем больше игра разрастётся тем больше клинапа ему придётся делать.

 

    static Framework* GetInstance() { return (framework != nullptr) ? framework : framework = new Framework; }

Вот потому тебе и написал выше не возвращай raw pointer потому что не понятно кто владеет твоим синглом и кто должен освобождать.
(Никто и не освободил у тебя Лик. Это самая критичная ошибка в твоём коде).
По поводу "avoid raw pointers" выше хуёвый и неполный совет. avoid raw pointers when transfer ownership.
Конкретно в случае с синглтоном да - нужно возвращать ссылку потому что для GetInstance() невозможна ситуация что не существует инстанса.

У тебя на выбор есть 4 варианта: raw pointer, reference, std::unque_ptr, std::shared_ptr.
ссылка передаётся когда пустое значение невозможно. У ссылок не бывает nullptr;

std::unque_ptr, std::shared_ptr для передачи владения.
Raw pointer когда возможно нулевое значение и нет передачи владения.

 

    int rand_x = rand() % Game_Manager::GetInstance()->SIZE_X / 2 + 2;
    int rand_y = rand() % Game_Manager::GetInstance()->SIZE_Y;

    snake_body.emplace_back(Vector2<int> {rand_x, rand_y});
    snake_body.emplace_back(Vector2<int> {rand_x - 1, rand_y});
    snake_body.emplace_back(Vector2<int> {rand_x - 2, rand_y});

Ты точно понимаешь как работает emplace_back ?

 

#pragma once
#include "GUI/GUI.h"
#include "SDL2/SDL.h"
#include "imgui/imgui.h"
#include "imgui/imgui_impl_sdl2.h"
#include "imgui/imgui_impl_sdlrenderer.h"
class UI_Manager {
public:
    UI_Manager();

    void PrepareUI();
    void RenderUI();
    void Close();

    void InitFontSize(SDL_Window* window);

private:
    void NewFrame();
};

Инклюды Игуя и сдл в хедерах. Хуёвая практика. Инклюдь в cpp.
 

Ну это самое критичное. Остальное менее
отсутвие explicit у single argument конструкторов.

забытые override на вирт деструкторах

срезки (implicit narrowing conversions) double -> float. В играх вообще не используется дабл.

int instead of std::int32_t

в смейке 17 стандарт а по сути 03 и пару штук из 11.

 

    if (ImGui::Checkbox("NORMAL", &check_normal)) { Game_Manager::GetInstance()->SetDifficulty(DIFFICULTY_NORMAL); }

Когда учился в школе и c++ для меня был blackbox я тоже строки экономил думал что так "машинного кода меньше будет" и быстрее программа заработает.
Собственно вопрос: вкурсе что процессор с++ не понимает ? Ему похуй в сколько ты строк уложился. А вот программистам с вертикальными мониторами ваще не похуй.
80 символов на строку на плюсах конечно сложно держать это не си, но хотя бы 100.
 

Хуйвый инконсистент нейминг стайл. типо class Game_Manager. используй clang_format
SDL_Texture* food_t не самое лучшее имя для текстуры. обычно так теги для темплейтов именуют.

По поводу что выше написали avoid singletons.
Синглтоны стандарт для игростроя EntitySystem, ParticleManager, ModifierManager и тд.
Просто у тебя в целом архитектура стрёмная получилась, всё переплетено. Одни классы делают то что не должны, другие не делают что должны.
Везде вручную Клинап вместо RAII.

А так если учесть что ты заводыч - неплохо. Типичный выпускник дефолтного вуза с поступлением по егэ на плюсах писать не умеет совсем.
Предполагаю что некоторые из них даже на транслите переменные именуют.

А ты и с имгуей смог разобраться и смейк.
поставь себе утилит удобных (Clion/resharper++) линтеры санитайзеры копайлоты они быстро тебе качество кода подтянут.
Советую новое что то написать на змейку пока забить, потом мб вернёшься.
И предпочесть количество кода - качеству


Изменено пользователем Ember_Xinit

Поделиться сообщением


Ссылка на сообщение
#Dodgersdota написал 10 часов назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

у меня 1 вопрос

нахуя тебе плюсы в 2к23


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

перевел фронт на vite, да лучше чем парсел вроде. :razumist:

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 1 час назад:
#Dodgersdota написал 12 часов назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

у меня 1 вопрос

нахуя тебе плюсы в 2к23

твоей жене чернота в европу наехавшая хуи немытые в рот пихала

у меня 1 вопрос
ты извинился перед ними? Ну на всякий случай вдруг им что то не понравилось

GoldRobot понравилось это

Поделиться сообщением


Ссылка на сообщение
Ember_Xinit написал 4 минуты назад:
Just.Doit написал 1 час назад:
#Dodgersdota написал 12 часов назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

у меня 1 вопрос

нахуя тебе плюсы в 2к23

твоей жене чернота в европу наехавшая хуи немытые в рот пихала

у меня 1 вопрос
ты извинился перед ними? Ну на всякий случай вдруг им что то не понравилось

не ну рили, С++ язык динозавров же

абсолютно отсталая хуйня на которой только дегроды какие-то прогают, которые не умеют развиваться и хотья что-то новое изучить.

типа худший язык. Если уж хочешь в лоулвл то иди в раст, все тоже самое только в 10 раз удобнее. а вообще толку байтоебить в принципе вообще мало. зачем если можно флексить на хайлевеле и получать результат за время в несколько раз меньше


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал Только что:
Ember_Xinit написал 7 минут назад:
Just.Doit написал 1 час назад:
#Dodgersdota написал 12 часов назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

у меня 1 вопрос

нахуя тебе плюсы в 2к23

твоей жене чернота в европу наехавшая хуи немытые в рот пихала

у меня 1 вопрос
ты извинился перед ними? Ну на всякий случай вдруг им что то не понравилось

не ну рили, С++ язык динозавров же

абсолютно отсталая хуйня на которой только дегроды какие-то прогают, которые не умеют развиваться и хотья что-то новое изучить.

типа худший язык. Если уж хочешь в лоулвл то иди в раст, все тоже самое только в 10 раз удобнее. а вообще толку байтоебить в принципе вообще мало. зачем если можно флексить на хайлевеле и получать результат за время в несколько раз меньше

умел бы ты развиваться ты бы почитал стандарты последние и понимал что современные плюсы позволяют писать код по безопасности сравнимый с раст.
Щас заменю на расте плюсы только линкед лист научусь делать и сразу заменю
 

GoldRobot понравилось это

Поделиться сообщением


Ссылка на сообщение
Just.Doit написал 27 минут назад:
Ember_Xinit написал 34 минуты назад:
Just.Doit написал 2 часа назад:
#Dodgersdota написал 13 часов назад:

Привет всем , сделал первый раз что то сам на плюсах, пока учусь , симпл игра змейка на С++ и SDL , первый раз ебался с CMake и гитом ,  мб кто то что то подскажет по коду на сколько убого выглядит то что написал или где можно было бы сделать лучше. Хотелось бы на стажировку попасть , или хотя бы что бы поразговаривали и дали понять на сколько убог в плюсах.
https://github.com/cah9xddd/snake2d_game

 

у меня 1 вопрос

нахуя тебе плюсы в 2к23

твоей жене чернота в европу наехавшая хуи немытые в рот пихала

у меня 1 вопрос
ты извинился перед ними? Ну на всякий случай вдруг им что то не понравилось

не ну рили, С++ язык динозавров же

абсолютно отсталая хуйня на которой только дегроды какие-то прогают, которые не умеют развиваться и хотья что-то новое изучить.

типа худший язык. Если уж хочешь в лоулвл то иди в раст, все тоже самое только в 10 раз удобнее. а вообще толку байтоебить в принципе вообще мало. зачем если можно флексить на хайлевеле и получать результат за время в несколько раз меньше

> Если уж хочешь в лоулвл то иди в раст, все тоже самое только в 10 раз удобнее

Ты ж ни на плюсах, ни на расте не писал :lol:

Ember_Xinit написал 17 минут назад:

понимал что современные плюсы позволяют писать код по безопасности сравнимый с раст

Ну это бред

Вот санитайзеры помогают, стандарт тут не при чем


 

9Aa4jVY.jpeg

IFVau8G.png

AohP0ps.png

Поделиться сообщением


Ссылка на сообщение
besteady написал 4 минуты назад:

> Если уж хочешь в лоулвл то иди в раст, все тоже самое только в 10 раз удобнее

Ты ж ни на плюсах, ни на расте не писал :lol:

Ember_Xinit написал 19 минут назад:

понимал что современные плюсы позволяют писать код по безопасности сравнимый с раст

Ну это бред

Вот санитайзеры помогают, стандарт тут не при чем

санитайзеры фазинг стандарт std::expected как например из недавнего - удобный способ вернуть ошибку без использования исключений без использования inout параметров.

Ember_Xinit написал 14 минут назад:

санитайзеры фазинг стандарт std::expected как например из недавнего - удобный способ вернуть ошибку без использования исключений без использования inout параметров.

это аналог растовского Result если не читал.
из не  совсем нового [nodiscard] ну это прям объективные. очевидные я могу больше привести.
Новые стандарты позволяют создать новые гайдлайны соблюдение которых позволяют писать более безопасный и выразительный код.
В расте гайдлайны не нужны, сам язык позволяет писать более безопасный код но за это платит гибкостью.

 

besteady написал 27 минут назад:
Just.Doit написал 55 минут назад:

не ну рили, С++ язык динозавров же

> Если уж хочешь в лоулвл то иди в раст, все тоже самое только в 10 раз удобнее

Ты ж ни на плюсах, ни на расте не писал :lol:

Самое забавное что этот долбоёб реально советчиком возомнил себя людям роадмапы строит то учи то не учи.

Представил ебло чела который раст до плюсов решил поучить или ваще первым языком.
Думаю впринцыпе невозможно понять идей в язык заложенных если не писал на плюсах минимум несколько лет.
Язык модель памяти даже плюсовую переиспользует пока свою не придумали.

GoldRobot понравилось это

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...