В настоящее время я нахожусь в моем последнем учебном году, изучая Высший национальный диплом по компьютерным исследованиям, и в основном в этом заключительном семестре нам необходимо разработать Программный проект, который в основном включает целую систему.
Теперь я думаю о том, что это что-то вроде Robocode, но вместо Java я буду делая это с .Net Framework.
Что такое Robocode?
Для тех из вас, кто не знает, что такое Robocode, это в основном своего рода игра программирования, в которой люди разрабатывают свои собственные роботы, используя методы из интерфейсов классов и загружаемых классов, которые существуют, а затем они сражаются друг с другом в автономном битва на арене... вот так:
alt text http://articles.techrepublic.com.com/i/tr/cms/contentPics/robocode.gif
Итак, в основном, как я уже сказал, я хочу воссоздать этот сценарий с использованием .Net Framework.. и я размещаю этот вопрос здесь, на StackOverflow, в надежде, что более опытные разработчики смогут вести меня в правильном направлении для этого проекта.
То, что я имею в виду до сих пор, - это в основном создать:
- Офлайн-приложение, которое будет служить ареной сражений и пользовательским интерфейсом для создания новых сражений с существующими роботами и т.д.
- Интерактивный интерфейс, который игроки смогут использовать для регистрации новых роботов, просмотра прошлых турнирных баллов и т.д.
- И, очевидно, интерфейсы класса, которые игроки должны будут использовать для создания своих роботов.
Анимация и графика (для реальных сражений)
Теперь, конечно, будет какая-то анимация и движение, когда произойдет битва, и я еще не решил, что еще использовать в качестве средства для этого.
В настоящее время я имею в виду следующие параметры:
- Разработка, как я уже сказал в первых выше маркерах, автономного приложения, которое будет служить основанием для битвы, и все анимации будут выполняться с использованием в основном кода С#
- Или создайте приложение Silverlight, которое будет обрабатывать анимации (таким образом, сменив сценарий с автономного приложения на онлайн-приложение
- Или, возможно, наименее выполнимый из них, создайте анимацию битвы с помощью JavaScript, с чем-то вроде Canvas
Как вы думаете, может быть более подходящим для этого конкретного сценария?
Разработка классов и интерфейсов
Чтобы игроки разработали роботы, я предоставлю некоторые интерфейсы классов, которые они смогут использовать как в Robocode.
Примеры таких событий и методов могут включать:
public void run () {}
public void onScannedRobot(ScannedRobotEvent e) {}
walk(/* ammount in pixels or w/e to walk to */);
turnRight(/* value in degrees for an angular turn */);
//etc...
Вот фрагмент кода в Robocode (Java):
public class MyFirstRobot extends Robot {
public void run() {
while (true) {
ahead(100);
turnGunRight(360);
back(100);
turnGunRight(360);
}
}
}
Для того, чтобы на самом деле сделать битвы, я думаю использовать Reflection, чтобы на самом деле прочитать, какие методы использует пользователь и внедряет их для запуска и вызова в определенные моменты битвы и т.д.
Теперь, что я любезно и смиренно прошу у вас опытных разработчиков, я должен немного поучаствовать в этом проекте и посоветовать мне, что нужно сделать... для начинающих этот проект возможен на все? И если это на самом деле, , откуда мне нужно действительно начать с моего проекта?
Что касается технологий и программного обеспечения, которые я намерен использовать, выполните следующие действия:
- .NET Framework 3.5 с С# 3.0
- LINQ (языковой интегральный запрос)
- SQL Server 2008
- Microsoft Visual Studio 2008
- jQuery Framework
- Возможно, Silverlight
Я благодарю всех вас, даже за то, что вы смогли прочитать до этого момента в моем вопросе, и мне нужно и очень ценю всю помощь, которую я могу получить, чтобы закончить этот проект.
Спасибо за ваше время и усилия.
Btw, до сих пор, кроме Robocode, я нашел эти игры, похожие на то, что я пытаюсь создать