821

(24 відповідей, залишених у Ваші проєкти)

ZEN написав:

Перевірив під Debian 9.9 - гра працює. Але прийшлось встановити деякі 32-бітні бібліотеки.

До речі, якщо програмний код гри є у публічному доступі, то можу допомогти з automake та пакетом deb.

Які саме бібліотеки встановлювалося бо умене вже  декілька встановлені але гра не запускається.

822

(24 відповідей, залишених у Ваші проєкти)

Manjaro 18
Не пішло. На убунту  з якими настройками запускав?
Віндова версія COOL.

Гра машинки така як, були на кишенькових "Тетрісах".
Швидкість з часом збільшується.
Як буде час додам генератор випадкових чисел для випадкової генерації траси.

824

(13 відповідей, залишених у C++)

Для себе питанням вважаю закритим велика подяка adziri (https://replace.org.ua/user/8912/)

825

(13 відповідей, залишених у C++)

adziri написав:
typedef struct {
    char raw_string_[4];
} wide_char_t;

std::ostream& operator<<(std::ostream& os, wide_char_t const& wstr) { 
    os << wstr.raw_string_; 
    return os;
}
    
 
int main() {
    char str[25]{"Привіт"};
    std::cout << str[0] << '\n';
    
    wide_char_t wstr[25]{ {"П"}, {"р"}, {"и"}, {"в"}, {"і"}, {"т"} };
    std::cout << wstr[0] << '\n';
}

.

То шось правда не зтої опери.

826

(13 відповідей, залишених у C++)

adziri написав:

Ось такий можна "перекладач" забабахати на utf-8, відповідно це лише для unix.

Якщо не важко можна обьяснення, або ссилочку на яких принципах воно там працює бо шось моя не мудра макітра ніяк не хоче того поняти.

827

(24 відповідей, залишених у Ваші проєкти)

Файно, хоч під вайном і висне.

828

(13 відповідей, залишених у C++)

А ось власне код

#include <iostream>
#include <stdio.h>
#include <termios.h>
#include <sys/ioctl.h>
#include <unistd.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
#include <locale>


using namespace std;

int getch(void)// зчитування з клавіатури одного символа
    {
        struct termios oldt, newt;
        int ch;

        tcgetattr(STDIN_FILENO, &oldt);
        newt = oldt;
        newt.c_lflag &= ~(ICANON | ECHO);
        tcsetattr(STDIN_FILENO, TCSANOW, &newt);
        ch = getchar();
        tcsetattr(STDIN_FILENO, TCSANOW, &oldt);

        return ch;
    }

bool kbhit()//функція котра дає сигнал true пoки нажата клавіша
    {
        termios term;
        tcgetattr(0, &term);

        termios term2 = term;
        term2.c_lflag &= ~ICANON;
        tcsetattr(0, TCSANOW, &term2);

        int byteswaiting;
        ioctl(0, FIONREAD, &byteswaiting);

        tcsetattr(0, TCSANOW, &term);

        return byteswaiting > 0;
    }
void clear (void)//очистка консолі
    {
        cout << "\033[0d\033[2J";
    }
string stInputLine="\0";//рядок вводу
string stOutputLine="\0";//рядок виводу
char fstInput()//Функція вводу
    {
         setlocale(LC_ALL, "Ukrainian");//Українська локалізація
         char stInputLineElement='\0';//змінна котрій почерзі присвоюється символ введений з клави

                while(true)//поки істина
                {
                          if(kbhit())//якщо натинута будь яка клавіша...
                          {
                                    stInputLineElement=getch();//...присвоїти змінній введений з клавіатури символ
                                    stInputLine+=stInputLineElement;//і добавити вміст змінної до ря дка вводу
                                    break;
                          }
                          else
                          {
                             break;
                          }
                }

            return stInputLineElement;// повертаємо main введений символ
        }
class TranliterationClass
{

public:
void Tranliteration(char stInputSymbol)//
{

    setlocale(LC_ALL, "Ukrainian");//Українська локаль
    string sTinpSymbol="\0";//проміжний символ для переводу char d string обнуляється зкаждим циклом;
    sTinpSymbol+=stInputSymbol;//присвоїти аргумент до змінної
    //масив укр символів
    string chSymbolMass[90]  {"кс"," ","\n","'","А","а","Б","б","В","в","Г","г","Ґ","ґ","Д","д","Е","е","Є","є","Ж","ж","З","з","И","и","І","і","Ї","ї","Й","й","К","к","Л","л","М","м","Н","н","О","о","П","п","Р","р","С","с","Т","т","У","у","Ф","ф","Х","х","Ц","ц","Ч","ч","Ш","ш","Щ","щ","ь","Ю","ю","Я","я",".",",",";",":","-","_","=","+","(",")","1","2","3","4","5","6","7","8","9","0"};
    //масив трансліт символів
    string chTranslitMass[90]{"x"," ","\n","'","A","a","B","b","V","v","G","g","G`","g`","D","d","E","e","Ye","ye","Zh","zh","Z","z","Y","y","I","i","Yi","yi","J","j","K","k","L","l","M","m","N","n","O","o","P","p","R","r","S","s","T","t","U","u","F","f","H","h","C","c","Ch","ch","Sh","sh","Shch","shch","`","Yu","yu","Ya","ya",".",",",";",":","-","_","=","+","(",")","1","2","3","4","5","6","7","8","9","0"};
        for(int i=0;i<89;i++)//цикл провірки
            {
                if(sTinpSymbol==chSymbolMass[i])//якщо введений символ відповідає символу в "і" масиві укр символів(цей код не працює)
                    {
                        stOutputLine+=chTranslitMass[i];//...то до рядка виводу додати символ "і" з трансліт масиву
                    }

                if(sTinpSymbol==chTranslitMass[i])//якщо введений символ відповідає символу в "і" масиві трансліт символів(а цей код працює)
                    {
                        stOutputLine+=chSymbolMass[i];//...то до рядка виводу додати символ "і" з трансліт масиву
                    }
            }
        cout<<stOutputLine<<endl;//вивести на екран рядок виводу
}
};

int main( int nNumberOfArgs , char* pszArgs[ ] )
    {
        for(;;)//безкінеечний цикл
        {
            clock_t start, stop;
                 unsigned long t;//Таймер для стабілізації виводу (щоб немигали літери)
                start = clock();
                for(t=0;t<100000L;t++)
                stop =clock();
            clear();//Очистка екрану
        

        TranliterationClass tc;
        cout<<"Введіть текст кирилецею"<<endl;
        char stInputLineElement=fstInput();//змінна котрій функція повертає значення ко жного введеного знаку
        tc.Tranliteration(stInputLineElement);//виклик функції котрій належить транслітерація знаків
                                            //з передачею введеного знака в якості аргумента
        cout<<":::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::"<<endl;// понти для "приезжих"

        cout<<stInputLine<<endl;//вивід рядка вводу


    }


        return 0;
    }

829

(13 відповідей, залишених у C++)

Написана програмка на C++ котра робить транслітерацію український літер в латинські і навпаки.
Однак коли вводиться  з клавіатури текст на латиниці топрограма працює нормально, а коли кирилицею
то текст не пертворюється. Операційна система ManjaroLinux(CInamon)IDE Code::BLocks компілятор GCC
термінал "Gnome terminal".Мені здається що проблема від бувається на етапі порівняння двох змінних котрі містять
кириличні символи.
P.S. Я знаю що можна перевести вміст змінної char в змінну іnt а потім порівнювати коди сисстеми ANSCII і зробити вивід відповідних символів по коду але мене цікавить чи неможна зробити якісь маніпуляції з <locale>так щоб порівняння працювало.