Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка "Drawing operation was attempted when ther" 
:(
    Опции темы
Horpion
Дата 25.4.2016, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 3.10.2014

Репутация: нет
Всего: нет



Здравствуйте!
После запуска .exe-шника выскакивает следующего рода ошибка

user posted image

Вот сам код приложения
Код

#include <iostream>  //ñòàíäàðòíàÿ áèáëèîòåêà
#include <time.h> //ñëó÷àéíûå ÷èñëà
#include <stdio.h> //äëÿ printf
#include <windows.h> // äëÿ HANDLE, êóðñîðà, öâåòà
#include <conio.h>  //äëÿ kbhit

using namespace std;



HANDLE hConsole;
//HANDLE hStdout, hStdin;
HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);

void GotoXY(int X, int Y)
{
    COORD coord = { X, Y };
    SetConsoleCursorPosition(hStdOut, coord);
} 
//Öâåò
enum ConsoleColor
{
     Black         = 0,
        Blue          = 1,
        Green         = 2,
        Cyan          = 3,
        Red           = 4,
        Magenta       = 5,
        Brown         = 6,
        LightGray     = 7,
        DarkGray      = 8,
        LightBlue     = 9,
        LightGreen    = 10,
        LightCyan     = 11,
        LightRed      = 12,
        LightMagenta  = 13,
        Yellow        = 14,
        White         = 15
};

void SetColor(ConsoleColor text, ConsoleColor background)
{
    SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}


class Zmeja  // ñòðóêòóðà çìåéêà 
{
    public:COORD *t; //òî÷êè
    public:int PCount; //êîëè÷åñòâî ÿáëîê
};
enum uprawlenie{LEFT,UP,RIGHT,DOWN}; //íàïðàâëåíèå çìåéêè
class Game //äàíûå-òî÷íîñòè: çìåéêè, ÿáëîê, ïåðåäâèæåíèå ïî X è Y, çàäåðæêà, íàïðàâëåíèå
{
    public:Zmeja gaduka; //çìåéêà
    public:COORD jabloko; //ÿáëîêî
    public:int dx,dy; //ïåðåäâèæåíèå
    public:int pause; //çàäåðæêà
    public:int nap; //íàïðàâëåíèå
    
};


void PlusJabloko(Game &g) //Ôóíêöèÿ ðàçáðîñêè ÿáëîê
{
    int i,x,y;
    int n = g.gaduka.PCount;
    do
    {
        x = rand() % 56+3; //
        y = rand() % 19+3; //êîðäèíàòû ÿáëîêà
        for(i = 0; i < n; i++)
        {
            if(x == g.gaduka.t[i].X && y == g.gaduka.t[i].Y) // ïðîâåðêà ÷òîá ÿáëîêî íå áðîñèòü íà çìåþ
                break;
        }
    }
    while(i < n);
    g.jabloko.X = x; //
    g.jabloko.Y = y; //çàïîìèíàåì ïîçèöèþ ÿáëîêà
    SetConsoleCursorPosition(hConsole, g.jabloko); //ïåðåíîñèì êóðñîð â ýòó ïîçèöèþ
    SetConsoleTextAttribute(hConsole,0x0c); //öâåò ÿáëîêà  
    printf("%c", 4); //ðèñóåì ÿáëîêî êàêèì õîòèì ñèìâîëîì
    
}


void skorostGame(Game &g) // Ôóíêöûÿ ñòàðòà çìåéêè åå êîîðäèíàò è ñêîðîñòè
{
    system("cls");
    g.gaduka.PCount = 3; //ñêîëüêî òî÷åê â çìåéêå
    g.gaduka.t = new COORD [3];//ñîçäàëè òî÷êè
    for(int i = 0; i < 3; i++)
    {
        g.gaduka.t[i].X = 20 + i;
        g.gaduka.t[i].Y = 20;
        
    }
    g.dx = 1;
    g.dy = 0;
    g.pause = 100;//ñêîðîñòü ïåðåäâèæåíèå çìåè
    PlusJabloko(g);//ðèñóåì ÿáëîêà
}
void Level()
{
    GotoXY(10,10);cout <<"Vy nikogda ne vyigraete"<<endl; //ÍÀÄÏÈÑÜ: Âû íèêîãäà íå âûèãðàåòå
    GotoXY(10,11);cout <<"esli ne budete bditelny!"<<endl; //ÍÀÄÏÈÑÜ: Åñëè íå áóäåòå áäèòåëüíû!
}
void ZmejaStart()
{
    GotoXY(10,15);cout <<"Soberi 50 yablok, togda posmotrim ;)"<<endl; //ÍÀÄÏÈÑÜ: Ñîáåðè 50 ÿáëîê, òîãäà ïîñìîòðèì ;)
}
void STENA_2() //Âñÿ èíôîðìàöèÿ, îòîáðàæàåìàÿ íà ñòåíå
{
    SetColor(LightBlue , Black);GotoXY(20,0);cout << "Snake game by Danilenko Alexander" <<endl;  //ÍÀÄÏÈÑÜ: Èãðà Çìåéêà Äàíèëåíêî Àëåêñàíäðà
    GotoXY(64,2);cout <<  "Dannue:" << endl ; //Äàííûå
    GotoXY(64,3);cout <<  "Yablok:0" << endl ; //ßáëîê
    GotoXY(64,4); cout <<  "Dlina:3"<< endl; //Äëèíà
    GotoXY(64,5); cout <<  "Speed:0" << endl; //Ñêîðîñòü
    GotoXY(64,7); cout << "Uprawlenie:" <<  endl; //Óïðàâëåíèå
    GotoXY(64,8); cout << "Esc:Wuxod" <<  endl; //Âûõîä
    GotoXY(64,9); cout << "P:Pause" <<  endl; //Ïàóçà
    GotoXY(64,10); cout <<"S:Start" <<  endl; //Ñòàðò
    GotoXY(64,11); cout <<"L:Level" <<  endl; //Óðîâåíü
    GotoXY(64,13);printf("%c",24);cout <<":Wwerx"<<endl; //Ââåðõ
    GotoXY(64,14);printf("%c",25);cout<<":Wniz"<<endl;   //Âíèç
    GotoXY(64,15);printf("%c",27);cout<<":Wlewo"<<endl;  //Âëåâî
    GotoXY(64,16);printf("%c",26);cout<<":Wprawo"<<endl; //Âïðàâî
                {SetColor(LightMagenta , Black);
                
                GotoXY(2,2); //Ðèñóåì âåðõíþþ ãîðèçîíòàëüíóþ ëèíèþ-ñòåíêó
                int m = 0;
                for(m = 0; m < 60; m++)
                {
                    printf("*");
                }
                }
                
                {
                    GotoXY(2,24); //Ðèñóåì íèæíþþ ãîðèçîíòàëüíóþ ëèíèþ-ñòåíêó
                    int m = 0;
                    for(m = 0; m < 60;m++)
                    {
                        printf("*");
                    }
                }
                {    //Ðèñóåì ëåâóþ âåðòèêàëüíóþ ëèíèþ-ñòåíêó
                    GotoXY(2,3); cout << "*"<<endl;
                    GotoXY(2,4); cout << "*"<<endl;
                    GotoXY(2,5); cout << "*"<<endl;
                    GotoXY(2,6); cout << "*"<<endl;
                    GotoXY(2,7); cout << "*"<<endl;
                    GotoXY(2,8); cout << "*"<<endl;
                    GotoXY(2,9); cout << "*"<<endl;
                    GotoXY(2,10); cout << "*"<<endl;
                    GotoXY(2,11); cout << "*"<<endl;
                    GotoXY(2,12); cout << "*"<<endl;
                    GotoXY(2,13); cout << "*"<<endl;
                    GotoXY(2,14); cout << "*"<<endl;
                    GotoXY(2,15); cout << "*"<<endl;
                    GotoXY(2,16); cout << "*"<<endl;
                    GotoXY(2,17); cout << "*"<<endl;
                    GotoXY(2,18); cout << "*"<<endl;
                    GotoXY(2,19); cout << "*"<<endl;
                    GotoXY(2,20); cout << "*"<<endl;
                    GotoXY(2,21); cout << "*"<<endl;
                    GotoXY(2,22); cout << "*"<<endl;
                    GotoXY(2,23); cout << "*"<<endl;
                }
                {   //Ðèñóåì ïðàâóþ âåðòèêàëüíóþ ëèíèþ-ñòåíêó
                    GotoXY(61,3); cout << "*"<<endl;
                    GotoXY(61,4); cout << "*"<<endl;
                    GotoXY(61,5); cout << "*"<<endl;
                    GotoXY(61,6); cout << "*"<<endl;
                    GotoXY(61,7); cout << "*"<<endl;
                    GotoXY(61,8); cout << "*"<<endl;
                    GotoXY(61,9); cout << "*"<<endl;
                    GotoXY(61,10); cout << "*"<<endl;
                    GotoXY(61,11); cout << "*"<<endl;
                    GotoXY(61,12); cout << "*"<<endl;
                    GotoXY(61,13); cout << "*"<<endl;
                    GotoXY(61,14); cout << "*"<<endl;
                    GotoXY(61,15); cout << "*"<<endl;
                    GotoXY(61,16); cout << "*"<<endl;
                    GotoXY(61,17); cout << "*"<<endl;
                    GotoXY(61,18); cout << "*"<<endl;
                    GotoXY(61,19); cout << "*"<<endl;
                    GotoXY(61,20); cout << "*"<<endl;
                    GotoXY(61,21); cout << "*"<<endl;
                    GotoXY(61,22); cout << "*"<<endl;
                    GotoXY(61,23); cout << "*"<<endl;
                }
}


//Ôóíêöèÿ êîòîðàÿ äâèãàåò è ðèñóåò
enum {KONEC, STENA,  PLUS, MOVE};
int Move(Game &g)
{
    int & n = g.gaduka.PCount;
    COORD head = g.gaduka.t[n - 1]; //ãîëîâà
    COORD tail = g.gaduka.t[0]; //õâîñò
    COORD next;
    next.X = head.X + g.dx;
    next.Y = head.Y + g.dy; //ïðîâåðêà ñëåäóþùåé òî÷êè ïî íàïðàâëåíèþ
    
    if(next.X < 3 || next.Y < 3 || next.X > 60 || next.Y > 23)//íå óïåðëàñü ëè â ñòåíó?
        return STENA;
        
    if(n > 4)
    {
        for(int i = 0; i < n; i++)
            if(next.X == g.gaduka.t[i].X && next.Y == g.gaduka.t[i].Y) //íå íàåõàëè ëè íà ñåáÿ?
                return KONEC;
    }
    
    if(next.X == g.jabloko.X && next.Y == g.jabloko.Y)
    {
        COORD*temp = new COORD[ ++n ]; //íîâûé ìàñèâ áîëüøèé íà 1
        for(int i = 0; i < n; i++)
            temp[i] = g.gaduka.t[i]; //ïåðåêîïèðóåì
        temp[n - 1] = next; //äîáàâëÿåì îäíó
        delete [] g.gaduka.t;
        g.gaduka.t = temp;
        
        SetConsoleCursorPosition(hConsole,head);
        SetConsoleTextAttribute(hConsole, 0x0a); //çàêðàøûâàåì ÿáëîêî êîòîðîå ñåëè 
        printf("*");
        SetConsoleCursorPosition(hConsole,next);
        SetConsoleTextAttribute(hConsole,0x0a);
        printf("%c",1);
        PlusJabloko(g);
        return PLUS;
    }
    
    for(int i = 0; i < n - 1; i++)
        g.gaduka.t[i] = g.gaduka.t[i + 1];
    g.gaduka.t[n - 1] = next;
    SetConsoleCursorPosition(hConsole,tail);//çàêðàøèâàåì õâîñòèê
    printf(" ");
    
    SetConsoleCursorPosition(hConsole,head);
    SetConsoleTextAttribute(hConsole, 0x0a);//êðàñèì õâîñò çìåè â çåëåíèé öâåò
    printf("*");
    SetConsoleCursorPosition(hConsole,next);
    SetConsoleTextAttribute(hConsole,0x0f); //êðàñèì êóðñîð â áåëûé öâåò (ãîëîâó çìåè) 
    printf("%c",1);
    
    return MOVE;
}

int intro()
{
        GotoXY(3,10); //Èíòðóõà
    printf("Ž¡ëç­ ï §¬¥©ª . “¯à ¢«¥­¨¥ §¬¥îª®© - áâ५®çª ¬¨. Esc - ¢ë室 ¨§ ¨£àë.");
    GotoXY(15,11);
    printf("…᫨ ᮡ¥àñ⥠50 ï¡«®ª, â® ¢ á ¦¤ñâ áîà¯à¨§ ;)");
    GotoXY(18,15);
    printf("„«ï ¯à®¤®«¦¥­¨ï â몭¨â¥ ­   ­¨ª¥© :D");
    getch();
}

int main()
{

    
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE); //ïîëó÷àåì äåñêðèïòîð êîíñîëè
    intro();
    int key = 0, count = 0;
    bool Pause=false;
    Game g;
    skorostGame(g);
    STENA_2();
    srand(time(0));
    bool pause = false;
    while(key != 27)
    {
        while(!kbhit()) //æäåò ïîêà íàæìåì
        {
            if(Pause==true)
            {
                Sleep(1); 
                continue;
            }
            
            switch (Move(g))//äâèæåíèå
            {
                
            case PLUS:
                ++count;
                g.pause-=1;
                SetColor(LightBlue , Black);
                GotoXY(64,2);cout <<  "Danue:" << endl ;
                GotoXY(64,3); cout << "Jablok:" <<count << endl;
                GotoXY(64,4); cout << "Dlina:" <<g.gaduka.PCount << endl;
                GotoXY(64,5); cout << "Speed:" <<g.pause<< endl;
                GotoXY(64,7); cout << "Uprawlenie:" <<  endl;
                GotoXY(64,8); cout << "Esc:Wuxod" <<  endl;
                GotoXY(64,9); cout << "P:Pause" <<  endl;
                GotoXY(64,10); cout <<"S:Start" <<  endl;
                GotoXY(64,11); cout <<"L:Level" <<  endl;
                GotoXY(64,13);printf("%c",24);cout <<":Wwerx"<<endl;
                GotoXY(64,14);printf("%c",25);cout<<":Wniz"<<endl;
                GotoXY(64,15);printf("%c",27);cout<<":Wlewo"<<endl;
                GotoXY(64,16);printf("%c",26);cout<<":Wprawo"<<endl;
                if (count == 50) 
                {
                    SetColor(White , Black);
                    GotoXY(24,1); cout << "Vy vyigrali! Pozdravlyayu! Vy ne chelovek! xD" << endl; //Âû âûèãðàëè
                    getch();
                    return(0);
                }
                break;
                
            case STENA:
                
            case KONEC:
                GotoXY(23,1); printf("‚ë ¯à®¨£à «¨! • -å -å !!!\n\n\t\t\t"); //Âû ïðîèãðàëè, ÕÀ ÕÀ ÕÀ
                getch();
                break;
            }
            
            Sleep(g.pause); //Çàäåðæêà
        }
    key = getch();
        
     if(key=='P'||key=='p')
            Pause=!Pause;
            else if(key=='S'||key=='s')
            ZmejaStart();
        else if(key=='L'||key=='l')
            Level();
        else if(key==0||key==224)
        {
            key=getch();
            
            if(key == 72 && g.nap != DOWN)
            {
                g.nap = UP;
                g.dx = 0;
                g.dy = -1;
            }
            else if(key == 80 && g.nap != UP)
            {
                g.nap = DOWN;
                g.dx = 0;
                g.dy = 1;
            }
            else if(key == 75 && g.nap != RIGHT)
            {
                g.nap = LEFT;
                g.dx = -1;
                g.dy = 0;
            }
            else if(key == 77 && g.nap != LEFT)
            {
                g.nap = RIGHT;
                g.dx = 1;
                g.dy = 0;
            }
        }
    }
}


Как можно решить данную проблему?
Спасибо.
PM MAIL   Вверх
rudolfninja
Дата 25.4.2016, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 341
Регистрация: 19.2.2013
Где: г. Минск

Репутация: 1
Всего: 6



Исходя из того, что я нашел в интернете, проблема в вызовые getch(). Попробуйте заменить его на cin или scanf.
PM MAIL Skype   Вверх
Horpion
Дата 25.4.2016, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 3.10.2014

Репутация: нет
Всего: нет



Цитата(rudolfninja @ 25.4.2016,  15:45)
Исходя из того, что я нашел в интернете, проблема в вызовые getch(). Попробуйте заменить его на cin или scanf.

Теперь уже другая ошибка выскакивает
user posted image
PM MAIL   Вверх
Horpion
Дата 25.4.2016, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 3.10.2014

Репутация: нет
Всего: нет



Проблема была решена удалением параметров из данного поля
user posted image

Это сообщение отредактировал(а) Horpion - 25.4.2016, 16:12
PM MAIL   Вверх
hrdwrks
Дата 28.4.2016, 00:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered












Модератор: Сообщение скрыто.

  Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0510 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.