Автор: compiler 9.04.2007 20:56
Добрый день!
есть программа она предлагает другим какоето
не так
представьте игру в 21 очко...
как реализовать взаимодействие между программами.. (при этом изначально главная программа не знает количество игроков...)
наверно надо как-то через внешний файл...
Заранее благодарен!
Автор: мисс_граффити 9.04.2007 21:00
игра, если не ошибаюсь, состоит в том, что человек получает карты и решает, брать ли еще одну. выигрывает тот, сумма очков которого ближе к 21, но не превышает. так?
а где здесь две программы умещаются? В чем функции каждой из них?
Автор: compiler 9.04.2007 21:05
игра не совсем эта, это для примера...
Есть прога которая сдаёт карты.. А есть прога/проги которые играют
Все программы могут быть написанные разными людьми и здорово было бы если они и компилировались отдельно... а взаимодействовали при самом выполнении..
Автор: volvo 9.04.2007 21:09
Механизм Unit-ов для этого и разрабатывался, чтобы компилировать отдельно разные части программы, возможно, создаваемые разными людьми...
Единственное, что надо - общий интерфейс, определяющий взаимодействие частей программы между собой, но от этого никуда не денешься в любом случае, даже если делать разные программы.
Автор: compiler 9.04.2007 21:23
Цитата(volvo @ 9.04.2007 17:09)
Механизм Unit-ов для этого и разрабатывался, чтобы компилировать отдельно разные части программы, возможно, создаваемые разными людьми...
Единственное, что надо - общий интерфейс, определяющий взаимодействие между блоками, но от этого никуда не денешься в любом случае, даже если делать разные программы.
а где можно посмотреть наглядный пример...
я не совсем понял причем тут Unit-ы... как с ними работать(механизм для этой программы)
может как-то через файл... одна программа пишет другая читает...
в общем вот моя главная программа
GAME0.0.5.PAS ( 1.63 килобайт )
Кол-во скачиваний: 538 и мои 2 "игрока"
pl0.0.1.pas ( 471 байт )
Кол-во скачиваний: 545
2pl0.01.pas ( 428 байт )
Кол-во скачиваний: 538
Автор: Lapp 10.04.2007 2:03
Цитата(мисс_граффити @ 9.04.2007 18:00)
а где здесь две программы умещаются? В чем функции каждой из них?
Допустим, несколько человек разрабатывают
каждый свою программу, играющую в эту игру с применением ИИ. После этого нужно устроить турнир между этими программами и посмотреть, чья выиграет. При этом надо организовать взаимодействие этих программ от хода к ходу..
compiler, я правильно понял вопрос?
Цитата(compiler @ 9.04.2007 18:23)
может как-то через файл... одна программа пишет другая читает...
Да, через файл, если речь идет о ТР. Только надо все продумать. Можно, чтоб каждая прога писала в свой файл: одна использует файл f1.dat, другая в f2.dat, третья в f3.dat и т.д. Каждая программа ждет появления файла предыдущего игрока. Как только он появляется - это значит, ее ход. Она его читает и стирает. Обрабатывает данные, ходит (то есть записывает данные в свой файл). Следующая видит, что эта сходила, и т.д.
32-битные компиляторы могут предоставить другие средства - сокеты, например.. Также есть механизм семафоров.. Но тебе пока будет достаточно обмена через файлы, мне кажется.
Автор: volvo 10.04.2007 2:46
compiler,
что именно должна возвращать программа? Через код возврата можно вернуть целое число 0 .. 255, если этого тебе достаточно, то можно организовать последовательный запуск программ через Exec, и последующий анализ DosExitCode (туда пишется значение n, которое программа возвращает через Halt(n))...
Хотя все-таки было бы проще ИИ каждого игрока скомпилировать в TPU файл и присоединить их все к программе-тестеру...
Автор: compiler 14.04.2007 22:38
Добрый день
Lapp понял правильно...
Из новых предложеных вариантов я ничего не понял //возращать значение до 255 не то...
где можно посмотреть пример реализации предложеной Lapp-ом и/или обьяснение к другим вариантам..