Я в настоящее время учусь на последнем курсе в школе, готовлюсь к высшему национальному диплому по информатике, и в основном в этом последнем семестре нам нужно разработать программный проект, который в основном включает в себя целую систему .
Теперь я собираюсь сделать что-то вроде Robocode , но вместо Java я буду делать это с .Net Framework.
Что такое Робокод?
Для тех из вас, кто не знает, что такое Robocode, это в основном своего рода игра для программирования, в которой люди разрабатывают своих собственных роботов, используя методы из интерфейсов классов и загружаемых классов, которые существуют, а затем они сражаются друг друга в автономной битве на арене ... вот так:
альтернативный текст http://articles.techrepublic.com.com/i/tr/cms/contentPics/robocode.gif
Так что, как я уже сказал, я хочу воссоздать такой сценарий, используя .Net Framework ... и я публикую этот вопрос здесь, в StackOverflow, в надежде, что более опытные разработчики смогут направить меня в правильном направлении. для этого проекта.
Что я имею в виду до сих пор, так это в основном создать:
- Автономное приложение, которое будет служить ареной сражений и пользовательским интерфейсом для создания новых сражений с существующими роботами и т. П.
- Онлайн-интерфейс, который игроки смогут использовать для регистрации новых роботов, просмотра результатов турниров и т. Д. ...
- И, очевидно, интерфейсы классов, которые игроки должны будут использовать для создания своих роботов.
Анимация и графика (для реальных сражений)
Теперь, конечно, во время битвы будет какая-то анимация и движение, и я еще не решил, что еще использовать в качестве средства для этого.
Опции, которые я сейчас имею в виду:
- Разработка, как я сказал в первых пунктах выше, автономного приложения, которое будет служить полем битвы, и все анимации будут выполняться с использованием в основном кода C #
- Или разработайте приложение 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, с C # 3.0
- LINQ (Language Integrated Query)
- SQL Server 2008
- Microsoft Visual Studio 2008
- jQuery Framework
- Возможно Silverlight
Я благодарю вас всех, даже за то, что мне удалось прочитать этот вопрос до этого момента, и я буду нуждаться и очень ценю всю помощь, которую я могу получить, чтобы закончить этот проект.
Спасибо за ваше время и усилия.
Кстати, до сих пор, кроме Робокод , я обнаружил, что эти игры похожи на то, что я пытаюсь создать: