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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.08.2009, 19:26   #1
kmail
Новичок
Джуниор
 
Регистрация: 22.08.2009
Сообщений: 1
По умолчанию Пожалуйста, помогите доделать программу по C++

"Прыгающие шарики"
Игровая доска имеет девять лунок, в которых лежат четыре черных и четыре белых шара.
Требуется передвинуть черные шары на место белых, а белые на место черных. Шар можно передвигать либо в соседнюю с ним пустую лунку, либо в пустую лунку, находящуюся непосредственно за ближайшим шаром. Выигрывает тот, кто быстрее переместит шарики.

Код:
#include <iostream.h>

#define W 1          //белый шарик
#define B 2           //черный шарик
#define H 0           //пустая лунка
#define SIZE 9      //8-прыжок (через 1) вправо
                          //2-прыжок (через 1) влево
                          //6-ход вправо
                          //4-ход влево

char ball [SIZE] = {W,W,W,W,H,B,B,B,B};
char hole = 4; 
bool isFilan()
{
    return ball [0] == B &&   
             ball [1] == B &&
             ball [2] == B &&
             ball [3] == B &&           
             ball [4] == H &&
             ball [5] == W &&   
             ball [6] == W &&
             ball [7] == W &&
             ball [8] == W;      
}

void processStep()
{
	int a, d, i, q;           
    static int Step = 0;   
    Step ++;
    bool Change = false;

	while(1)
	{

	for (i = 0; i < SIZE; i++)
	cout<<ball [i];
	cout<<"\n";
	cin>>d;

    if (hole > 0 && d==6)
    {
        Change = true;

        ball [hole] = ball [hole-1];
        hole --;
        ball [hole] = H;

	}
	if (hole > 0  && d==4)
    {
        Change = true;

        ball [hole] = ball [hole+1];
        hole ++;
        ball [hole] = H;

	}

	if (hole > 0 && d==8)
	{
		ball [hole] = ball [hole-2];
        hole -=2;
        ball [hole] = H;
	}

	if (hole > 0  && d==2)
	{
		ball [hole] = ball [hole+2];
        hole +=2;
        ball [hole] = H;
	}
	}
    
}

void main()
{
    processStep();
}
Играют два пользователя. Нужно дописать окончание, если ходов больше нет - вывести сообщение.

Последний раз редактировалось AlDelta; 22.08.2009 в 19:33.
kmail вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Пожалуйста помогите доделать программу Kaddafi Паскаль, Turbo Pascal, PascalABC.NET 2 14.05.2009 21:08
Помогите доделать программу работающую с Веб-Камерой Levsha100 Мультимедиа в Delphi 2 23.04.2009 17:49
помогите доделать рекурсивную программу ELdarr Общие вопросы C/C++ 0 23.01.2009 23:14