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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2013, 18:31   #1
GHOST32
Пользователь
 
Регистрация: 03.05.2013
Сообщений: 16
По умолчанию Анимация, управление, вылет

Пишу игру Xonix. Проблема вот в чем: пользователь выделяя клетки, помечая их. Но если он снова выделил ту же клетку, то игра заканчивается. У меня игра заканчивается когда я пытаюсь нажать на одну из клавиш управления.

Код:
while(f!=1)
   {
    
    int h=0;
    int g=0;
    int k=0;
    
    for(i=0;i<30;i++) //start
    {
     for(j=0;j<50;j++)
     {
      if(k!=i)
      {
       g+=10;
       k=i;
       h=0;
      }
      a[i][j].x1=25+h;
      a[i][j].y1=25+g;
      a[i][j].x2=35+h;
      a[i][j].y2=35+g;
      
      //проверяет помечена ли уже клетка
      if (a[i][j].x1==u.x1 && a[i][j].y1==u.y1 && Arr[i][j]==1)
      {
       f=1;
      }
      
      //проверяет не помечена ли еще клетка
      if (a[i][j].x1==u.x1 && a[i][j].y1==u.y1 && Arr[i][j]==0)
      {
       Arr[i][j]=1;
      }
 
    
 
       if (Arr[i][j]==1)
       {
        a[i][j].color=RED;
        setfillstyle(SOLID_FILL,a[i][j].color);
        bar(a[i][j].x1,a[i][j].y1,a[i][j].x2,a[i][j].y2);
        h+=10;
       }
       else
       {
        if (Arr[i][j]==2)
        {
         a[i][j].color=YELLOW;
         setfillstyle(SOLID_FILL,a[i][j].color);
         bar(a[i][j].x1,a[i][j].y1,a[i][j].x2,a[i][j].y2);
         h+=10;
        }
        else
        {
         a[i][j].color=LIGHTBLUE;
         setfillstyle(SOLID_FILL,a[i][j].color);
         bar(a[i][j].x1,a[i][j].y1,a[i][j].x2,a[i][j].y2);
         h+=10;   
        }
       }
       
       
    }
   } //end
   
     setcolor(u.COLOR);
     setfillstyle(1,1);
     bar(u.x1,u.y1,u.x2,u.y2);
     delay(50);
     
     //управление с клавиатуры
     if(kbhit())
     key=getch();
     switch(key)
     {
            case 72:
                if(u.y1==25)
                {
                 u.y1=u.y1;
                 u.y2=u.y2;
                }
                else
                {
                 u.y1-=10;
                 u.y2-=10;
                }
                break;
                
            case 80:
                if(u.y2==325)
                {
                 u.y1=u.y1;
                 u.y2=u.y2;
                }
                else
                {
                 u.y1+=10;
                 u.y2+=10;
                }
                break;
                
            case 75:
                if(u.x1==25)
                {
                 u.x1=u.x1;
                 u.x2=u.x2;
                }
                else
                {
                 u.x1-=10;
                 u.x2-=10;
                }
                break;
                
            case 77:
                if(u.x2==525)
                {
                 u.x1=u.x1;
                 u.x2=u.x2;
                }
                else
                {
                 u.x1+=10;
                 u.x2+=10;
                } 
                break;
                
            case 27:
                f=1;
                break;
      }
    
        swapbuffers();
        cleardevice();         
    }
GHOST32 вне форума Ответить с цитированием
Старый 18.05.2013, 18:54   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а отладку делал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2013, 19:42   #3
GHOST32
Пользователь
 
Регистрация: 03.05.2013
Сообщений: 16
По умолчанию

Делал, не помогает.
GHOST32 вне форума Ответить с цитированием
Старый 18.05.2013, 19:57   #4
GHOST32
Пользователь
 
Регистрация: 03.05.2013
Сообщений: 16
По умолчанию

Здесь что-то схожее со "змейкой", т.е если укусишь головой за хвост, то проиграл. Когда я нажимаю на клавишу управления, программа считает, что клетка уже помечена и игра заканчивается.
GHOST32 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Readkey и вылет!!! k281092 Паскаль, Turbo Pascal, PascalABC.NET 11 19.12.2011 23:08
Анимация и управление клавишами изображением человечка (Графика, Паскаль) Женёк2011 Паскаль, Turbo Pascal, PascalABC.NET 0 12.04.2011 17:25
Вылет CcluberR Общие вопросы C/C++ 2 13.03.2011 15:41
Задачи на вылет Izanagir Паскаль, Turbo Pascal, PascalABC.NET 5 03.02.2011 19:41
Вылет приложения dampirik Общие вопросы C/C++ 0 12.12.2009 01:47