PMG https://forum.pmg.org.ru/ |
|
Сдвиг фишек https://forum.pmg.org.ru/viewtopic.php?f=3&t=111 |
Страница 2 из 2 |
Автор: | MagicWolf [ 09 авг 2006 08:59 ] |
Заголовок сообщения: | |
Уже пробывал реализовать... |
Автор: | R.I.P. [ 09 авг 2006 13:23 ] |
Заголовок сообщения: | |
Код: 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; } } |
Автор: | MagicWolf [ 09 авг 2006 16:10 ] |
Заголовок сообщения: | |
Просто . И как работает? |
Автор: | R.I.P. [ 09 авг 2006 16:24 ] |
Заголовок сообщения: | |
Ах, да, инструкция к коду.... N и D[N] - глобальные. Когда нужно узнать, как ходит комп пишем: Код: int x, y;
Comp(&x, &y); D[x]-=y; |
Автор: | MagicWolf [ 10 авг 2006 08:29 ] |
Заголовок сообщения: | |
Так у тебя наверное уже готовая прога есть? Посмотреть можно? |
Автор: | R.I.P. [ 10 авг 2006 15:00 ] |
Заголовок сообщения: | |
Пожалуйста: Код: #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 клеток). |
Автор: | MagicWolf [ 11 авг 2006 10:07 ] |
Заголовок сообщения: | |
Ok, спасибо, надо попробывать ... |
Страница 2 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |