Я пишу простую игру в командной строке в Ruby. Мне нужен основной код игры, а затем независимый код для двух игроков, которые будут написаны двумя разными людьми или командами. Таким образом, основная игра должна позволить игрокам играть без изменения кода.Программы, работающие вместе
Я думал о том, как это сделать, но это самый большой проект программирования, который я когда-либо делал, и у меня, честно говоря, еще нет хорошей идеи.
Должны ли оба игрока-программы определять метод, который вызывает основная игра? Должен ли я иметь класс Player и иметь подкласс класса Player-Programms? Я пробовал несколько вещей, но, похоже, это не то, что я искал, или то, что можно считать достойным дизайном.
Что было бы хорошим способом сделать это в Ruby (или на любом другом языке, так как проблема является общей проблемой программирования)?
Надеюсь, я смог правильно сформулировать вопрос.
Являются ли игровые программы «требуемыми» или являются отдельными процессами? – Linuxios
Не знаю. Я мог бы иметь стандартное имя файла, которое player1.rb и player2.rb и требуют их. Но я предпочел бы использовать что-то другое, например, как предложил Асмунд Элдхусет. Я хотел бы иметь разные ИИ и позволить им играть друг с другом. Что ты предлагаешь? – kmikael
Если игра в игру состоит только из одного или двух раз, когда игрок должен быть опрошен, вы можете использовать объекты lambdas или method. Это будет немного легче. Или вы можете использовать подход «load (file, true)» для кода песочного бокса. Или вы можете запускать их как отдельные потоки Ruby с пониженными привилегиями и запрашивать их через некоторую согласованную переменную. Это действительно зависит от количества сообщений между вашим программным обеспечением и программным обеспечением для воспроизведения. – Linuxios