2010-07-26 3 views
4

Я хочу встроить железный рубин в грязь, которую я создаю, и по какой-то причине у меня возникают проблемы с поиском правильных примеров для начала.Как вставить железный рубин в программу C#?

Все, что я хочу сделать, это создать игру, где «вы» игрок запрограммирует ботов в железном рубине, а затем я буду перебирать код в C# и сделать ботов делать то, что вы хотите. Кроме того, я хочу сделать так, чтобы код можно анализировать как строку в виде железного рубинового кода, который я буду использовать для управления ботами.

Я понимаю, что dlr и clr - две разные вещи, но не могут найти образец. Фактическая игра - это классический сервер telnet, который я закодировал на C# с нуля и подключается через строгий протокол telnet.

Это можно найти здесь: pttmud.the-simmons.net: 4243 через telnet-клиент, и он должен работать.

ответ

0

Не совсем рубин, чем ниже то, что я для IronPython (убедитесь, что сборки ссылаются первая):

 runtime = IronPython.Hosting.Python.CreateRuntime(); 
    } 

    public void Run(string script, params object[] variables) 
    { 
     var scriptSource = runtime.GetEngineByFileExtension("py").CreateScriptSourceFromString(script, SourceCodeKind.Statements); 
     var scope = runtime.GetEngineByFileExtension("py").CreateScope(); 

     foreach (var variable in variables) 
      foreach (var property in variable.GetType().GetProperties()) 
       if (property.CanRead) 
        scope.SetVariable(property.Name, property.GetValue(variable, null)); 

     scriptSource.Execute(scope); 

Здесь наиболее важным элементом является механизм сценария. Вы можете запросить его по различным параметрам (расширение в моем случае) и создать сценарии из памяти или из источников диска.

Можно также обменивать переменные, которые также показаны.

Я думаю, что теперь в C# 4.0 есть лучший способ, поскольку сам C# стал динамическим языком программирования.

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