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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2012, 15:45   #1
ivanso
Пользователь
 
Регистрация: 14.04.2012
Сообщений: 10
Вопрос TShape Пожалуйсто помоги разобраться

Есть Лабораторная работа - Игра Ханойские башенки(гатовая)
Но я не понимаю код(((
Ну не сказать что всё не пониманима, в чём то разобрался а что то вообще никакм
вот ссылка на сам проект.
http://www.fayloobmennik.net/1786684

а здесь мне бы коменты раскидать, а то вообще беда(((
Код:
class PYRAMID
        {
        bool Placing[3];
        public:
        PYRAMID(bool Empty)
                {
                for(int i=0; i<3; i++)
                        Placing[i] = Empty;
                };
        bool ItTopRinglet(int NumberRinglet)
                {
                if(NumberRinglet == 0)
                        return true;
                else
                        return false;
                };
        bool MayPutRinglet(int NumberRinglet)
                {
                for(int i=NumberRinglet; i>=0; i--)
                        if(Placing[i])
                                return false;
                return true;
                };
        bool MayTakeRinglet(int NumberRinglet)
                {
                for(int i=NumberRinglet; i>0; i--)
                        if(Placing[i-1])
                                return false;
                return true;
                };
        void PutRinglet(int NumberRinglet) 
                {
                Placing[NumberRinglet] = true;
                };
        void TakeRinglet(int NumberRinglet) 
                {
                Placing[NumberRinglet] = false;
                };
        bool WhoOwner(int NumberRinglet)      
                {
                if(Placing[NumberRinglet])
                        return true;
                else
                        return false;
                }
        bool PyramidIsEmpty()               
                {
                for(int i=0; i<3; i++)
                        if(Placing[i])
                                return false;
                return true;
                };
        };
//---------------------------------------------------------------------------
class GAME
        {
        vector <PYRAMID> Pyramids;
        public:
        GAME()
                {
                Pyramids.clear();
                Pyramids.push_back(PYRAMID(true));
                Pyramids.push_back(PYRAMID(false));
                Pyramids.push_back(PYRAMID(false));
                };
        bool MayTakeRingletFromPyramide(int NumberRinglet)
                {
                int NumberPyramid;
                for(unsigned i=0; i<Pyramids.size(); i++)
                        if(Pyramids[i].WhoOwner(NumberRinglet))
                                {
                                NumberPyramid = i;
                                break;
                                };
                if(Pyramids[NumberPyramid].ItTopRinglet(NumberRinglet))
                        return true;
                else
                        return Pyramids[NumberPyramid].MayTakeRinglet(NumberRinglet);
                };
        bool MayPutRingletOnPyramid(int NumberRinglet, int NumberPyramid)
                {
                if(Pyramids[NumberPyramid].ItTopRinglet(NumberRinglet))
                        return true;
                else
                        return Pyramids[NumberPyramid].MayPutRinglet(NumberRinglet);
                };
        void MoveRinglet(int NumberRinglet, int NumberPyramid)
                {
                for(unsigned i=0; i<Pyramids.size(); i++)
                        Pyramids[i].TakeRinglet(NumberRinglet);
                Pyramids[NumberPyramid].PutRinglet(NumberRinglet);
                };
        bool YouWin()
                {
                if(/*(Pyramids[0].PyramidIsEmpty() && Pyramids[2].PyramidIsEmpty()) ||*/ (Pyramids[0].PyramidIsEmpty() && Pyramids[1].PyramidIsEmpty()))
                        return true;
                else
                        return false;
                }
        };
//---------------------------------------------------------------------------

Последний раз редактировалось ivanso; 14.04.2012 в 23:33.
ivanso вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помоги judovich Помощь студентам 3 30.11.2011 10:41
Помоги разобраться с ошибкой, пожалуйста Turok Паскаль, Turbo Pascal, PascalABC.NET 4 17.06.2008 22:58