ФорумПрограммированиеPHP для идиотов → Вот и до Ц добрались...

Вот и до Ц добрались...

  • maxfr

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 18 июня 2009 г. 11:21

    Прошу сильно не пиздить…
    Нано прямоуг. рамку развернуть на весь экран.

    Вот кодогавно:


    #include <graphics.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <dos.h>
    #include &quot;keyboard.h&quot;

    #define M_LEFT 40
    #define M_RIGHT 450
    #define M_TOP 10
    #define M_BOTTOM 250
    #define MIAU_X 800
    #define MIAU_Y 200
    #define ACTIVE_COLOR RED
    #define PASSIVE_COLOR YELLOW
    #define ACTIVE_BACK_COLOR BROWN
    #define PASSIVE_BACK_COLOR DARKGRAY
    #define BORDER_COLOR GREEN
    #define kbSpace 32

    //PROTIPES
    void Cat(void);
    void Mouse(void);
    void Dog(void);
    void Sheep(void);
    int GrMenu (char *Items[], int N, int Left, int Top, int Right, int Bottom);
    void DrawMenu(char *Items[], int N, int Left, int Top, int Right, int Bottom, int active);
    //**********************************************************************************
    void main (void)
    {
    char *Items[]={&quot;Dog&quot;,&quot;Cat&quot;,&quot;Mouse&quot;,&quot;Sheep&quot;,&quot;Exit&quot;};
    int choise,N = 5;
    int a=DETECT,b;
    initgraph(&amp;a,&amp;b,&quot;&quot;);
    setbkcolor(BLUE);
    outtextxy(M_LEFT +40, M_TOP -10, &quot;This text typed only once!!!Then restored by Menu function&quot;);
    b = 1;
    do
    {
    choise = GrMenu(Items, N, M_LEFT, M_TOP, M_RIGHT, M_BOTTOM);
    switch(choise)
    {
    case -1:
    case 4: b = 0; break;
    case 0: Dog(); break;
    case 1: Cat(); break;
    case 2: Mouse(); break;
    case 3: Sheep(); break;
    }
    }
    while(b);
    sleep(2);
    closegraph();
    }


    // Функция выводит в прямоугольнике по переданным координатам на графический экран // меню из N пунктов, которые получает в массиве Items. Перед завершением функция // восстанавливает затёртое её изображение
    int GrMenu (char *Items[], int N, int Left, int Top, int Right, int Bottom)
    {
    long sz = imagesize(Left, Top, Right, Bottom);
    void *image = malloc(sz);
    if (image == NULL) return -1;
    getimage(Left, Top, Right, Bottom, image);
    int choise = 0, Done = 0;
    do
    {
    DrawMenu(Items, N, Left, Top, Right, Bottom, choise);
    int key = GetCh();//Key();
    switch (key)
    {
    case kbUp: if (choise > 0) choise–;else choise = N - 1; break;
    case kbDown: if (choise < N - 1) choise++;else choise = 0; break;
    case kbEsc: choise = -1; Done = 1; break;
    case kbEnter:
    case kbSpace: Done = 1; break;
    }
    }
    while (!Done);
    putimage(Left, Top, image, COPY_PUT);
    free(image);
    return choise;
    }

    void DrawMenu(char *Items[], int N, int Left, int Top, int Right, int Bottom, int active)
    {
    setcolor(BORDER_COLOR);
    rectangle(Left, Top, Right, Bottom);
    setfillstyle(SOLID_FILL, PASSIVE_BACK_COLOR);
    bar(Left + 1, Top + 1, Right - 1, Bottom - 1);
    settextstyle(GOTHIC_FONT, HORIZ_DIR, 3);
    settextjustify(CENTER_TEXT, CENTER_TEXT);
    setfillstyle(SOLID_FILL, ACTIVE_BACK_COLOR);
    int x = Left+Left/9;
    int y = (Bottom + Right) / 3;
    int dx = (Right - Left) / (N - 1);
    int dy = (Bottom - Top) / 2; // 2;
    for (int i = 0; i < N; i++)
    {
    x = Left + (i + 1) * dx;
    // y = Top + (i + 1) * dy;
    if (i == active)
    {
    setcolor(BORDER_COLOR);
    rectangle(x + 25, y + 10, x - 25 , y - 10);
    setcolor(ACTIVE_COLOR);
    }
    else setcolor(PASSIVE_COLOR);
    outtextxy(x, y, Items);
    }
    }

    void Cat (void)
    {
    setcolor(RED);
    settextstyle(0, HORIZ_DIR, 1);
    settextjustify(LEFT_TEXT, TOP_TEXT);
    setfillstyle(SOLID_FILL, GREEN);
    bar(MIAU_X, MIAU_Y, MIAU_X + 100, MIAU_Y + 50);
    outtextxy(MIAU_X, MIAU_Y, &quot;Mi-a-a-u!!&quot;);
    outtextxy(MIAU_X, MIAU_Y + 30, &quot;push any key&quot;);
    getch();
    }

    void Mouse (void)
    {
    setcolor(GREEN);
    settextstyle(0, HORIZ_DIR, 1);
    settextjustify(LEFT_TEXT, TOP_TEXT);
    setfillstyle(SOLID_FILL, RED);
    bar(MIAU_X, MIAU_Y, MIAU_X + 100, MIAU_Y + 50);
    outtextxy(MIAU_X, MIAU_Y, &quot;PI-pi-pi&quot;);
    outtextxy(MIAU_X, MIAU_Y + 30, &quot;push any key&quot;);
    getch();
    }

    void Dog (void)
    {
    setcolor(YELLOW);
    settextstyle(0, HORIZ_DIR, 1);
    settextjustify(LEFT_TEXT, TOP_TEXT);
    setfillstyle(SOLID_FILL, BROWN);
    bar(MIAU_X, MIAU_Y, MIAU_X + 100, MIAU_Y + 50);
    outtextxy(MIAU_X, MIAU_Y, &quot;Gaw-gav!!&quot;);
    outtextxy(MIAU_X, MIAU_Y + 30, &quot;push any key&quot;);
    getch();
    }

    void Sheep (void)
    {
    setcolor(BLUE);
    settextstyle(0, HORIZ_DIR, 1);
    settextjustify(LEFT_TEXT, TOP_TEXT);
    setfillstyle(SOLID_FILL, WHITE);
    bar(MIAU_X, MIAU_Y, MIAU_X + 100, MIAU_Y + 50);
    outtextxy(MIAU_X, MIAU_Y, &quot;Be-e-e-e!!&quot;);
    outtextxy(MIAU_X, MIAU_Y + 30, &quot;push any key&quot;);
    getch();
    }



  • mario

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 18 июня 2009 г. 11:35, спустя 13 минут 58 секунд


    Прошу сильно не пиздить…
    Нано прямоуг. рамку развернуть на весь экран.

    Вот кодогавно:


    говно…
    говно…
    говно…
    говно…
    :DDD
    (с)шутка ;)




    я задачу немного не понял? есть условие? или дай подробнее описание :)
    это тебе в консоли надо или на форме?
  • maxfr

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 19 июня 2009 г. 4:13, спустя 16 часов 38 минут 4 секунды

    Гавно еще то!
    в консоли.

    Меню на весь, экран и теперь я хочу подогнать рамку под меню.
    Запусти прогру там все ясно станет. Там ползет рамка…

  • mario

    Сообщения: ? Репутация: N Группа: Джедаи

    Spritz 19 июня 2009 г. 10:19, спустя 6 часов 5 минут 48 секунд


    Гавно еще то!
    в консоли.

    Меню на весь, экран и теперь я хочу подогнать рамку под меню.
    Запусти прогру там все ясно станет. Там ползет рамка…



    ну гляну сегодня :)
    только предупреждаю у меня знания только из одной книжки + один семестр из института :)
  • maxfr

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 19 июня 2009 г. 16:34, спустя 6 часов 15 минут 3 секунды

    ))))))))))))))))
  • maxfr

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 21 июня 2009 г. 18:19, спустя 2 дня 1 час 44 минуты

    Че то видно тут Ц не кто не чухает. Предлагаю тему закрыть!
  • md5

    Сообщения: 11951 Репутация: N Группа: в ухо

    Spritz 23 июня 2009 г. 2:03, спустя 1 день 7 часов 44 минуты

    предлагаешь — делай
    все умрут, а я изумруд
  • Voronenok

    Сообщения: ? Репутация: N Группа: Кто попало

    Spritz 18 августа 2012 г. 13:31, спустя 1152 дня 11 часов 27 минут

    ответь на прямо поставленный тебе вопрос. ты он или она?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!