diff --git a/Progrart.Core/JSExecution/ExecutionEngine.cs b/Progrart.Core/JSExecution/ExecutionEngine.cs index 4cdcf87..a019a7a 100644 --- a/Progrart.Core/JSExecution/ExecutionEngine.cs +++ b/Progrart.Core/JSExecution/ExecutionEngine.cs @@ -83,6 +83,36 @@ namespace Progrart.Core.JSExecution _obj.Set("floor", JsObject.FromObject(Engine, (object)MathFunctions.floor)); _obj.Set("sinh", JsObject.FromObject(Engine, (object)MathFunctions.sinh)); _obj.Set("cosh", JsObject.FromObject(Engine, (object)MathFunctions.cosh)); + Engine.SetValue("random", JsObject.FromObject(Engine, (int seed) => + { + var obj = new JsObject(Engine); + Random random = new Random(seed); + obj.Set("Next", JsObject.FromObject(Engine, () => + { + return random.Next(); + })); + obj.Set("NextMax", JsObject.FromObject(Engine, (int max) => + { + return random.Next(max); + })); + obj.Set("NextFloat", JsObject.FromObject(Engine, () => random.NextDouble())); + return obj; + })); + Engine.SetValue("random_undetermined", JsObject.FromObject(Engine, () => + { + var obj = new JsObject(Engine); + Random random = new Random(); + obj.Set("Next", JsObject.FromObject(Engine, () => + { + return random.Next(); + })); + obj.Set("NextMax", JsObject.FromObject(Engine, (int max) => + { + return random.Next(max); + })); + obj.Set("NextFloat", JsObject.FromObject(Engine, () => random.NextDouble())); + return obj; + })); } string formSymbol(Dictionary symbols) { diff --git a/Progrart.Desktop/Progrart.Desktop.csproj b/Progrart.Desktop/Progrart.Desktop.csproj index 44231bb..3ef6471 100644 --- a/Progrart.Desktop/Progrart.Desktop.csproj +++ b/Progrart.Desktop/Progrart.Desktop.csproj @@ -1,39 +1,33 @@  - WinExe - net10.0 enable true + ProgrartDesktop - app.manifest progrart_app_icon.ico - - + - - - - + + + - - - + - None - All + None + All - + - - + - + \ No newline at end of file