Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2019, 17:36   #1
decider!
 
Регистрация: 26.11.2019
Сообщений: 5
Вопрос Фикс программы С++ (graphics.h)

Нужно найти ошибку в коде, из-за которой происходит мелькание экрана, вроде всё должно нормально работать
Код:
#include <stdlib.h>
#include <time.h>
#include <conio.h>
#include <graphics.h>

const int winW=600,winH=600,N=100;
int x,y,color1;

int X[N],Y[N],C[N];


int main(){
    initwindow(winW,winH);
    srand(time(NULL));
    for (int i=0;i<N;i++){
        X[i]=rand()%(winW-16)+8;
        Y[i]=rand()%(winH-16)+8;
        C[i]=rand()%14+1;
    }
    setcolor(0);
    rectangle(-36,-36,winW+32,winH+32);
    setfillstyle(1,0);
    floodfill(2,2,0);
    setcolor(15);
    rectangle(-36,-36,winW+32,winH+32);
    while(!kbhit()){
        for (int i=0;i<N;i++){
            setfillstyle(1,0);
            floodfill(X[i],Y[i],0);
            X[i]=rand()%(winW-16)+8;
            Y[i]=rand()%(winH-16)+8;
            setcolor(C[i]);
            setfillstyle(1,C[i]);
            moveto(X[i],Y[i]);
            lineto(X[i]+10,Y[i]);
            moveto(X[i],Y[i]);
            lineto(X[i]-10,Y[i]);
            moveto(X[i],Y[i]);
            lineto(X[i],Y[i]+10);
            moveto(X[i],Y[i]);
            lineto(X[i],Y[i]-10);
            moveto(X[i],Y[i]);
            lineto(X[i]+7,Y[i]+7);
            moveto(X[i],Y[i]);
            lineto(X[i]-7,Y[i]+7);
            moveto(X[i],Y[i]);
            lineto(X[i]+7,Y[i]-7);
            moveto(X[i],Y[i]);
            lineto(X[i]-7,Y[i]-7);
            floodfill(x,y,color1);
        }
        delay(75);
bar(0,0,800,600);
    }

}
decider! вне форума Ответить с цитированием
Старый 05.12.2019, 17:46   #2
decider!
 
Регистрация: 26.11.2019
Сообщений: 5
По умолчанию

altconio.h
Код:
#include <windows.h>

void settextcolor(unsigned short int color,unsigned short int bg)                                                 ////??? ??????
{                                                                                                                                             //// 
     SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),((bg*16)+(color)));
}

int get_x(void)
{
    CONSOLE_SCREEN_BUFFER_INFO window;
    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&window);
    return window.dwCursorPosition.X;
}

int get_y(void)
{
    CONSOLE_SCREEN_BUFFER_INFO window;
    GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE),&window);
    return window.dwCursorPosition.Y;
}


void set_x(int x)
{
     COORD pos;
     pos.X = x;
     pos.Y = get_y();
     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}

void set_y(int y)
{
     COORD pos;
     pos.X = get_x();
     pos.Y = y;
     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
void gotoxy(int x,int y)
{
     set_x(x);
     set_y(y);
}
decider! вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод в СОМ порт фикс.уровня dim3740 C# (си шарп) 16 02.04.2014 08:44
graphics.h victor5133 Помощь студентам 0 26.10.2011 19:25
VBA удалить столбцы, задать фикс. ширину столбца и задать перенос по словам johny_03 Microsoft Office Excel 1 14.04.2011 20:53
Умножение двоично-десятичных чисел с фикс точкой. anGeee Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 24.05.2009 19:47
graphics.h C++ ROD Помощь студентам 3 21.12.2008 20:09