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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.05.2012, 00:24   #1
moshitamoru
Новичок
Джуниор
 
Регистрация: 30.12.2010
Сообщений: 2
По умолчанию Список списков.Морской бой

Здравствуйте, форумчане.
Прошу вашей помощи.
Я новичок, и это моя первая программа.
Есть курсовая, морской бой.
Написал уже рандомную расстановку кораблей и движение курсора, всё хорошо. Но возникла загвоздка со списками.
По заданию в игре должны использоваться списки. У меня однонаправленный, не кольцевой и без головного элемента.
Но список у меня не простой, а список списков, т.е. список кораблей, и каждый корабль сам как список, в котором количество кораблей равно количеству палуб. После того как по клетке попали, элемент, соответствующей ей удаляется из списка. Игра заканчивается когда один из списков(игрока или компьютера) оказывается пуст.

Подскажите, как реализовать список списков?
Я правильно делаю?

PHP код:
class shiplist
{
private:

    
struct ship //элемент списка
{
    
int x,y;
    
shipnextright;
    
shipnextdown;

    
shipint _xint _yship *nr NULLship *nd NULL )// конструктор с передающ значениями
    
{
        
_x;
        
_y;
        
nextright nr;
        
nextdown nd;
    }
};

    
int shipCount;
    
shipfirst;
    
shiplast;

public:
    
    
shiplist()
      { 
          
shipCount 0;
          
first last NULL;
      }

    

    ~
shiplist()
    {
        
        

        
shipcurrent NULL;
        
shipnextdown first;
        
shipnextright first;
        while (
nextdown
        {
            while (
nextright
        {
            
current nextright;
            
nextright nextright->nextright;
            
delete current;
        }

            
current nextdown;
            
nextdown nextdown->nextdown;
            
delete current;
        }

    }

      
void addshipRightint _xint _y//добавление корабля 
    
{
        
shipnewship = new ship_x_y);
        if (!
last)
        {
            
first newship;
        }
        else
        {
            
last->nextright newship;
        }
        
last newship;
        
shipCount++;
        
    }
      
void addshipDown(int _xint _y)
      {
          
shipnewship = new ship_x_y);
        if (!
last)
        {
            
first newship;
        }
        else
        {
            
last->nextdown newship;
        }
        
last newship;
        
shipCount++; 
      }

      
bool delShip int _xint _y)
      {
          
shipprev 0,
              *
current first;
          while (
current)
          {
              while (
current->nextdown)
              {
                  if ((
current->== _x) && (current->== _y)) 
                  {
                      if (
prev)
                      {
                          
prev->nextright current->nextright;
                      }
                      if (
current == last)
                      {
                          
last prev;
                      }
                      
delete current;
                      
shipCount--;
                      return 
true;
                  }
                  else 
                  {
                      
prev current;
                      
current current->nextright;
                  }
                  
current first;
                  
current current->nextdown;
              }
          }
          return 
false;
      }

      
void showlist()
      {
          
shipcurrent first;
          while (
current)
          {
              
cout<<current->x<<current->y<<'\n';
              
current current->nextright;
          }
      } 

Последний раз редактировалось moshitamoru; 21.05.2012 в 00:42.
moshitamoru вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Морской бой flutt C++ Builder 10 12.10.2017 16:57
Морской бой на С++ Vacilica Помощь студентам 3 22.01.2011 23:15
Морской Бой Fanga C++ Builder 3 30.03.2010 17:03
Морской бой flutt Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 17.04.2008 22:40
Морской бой yulia Помощь студентам 1 28.04.2007 22:12