PMG

Форумы по созданию игр
Текущее время: 28 мар 2024 22:32

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: 09 авг 2006 08:59 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Уже пробывал реализовать...

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 авг 2006 13:23 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 08 авг 2006 16:47
Сообщения: 7
Код:
const int N; // число дорожек
int D[N]; // Расстояния до левого края

void Comp(int *ot, int *sk) // ot - откуда(номер дорожки), sk - сколько шагов
{
   int sum=0;
   for (int a = 0; a < N; a ++)
      sum ^= D[a];

   if (sum==0) // не повезло - игрок в более выигрышном положении
      for (int a = 0; a < N; a ++)
         if (D[a]>0)
         {
            *ot = a; *sk = 1; return; // здесь можно сделать какой-нить рандом
         }

   for (int a = 0; a < N; a ++)
      if ((D[a]^sum) < D[a])
      {
         *ot = a; *sk = D[a]-(D[a]^sum); return;
      }
}

=)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 авг 2006 16:10 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Просто ;). И как работает?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 авг 2006 16:24 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 08 авг 2006 16:47
Сообщения: 7
Ах, да, инструкция к коду....

N и D[N] - глобальные.
Когда нужно узнать, как ходит комп пишем:
Код:
int x, y;
Comp(&x, &y);
D[x]-=y;

=)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 авг 2006 08:29 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Так у тебя наверное уже готовая прога есть? Посмотреть можно?

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 10 авг 2006 15:00 
Не в сети
Новичок
Аватара пользователя

Зарегистрирован: 08 авг 2006 16:47
Сообщения: 7
Пожалуйста:

Код:
#include <iostream>

#define MAX_N 10

using namespace std;
int N, D[MAX_N], x, y;

void Comp(int *ot, int *sk)
{...}

bool Change(int ot, int sk)
{
   D[ot]-=sk;

   for (int a = 0; a < N; a ++)
      if (D[a]!=0)
         return false;
   return true;
}

void Out()
{
   cout << "\n";
   for (int a = 0; a < N; a ++)
         cout << D[a] << "\t";
   cout << "\n";
}

int main()
{
   char ch;
   cout << "Kolichestvo Dorojek(max10)->";
   cin >> N;
   cout << "Rasstojanija po Dorojkam(max32000)->";
   for (int a = 0; a < N; a ++)
      cin >> D[a];

   while(1)
   {
      Out();
      cout << "(Dorojka)(Naskolko dvigat)->";
      cin >> x >> y;
      if (Change(x-1, y))
      {
         cout << "Tyi vyigral";
         break;
      }
      Out();
      Comp(&x, &y);
      cout << x+1 << " " << y << "\n";
      if (Change(x, y))
      {
         cout << "Comp vyigral";
         break;
      }
   }

   cout << "\nVvedite cho-nibud->";
   cin >> ch;
    return 0;
}


Только здесь нет защиты от дурака. Прога писалась, чтобы отладить алгоритм. (Совет: чтобы начать игру вторым, надо подвинуть фишку на 0 клеток).
=)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 11 авг 2006 10:07 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Ok, спасибо, надо попробывать ...

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 22 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB