2009-10-01 3 views
2

Я студент CS, и мне бы хотелось сделать шахматную игру в командной строке. В идеале я мог бы выполнить ping мои движения прямо к моему оппоненту и просто для удовольствия, я бы предпочел использовать ASCII-искусство для печати доски (без памяти) в командной строке.Совет для нового проекта - Командная строка Шахматная игра между двумя машинами Ubuntu

У меня есть 4-летняя степень компьютерной науки под моим поясом, и я только начинаю работать программистом на Java. Я хочу вернуться к основам, чтобы немного повеселиться, но я в тупике о том, как начать.

Какая связь вы установили бы и как? Какой язык вы бы использовали и что было бы самым сложным в этом проекте, на ваш взгляд.

2 машины linux в той же сети, я могу легко пинговать машину.

Приветствия,

Гав

EDIT

Какие мысли у меня о возможном подходе? Я мог бы сделать это на Java легко и, возможно, это лучший вариант для меня. Создайте исполняемый Jar и запустите его из командной строки. Я просто надеялся узнать новый язык или умение с использованием языка сценариев или подобного. Я просто ничего не знаю о настройке соединения в Python, например.

Извините, я знаю, что вопрос был немного расплывчатым, но я просто искал пару указателей, ничего в глубине. Какую технологию вы бы использовали.

+0

Какие у вас есть мысли о возможном подходе? –

+0

Возможно, вас заинтересует gnuchess. – Daenyth

+0

«Я просто ничего не знаю о настройке соединения в Python, например». <- Я не могу придумать лучшего объяснения, чтобы учиться;) –

ответ

1

Я сделал что-то похожее для своего онлайн-шахматного сайта по адресу: www.geekswithchess.com.

Я реализовал свою шахматную систему на C#, используя архитектуру клиентского сервера. Я использовал Microsoft Silverlight для клиентов и служб Windows Communication Foundation (WCF) для сервера.

Вы можете пойти с клиентом к клиенту desingn, но каждый клиент должен будет хранить свою собственную информацию, такую ​​как оценка, выигрывает профиль. Это сделало бы очень легким взломать и, например, изменить ваш счет.

Я бы настоятельно предложил онлайн-клиенту по соображениям безопасности. Вы можете ограничить доменное имя, которое имеет доступ к вашим веб-службам, и предотвратить любой несанкционированный доступ к вашему серверу. Если вы создадите распределенный клиент, вам будет гораздо сложнее защитить, так как каждый может загрузить клиента и получить доступ к вашим услугам. Вы также должны учитывать, что в этом дизайне кто-то может сделать своего собственного клиента, который обманывает, используя компьютерный шахматный движок.

Если вам нужна дополнительная помощь, не стесняйтесь искать мою contact информацию на моей веб-странице.

Если вы хотели бы узнать больше о написании шахматного движка и скачать некоторый свободный исходный код, посетите мой блог: www.chessbin.com

1

Если вы используете Java, вы можете использовать Java-сокеты. Я слышал, что очень просто построить связь между ними.

На быстрый поиск Google, я пришел с этим: http://www.devarticles.com/c/a/Java/Socket-Programming-in-Java/

Это может быть полезным.

+0

Используйте TCP для фактической связи, но я бы рекомендовал использовать широковещательный канал UDP или, возможно, даже локальный многоадресный канал, чтобы «обнаружить» другого игрока. Немного перехитрить это, но это хорошая практика. – kwatford

1

Если вы делаете соединение сокетов между машинами, подумайте о тестировании.

Было бы намного легче проверить, отправляют ли они текстовые перемещения друг к другу, тогда вы можете протестировать его вручную с помощью telnet, а не с помощью какой-либо сложной вещи удаленного объекта (хотя, вероятно, есть много инструментов для тестирования/мониторинга системы типа J2EE).

0

Я сделал шахматы командной строки с помощью Java. Однако я не реализовал онлайн-режим. Но Java, вероятно, будет лучшим языком для использования.

 Смежные вопросы

  • Нет связанных вопросов^_^