Skocz do zawartości
HelloDoggo

Problem z długim na 837213790647018467396592e+8278593729 linijek, nudnym KODZENIEM?

Rekomendowane odpowiedzi

blog-0960120001532959625.jpg

Masz już dość siedzenia 40 godzin nad programowaniem komendy help lub pliku readme? Oto program, dzięki któremu nawet całkowite zaprogramowanie Discord bota zajmie ci około 2 godzinki!

POWITAJ L O G O M O C J Ę , D R O G I P R O G R A M I S T O !

W programie, w którym kodowanie komendy help i tym bardziej pliku readme, nawet 1 linijki ci nie zajmie!

To nie CePlusPlus, JoteS czy inny Pajton, tutaj typów danych masz zaledwie parę, ale za to pełnią dużo, bardzo ważnych funkcji, więc nad tym też nie musisz się męczyć!
Tutaj nawet nad komendami się męczyć nie musisz, komendy są naprawdę bardzo proste, zaczynając od "pw", a kończąc na "zamaluj"!

Jeśli chcesz parę linijek komend i poleceń skrócić do nawet jednego s ł o w a, to otwierasz "OknoGłówne" (jeśli nie jest otwarte), potem klikasz dwa razy na "Procedury", nazywasz tzw. procedurę jak chcesz, nie licząc faktu, że ze spacją (bez wartości) nie możesz! I piszesz w kolejnym oknie do pisania, te komendy, polecenia i nawet inne procedury jakie chcesz (byle prawidłowo)!

Dodatkowo masz swojego małego niewolnika przyjaciela - słodkiego żółwika, który pomaga ci w tym i owym oraz pisze ci, gdzie popełniłeś błąd w komendzie, poleceniu, procedurze, w życiu czy wartości, jeśli takowy gdzieś popełniłeś!

A jeśli chcesz zmienić teksturę swojego wirtualnego przyjaciela, klikasz na niego prawym przyciskiem myszy, potem lewym na "Zmień ż1", a następnie na jego teksturę w oknie, które ci wyskoczyło (również lewym przyciskiem myszy) i pomalować go jak sobie chcesz, a jak nie czujesz się za dobrze, jako grafik, to zamiast klikać na teksturę w oknie, które ci wtedy wyskoczyło, klikasz "Ustal postać" i wybierasz którąś postać!

POWODZENIA, D R O G I P R O G R A M I S T O
W NOWYM JĘZYKU P R O G R A M O W A N I A - L O G O! 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
W dniu 1.01.2019 o 16:16, ElektronikMajster napisał:

Zaprogramuj mi układ scalony od Atmela.

Niestety do tego już bym potrzebował Painta, ale mogę ci zaprogramować procesor.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Jestem profesjonalnym programistą w Logo. Mam roczne doświadczenie i przerobionych wiele zaawansowanych zadań z 6 klasy podstawówki (same piątki i szóstki!). Jeżeli ktoś potrzebuje pomocy to oferuję swoje usługi jako programista Logo 🙂

  • Polubienie 1
  • Śmieszne 1
  • Smutne 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Zostanę jednak C i C++. ANSI C przynajmniej nadaje się do programowania mikrokontrolerów, C++ jest zaś tak wygodny że lepszego mi już nie trzeba.

Od dokumentacji jest doxygen, a od ograniczenia długości kodu - paradygmat obiektowy. 

Edytowane przez AzethMeron
  • Polubienie 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
8 godzin temu, AzethMeron napisał:

Zostanę jednak C i C++. ANSI C przynajmniej nadaje się do programowania mikrokontrolerów, C++ jest zaś tak wygodny że lepszego mi już nie trzeba.

Od dokumentacji jest doxygen, a od ograniczenia długości kodu - paradygmat obiektowy. 

To jest troll. Nieśmieszny, ale troll.

BTW ❤️ C++

Edytowane przez Grzesiek11

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
11 godzin temu, AzethMeron napisał:

Zostanę jednak C i C++. ANSI C przynajmniej nadaje się do programowania mikrokontrolerów

W Logomocji akurat też można programować mikrokontrolery, ale nie w taki sposób jak Atmel.

11 godzin temu, AzethMeron napisał:

C++ jest zaś tak wygodny że lepszego mi już nie trzeba.

Od dokumentacji jest doxygen, a od ograniczenia długości kodu - paradygmat obiektowy. 

Co kto lubi.

2 godziny temu, Grzesiek11 napisał:

To jest troll. Nieśmieszny, ale troll.

To nie jest troll, Logomocja się do dużej ilości rzeczy nadaje, większej niż myślisz.

Edytowane przez HelloDoggo
Edytowane, bo literówka

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Logomocja to coś jak "język" Scratch, Stencyl? Definicja mniej więcej tak wygląda.

  • Polubienie 1

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
50 minut temu, AzethMeron napisał:

Logomocja to coś jak "język" Scratch

Nie obrażaj mi pięknej Logomocji i pięknego języka Logo jakimiś klockami LEGO Duplo.

Edytowane przez HelloDoggo
Skracz sracz

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
3 godziny temu, AzethMeron napisał:

Pokaż kod.

Trzymaj, jeden z moich najpiękniejszych projektów.

Spoiler

pienknologomocji.png

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Porównaj z tym
 

Spoiler

#ifndef UNIVERSALBASE_HH
#define UNIVERSALBASE_HH

#include <iostream>
#include <vector>
#include <string>

// Really worth to make for ANY Type initiator Type(const std::string& temp) AND bool operator == (const Type& temp) based on string Name
// Also operator >> for Type

namespace ErrorsUniversalBase
{
    const char EmptyBase[] = "Error: Lossing object from empty base.\n";
    const char Placeholder[] = "Error: Returning placeholder.\n";
    const char ReachedEnd[] = "Reached end of base\n";
}

namespace Bases
{
    const char MainFolder[] = "GameData/Bases/";
}

template<typename Type>
class UniversalBase
{
    protected:
        std::vector<Type> ObjectBase;
        Type ObjectPlaceholder;
        std::string Name;
        void LoadFromFile(void);
    public:
        Type FindInBase(const Type& temp) const;
        Type Loss(void) const;
        bool operator == (const UniversalBase<Type>& temp) const;
        Type LossAndRemove(void);
        void Reload(const std::string& temp);
        
        UniversalBase(const std::string& temp, const Type& Placeholder)
        {
            this->Name = temp;
            this->ObjectPlaceholder = Placeholder;
            this->LoadFromFile();
        }
};

template<typename Type>
Type UniversalBase<Type>::FindInBase(const Type& temp) const
{
    for(unsigned int i = 0; i < this->ObjectBase.size(); i++)
    {
        if(this->ObjectBase == temp)
        {
            return this->ObjectBase;
        }
    }
    std::cerr << ErrorsUniversalBase::Placeholder;
    return this->ObjectPlaceholder;
}

template<typename Type>
bool UniversalBase<Type>::operator == (const UniversalBase<Type>& temp) const
{
    return this->Name == temp.Name;
}

template<typename Type>
void UniversalBase<Type>::LoadFromFile(void)
{
    std::string Track = Bases::MainFolder;
    std::string Slash = "/";
    Track = Track + Name + Slash;
    bool temp = true;
    for(unsigned int i = 0; temp == true; i++)
    {
        ifstream Input;
        std::string Number = to_string(i);
        if(!Input.Open(Track+Number))
        {
            temp = false;
            std::cerr << ReachedEnd;
        }
        else
        {
            Type New;
            Input >> New;
            this->ObjectBase.push_back(New);
        }
    }
}

template<typename Type>
void UniversalBase<Type>::Reload(const std::string& temp)
{
    this->Name = temp;
    this->ObjectPlaceholder = Placeholder;
    this->LoadFromFile();
}

template<typename Type>
Type UniversalBase<Type>::Loss(void) const
{
    if(this->ObjectBase.size()-1)
    {
        unsigned int i = Loss(this->ObjectBase.size())-1;
        return this->ObjectBase;
    }
    else
    {
        std::cerr << ErrorsUniversalBase::EmptyBase << ErrorsUniversalBase::Placeholder;
        return this->ObjectPlaceholder;
    }
}

template<typename Type>
Type UniversalBase<Type>::LossAndRemove(void)
{
    if(this->ObjectBase.size()-1)
    {
        unsigned int i = Loss(this->ObjectBase.size())-1;
        Type Output = this->ObjectBase;
        this->ObjectBase = this->ObjectBase.back();
        this->ObjectBase.pop_back();
        return Output;
    }
    else
    {
        std::cerr << ErrorsUniversalBase::EmptyBase << ErrorsUniversalBase::Placeholder;
        return this->ObjectPlaceholder;
    }
}

#endif

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
12 minut temu, AzethMeron napisał:

Porównaj z tym
 

  Pokaż ukrytą zawartość

#ifndef UNIVERSALBASE_HH
#define UNIVERSALBASE_HH

#include <iostream>
#include <vector>
#include <string>

// Really worth to make for ANY Type initiator Type(const std::string& temp) AND bool operator == (const Type& temp) based on string Name
// Also operator >> for Type

namespace ErrorsUniversalBase
{
    const char EmptyBase[] = "Error: Lossing object from empty base.\n";
    const char Placeholder[] = "Error: Returning placeholder.\n";
    const char ReachedEnd[] = "Reached end of base\n";
}

namespace Bases
{
    const char MainFolder[] = "GameData/Bases/";
}

template<typename Type>
class UniversalBase
{
    protected:
        std::vector<Type> ObjectBase;
        Type ObjectPlaceholder;
        std::string Name;
        void LoadFromFile(void);
    public:
        Type FindInBase(const Type& temp) const;
        Type Loss(void) const;
        bool operator == (const UniversalBase<Type>& temp) const;
        Type LossAndRemove(void);
        void Reload(const std::string& temp);
        
        UniversalBase(const std::string& temp, const Type& Placeholder)
        {
            this->Name = temp;
            this->ObjectPlaceholder = Placeholder;
            this->LoadFromFile();
        }
};

template<typename Type>
Type UniversalBase<Type>::FindInBase(const Type& temp) const
{
    for(unsigned int i = 0; i < this->ObjectBase.size(); i++)
    {
        if(this->ObjectBase == temp)
        {
            return this->ObjectBase;
        }
    }
    std::cerr << ErrorsUniversalBase::Placeholder;
    return this->ObjectPlaceholder;
}

template<typename Type>
bool UniversalBase<Type>::operator == (const UniversalBase<Type>& temp) const
{
    return this->Name == temp.Name;
}

template<typename Type>
void UniversalBase<Type>::LoadFromFile(void)
{
    std::string Track = Bases::MainFolder;
    std::string Slash = "/";
    Track = Track + Name + Slash;
    bool temp = true;
    for(unsigned int i = 0; temp == true; i++)
    {
        ifstream Input;
        std::string Number = to_string(i);
        if(!Input.Open(Track+Number))
        {
            temp = false;
            std::cerr << ReachedEnd;
        }
        else
        {
            Type New;
            Input >> New;
            this->ObjectBase.push_back(New);
        }
    }
}

template<typename Type>
void UniversalBase<Type>::Reload(const std::string& temp)
{
    this->Name = temp;
    this->ObjectPlaceholder = Placeholder;
    this->LoadFromFile();
}

template<typename Type>
Type UniversalBase<Type>::Loss(void) const
{
    if(this->ObjectBase.size()-1)
    {
        unsigned int i = Loss(this->ObjectBase.size())-1;
        return this->ObjectBase;
    }
    else
    {
        std::cerr << ErrorsUniversalBase::EmptyBase << ErrorsUniversalBase::Placeholder;
        return this->ObjectPlaceholder;
    }
}

template<typename Type>
Type UniversalBase<Type>::LossAndRemove(void)
{
    if(this->ObjectBase.size()-1)
    {
        unsigned int i = Loss(this->ObjectBase.size())-1;
        Type Output = this->ObjectBase;
        this->ObjectBase = this->ObjectBase.back();
        this->ObjectBase.pop_back();
        return Output;
    }
    else
    {
        std::cerr << ErrorsUniversalBase::EmptyBase << ErrorsUniversalBase::Placeholder;
        return this->ObjectPlaceholder;
    }
}

#endif

 

Nawet cały kod Discord bota napisany w Logomocji jest krótszy, h3h.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
8 godzin temu, HelloDoggo napisał:

Nawet cały kod Discord bota napisany w Logomocji jest krótszy, h3h.

Bo jest pusty.

Zamknięty język programowania BTW xD

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
8 godzin temu, Grzesiek11 napisał:

Bo jest pusty.

Pusty, to jest kod Pawełka. #kaktusintranetowy

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.


  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...