ranger-compiler 2.1.70 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +114 -0
- package/README.md +956 -133
- package/{compiler/Lang.clj → dist/Lang.rgr} +2345 -75
- package/dist/README.md +116 -0
- package/dist/{bin/api.d.ts → api.d.ts} +430 -154
- package/dist/api.js +34345 -0
- package/{lib/Ajax.clj → dist/lib/Ajax.rgr} +1 -1
- package/{lib/CmdParams.clj → dist/lib/CmdParams.rgr} +72 -72
- package/{lib/Crypto.clj → dist/lib/Crypto.rgr} +1 -1
- package/{lib/DOMLib.clj → dist/lib/DOMLib.rgr} +2 -2
- package/{lib/Engine3D.clj → dist/lib/Engine3D.rgr} +1 -1
- package/{lib/ImmutableVector.clj → dist/lib/ImmutableVector.rgr} +364 -364
- package/{lib/IndexedDB.clj → dist/lib/IndexedDB.rgr} +1 -1
- package/{lib/JSON.clj → dist/lib/JSON.rgr} +105 -2
- package/{lib/JinxProcess.clj → dist/lib/JinxProcess.rgr} +3 -3
- package/{lib/Storage.clj → dist/lib/Storage.rgr} +1 -1
- package/{lib/Timers.clj → dist/lib/Timers.rgr} +176 -170
- package/{lib/ViewLib.clj → dist/lib/ViewLib.rgr} +1 -1
- package/dist/lib/lib/ACEEditor.rgr +5 -0
- package/dist/lib/lib/Ajax.rgr +196 -0
- package/dist/lib/lib/CmdParams.rgr +72 -0
- package/dist/lib/lib/Crypto.rgr +90 -0
- package/dist/lib/lib/DOMLib.rgr +307 -0
- package/{examples/3D/Engine3D.clj → dist/lib/lib/Engine3D.rgr} +870 -857
- package/dist/lib/lib/ImmutableVector.rgr +364 -0
- package/dist/lib/lib/IndexedDB.rgr +32 -0
- package/{compiler/JSON.clj → dist/lib/lib/JSON.rgr} +106 -3
- package/dist/lib/lib/JinxProcess.rgr +838 -0
- package/dist/lib/lib/SQL.rgr +44 -0
- package/dist/lib/lib/ServiceLib.rgr +9 -0
- package/dist/lib/lib/Storage.rgr +89 -0
- package/dist/lib/lib/Time.rgr +75 -0
- package/dist/lib/lib/Timers.rgr +176 -0
- package/dist/lib/lib/TypedArrays.rgr +14 -0
- package/dist/lib/lib/ViewLib.rgr +851 -0
- package/dist/lib/lib/WebLib.rgr +47 -0
- package/dist/lib/lib/WebServerLib.rgr +137 -0
- package/{lib/ranger-dir.clj → dist/lib/lib/ranger-dir.rgr} +1 -1
- package/{compiler/stdlib.clj → dist/lib/lib/stdlib.rgr} +42 -19
- package/{lib/stdops.clj → dist/lib/lib/stdops.rgr} +1 -1
- package/dist/lib/ranger-dir.rgr +175 -0
- package/{lib/stdlib.clj → dist/lib/stdlib.rgr} +2 -2
- package/dist/lib/stdops.rgr +168 -0
- package/dist/package.json +47 -0
- package/{compiler/bin/output.js → dist/rgrc.js} +15377 -7936
- package/dist/stdops.rgr +168 -0
- package/package.json +196 -39
- package/adventofcode/day1/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day1/bin/LambdaSignature2.java +0 -3
- package/adventofcode/day1/bin/LambdaSignature3.java +0 -3
- package/adventofcode/day1/bin/day1.cpp +0 -124
- package/adventofcode/day1/bin/day1.go +0 -75
- package/adventofcode/day1/bin/day1.js +0 -45
- package/adventofcode/day1/bin/day1.php +0 -46
- package/adventofcode/day1/bin/day1.scala +0 -48
- package/adventofcode/day1/bin/day1.swift +0 -48
- package/adventofcode/day1/bin/day1_part2.cpp +0 -180
- package/adventofcode/day1/bin/day1_part2.go +0 -123
- package/adventofcode/day1/bin/day1_part2.js +0 -76
- package/adventofcode/day1/bin/day1_part2.php +0 -88
- package/adventofcode/day1/bin/day1_part2.scala +0 -81
- package/adventofcode/day1/bin/day1_part2.swift +0 -91
- package/adventofcode/day1/bin/day_one.java +0 -38
- package/adventofcode/day1/bin/day_one_part_two.java +0 -57
- package/adventofcode/day1/bin/operatorsOf.java +0 -37
- package/adventofcode/day1/bin/operatorsOf_5.java +0 -10
- package/adventofcode/day1/bin/operatorsOfboolean_5.java +0 -10
- package/adventofcode/day1/bin/variant.hpp +0 -2416
- package/adventofcode/day1/compile.bat +0 -7
- package/adventofcode/day1/compile2.bat +0 -7
- package/adventofcode/day1/day1.clj +0 -19
- package/adventofcode/day1/day1_part2.clj +0 -43
- package/adventofcode/day1/input1.txt +0 -1
- package/adventofcode/day2/bin/LambdaSignature1.class +0 -0
- package/adventofcode/day2/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day2/bin/LambdaSignature2.class +0 -0
- package/adventofcode/day2/bin/LambdaSignature2.java +0 -3
- package/adventofcode/day2/bin/day2.cpp +0 -133
- package/adventofcode/day2/bin/day2.go +0 -85
- package/adventofcode/day2/bin/day2.js +0 -45
- package/adventofcode/day2/bin/day2.php +0 -59
- package/adventofcode/day2/bin/day2.scala +0 -54
- package/adventofcode/day2/bin/day2.swift +0 -62
- package/adventofcode/day2/bin/day2_part2.cpp +0 -150
- package/adventofcode/day2/bin/day2_part2.go +0 -101
- package/adventofcode/day2/bin/day2_part2.js +0 -54
- package/adventofcode/day2/bin/day2_part2.php +0 -80
- package/adventofcode/day2/bin/day2_part2.scala +0 -68
- package/adventofcode/day2/bin/day2_part2.swift +0 -82
- package/adventofcode/day2/bin/day_two.java +0 -61
- package/adventofcode/day2/bin/day_two_part_two$1$1$1.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two$1$1.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two$1.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two.class +0 -0
- package/adventofcode/day2/bin/day_two_part_two.java +0 -80
- package/adventofcode/day2/bin/operatorsOf.class +0 -0
- package/adventofcode/day2/bin/operatorsOf.java +0 -18
- package/adventofcode/day2/bin/variant.hpp +0 -2416
- package/adventofcode/day2/compile.bat +0 -7
- package/adventofcode/day2/compile2.bat +0 -7
- package/adventofcode/day2/day2.clj +0 -60
- package/adventofcode/day2/day2_part2.clj +0 -69
- package/adventofcode/day2/input1.txt +0 -1
- package/adventofcode/day3/bin/Grid.java +0 -92
- package/adventofcode/day3/bin/GridRow.java +0 -5
- package/adventofcode/day3/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day3/bin/LambdaSignature2.java +0 -3
- package/adventofcode/day3/bin/LambdaSignature3.java +0 -3
- package/adventofcode/day3/bin/day3.cpp +0 -64
- package/adventofcode/day3/bin/day3.go +0 -55
- package/adventofcode/day3/bin/day3.js +0 -42
- package/adventofcode/day3/bin/day3.php +0 -41
- package/adventofcode/day3/bin/day3.scala +0 -52
- package/adventofcode/day3/bin/day3.swift +0 -43
- package/adventofcode/day3/bin/day3_part2.cpp +0 -216
- package/adventofcode/day3/bin/day3_part2.go +0 -188
- package/adventofcode/day3/bin/day3_part2.js +0 -123
- package/adventofcode/day3/bin/day3_part2.php +0 -135
- package/adventofcode/day3/bin/day3_part2.swift +0 -131
- package/adventofcode/day3/bin/day_three_part_two.java +0 -43
- package/adventofcode/day3/bin/day_two.java +0 -42
- package/adventofcode/day3/bin/operatorsOf.java +0 -14
- package/adventofcode/day3/bin/variant.hpp +0 -2416
- package/adventofcode/day3/compile.bat +0 -7
- package/adventofcode/day3/compile2.bat +0 -7
- package/adventofcode/day3/day3.clj +0 -42
- package/adventofcode/day3/day3_part2.clj +0 -112
- package/adventofcode/day4/bin/LambdaSignature1.java +0 -3
- package/adventofcode/day4/bin/day4.cpp +0 -118
- package/adventofcode/day4/bin/day4.go +0 -75
- package/adventofcode/day4/bin/day4.js +0 -40
- package/adventofcode/day4/bin/day4.php +0 -52
- package/adventofcode/day4/bin/day4.scala +0 -47
- package/adventofcode/day4/bin/day4.swift +0 -56
- package/adventofcode/day4/bin/day4_part2.go +0 -129
- package/adventofcode/day4/bin/day4_part2.js +0 -72
- package/adventofcode/day4/bin/day_four.java +0 -41
- package/adventofcode/day4/bin/inputData.java +0 -7
- package/adventofcode/day4/bin/operatorsOf.java +0 -11
- package/adventofcode/day4/bin/variant.hpp +0 -2416
- package/adventofcode/day4/compile.bat +0 -7
- package/adventofcode/day4/compile2.bat +0 -7
- package/adventofcode/day4/day4.clj +0 -32
- package/adventofcode/day4/day4_part2.clj +0 -44
- package/adventofcode/day4/input.clj +0 -519
- package/adventofcode/day4/input.txt +0 -512
- package/bin/api.ts +0 -24471
- package/bin/compiler.ts +0 -24482
- package/bin/output.js +0 -23819
- package/compiler/ColorConsole.clj +0 -22
- package/compiler/ContextOperators.clj +0 -75
- package/compiler/FlowEnterVarDef.clj +0 -223
- package/compiler/InputFileSystem.clj +0 -276
- package/compiler/RangerDocs.clj +0 -7
- package/compiler/TFactory.clj +0 -146
- package/compiler/TFiles.clj +0 -23
- package/compiler/TFlow.clj +0 -39
- package/compiler/TNodeFactory.clj +0 -84
- package/compiler/TTypes.clj +0 -188
- package/compiler/VirtualCompiler.clj +0 -807
- package/compiler/bin/ng_Compiler.js +0 -23779
- package/compiler/commonmark_plugin.clj +0 -359
- package/compiler/feat2.bat +0 -2
- package/compiler/feats.bat +0 -9
- package/compiler/feature_tests.clj +0 -192
- package/compiler/index.js +0 -2
- package/compiler/issue_57.clj +0 -25
- package/compiler/makefile_plugin.clj +0 -135
- package/compiler/markdown_plugin.clj +0 -386
- package/compiler/maven_plugin.clj +0 -162
- package/compiler/ng_AndroidPageWriter.clj +0 -299
- package/compiler/ng_CodeNode.clj +0 -756
- package/compiler/ng_CodeNodeCompilerExtensions.clj +0 -839
- package/compiler/ng_Compiler.clj +0 -49
- package/compiler/ng_CompilerGeneric.clj +0 -260
- package/compiler/ng_CompilerOrig.clj +0 -854
- package/compiler/ng_DictNode.clj +0 -346
- package/compiler/ng_DictNode2.clj +0 -316
- package/compiler/ng_Execute.clj +0 -138
- package/compiler/ng_Execute1.clj +0 -129
- package/compiler/ng_FlowWork.clj +0 -3951
- package/compiler/ng_LiveCompiler.clj +0 -1109
- package/compiler/ng_RagnerJavaScriptClassWriter.clj +0 -402
- package/compiler/ng_RangerActiveOperators.clj +0 -86
- package/compiler/ng_RangerAppClassDesc.clj +0 -400
- package/compiler/ng_RangerAppEnums.clj +0 -86
- package/compiler/ng_RangerAppFunctionDesc.clj +0 -127
- package/compiler/ng_RangerAppMessages.clj +0 -15
- package/compiler/ng_RangerAppOperatorDesc.clj +0 -20
- package/compiler/ng_RangerAppParamDesc.clj +0 -388
- package/compiler/ng_RangerAppWriterContext.clj +0 -1793
- package/compiler/ng_RangerArgMatch.clj +0 -638
- package/compiler/ng_RangerCSharpClassWriter.clj +0 -484
- package/compiler/ng_RangerCppClassWriter.clj +0 -1023
- package/compiler/ng_RangerDocGenerator.clj +0 -305
- package/compiler/ng_RangerFlowParser.clj +0 -4992
- package/compiler/ng_RangerFlowParserOrig.clj +0 -4002
- package/compiler/ng_RangerGenericClassWriter.clj +0 -573
- package/compiler/ng_RangerGolangClassWriter.clj +0 -1766
- package/compiler/ng_RangerImmutableExtension.clj +0 -77
- package/compiler/ng_RangerJava7ClassWriter.clj +0 -961
- package/compiler/ng_RangerJavaScriptClassWriter.clj +0 -1040
- package/compiler/ng_RangerKotlinClassWriter.clj +0 -372
- package/compiler/ng_RangerLanguageWriters.clj +0 -14
- package/compiler/ng_RangerLispParser.clj +0 -873
- package/compiler/ng_RangerPHPClassWriter.clj +0 -643
- package/compiler/ng_RangerPlugin.clj +0 -41
- package/compiler/ng_RangerRangerClassWriter.clj +0 -357
- package/compiler/ng_RangerRustClassWriter.clj +0 -420
- package/compiler/ng_RangerScalaClassWriter.clj +0 -818
- package/compiler/ng_RangerSerializeClass.clj +0 -502
- package/compiler/ng_RangerServiceBuilder.clj +0 -63
- package/compiler/ng_RangerSwift3ClassWriter.clj +0 -809
- package/compiler/ng_RangerSwiftClassWriter.clj +0 -0
- package/compiler/ng_RangerTypeClass.clj +0 -45
- package/compiler/ng_SourceParser.clj +0 -241
- package/compiler/ng_SourceParser2.clj +0 -214
- package/compiler/ng_WebPageWriter.clj +0 -39
- package/compiler/ng_jsonParser.clj +0 -340
- package/compiler/ng_p_test.clj +0 -1711
- package/compiler/ng_parser.clj +0 -911
- package/compiler/ng_parser2.clj +0 -735
- package/compiler/ng_parser2_backup.clj +0 -1679
- package/compiler/ng_parser_backup.clj +0 -886
- package/compiler/ng_parser_ok.clj +0 -1718
- package/compiler/ng_parser_ok2.clj +0 -1717
- package/compiler/ng_parser_std_match.clj +0 -687
- package/compiler/ng_parser_std_match2.clj +0 -1012
- package/compiler/ng_parser_v2.clj +0 -1251
- package/compiler/ng_ui.clj +0 -403
- package/compiler/ng_ui_test.clj +0 -18
- package/compiler/ng_writer.clj +0 -338
- package/compiler/ng_xmlParser.clj +0 -472
- package/compiler/ng_xmlParser2.clj +0 -317
- package/compiler/ng_xmlParser3.clj +0 -251
- package/compiler/opdoc.bat +0 -4
- package/compiler/operators.md +0 -290
- package/compiler/p.bat +0 -4
- package/compiler/package.json +0 -10
- package/compiler/pcmd.bat +0 -4
- package/compiler/pcmd2.bat +0 -3
- package/compiler/plaintext_plugin.clj +0 -69
- package/compiler/plugin.bat +0 -19
- package/compiler/plugin2.bat +0 -4
- package/compiler/plugin_app.bat +0 -3
- package/compiler/plugin_apps.clj +0 -27
- package/compiler/plugins.bat +0 -10
- package/compiler/reveal_plugin.clj +0 -409
- package/compiler/simplePlugin.clj +0 -780
- package/compiler/t.bat +0 -3
- package/compiler/test_any.clj +0 -43
- package/compiler/test_call.clj +0 -141
- package/compiler/test_chain.clj +0 -79
- package/compiler/test_json.clj +0 -10
- package/compiler/test_lambda.clj +0 -153
- package/compiler/test_pcmd.clj +0 -32
- package/compiler/test_pcmd2.clj +0 -29
- package/compiler/test_plugin.clj +0 -237
- package/compiler/test_readfile.clj +0 -13
- package/compiler/test_reveal.clj +0 -19
- package/compiler/test_slides.clj +0 -312
- package/compiler/test_types.clj +0 -143
- package/compiler/test_types2.clj +0 -49
- package/compiler/test_types3.clj +0 -53
- package/compiler/test_var.clj +0 -40
- package/compiler/tonpm.bat +0 -14
- package/compiler/tonpm2.bat +0 -12
- package/compiler/ui_plugin.clj +0 -507
- package/compiler/ui_plugin2.clj +0 -427
- package/compiler/update-git.bat +0 -3
- package/compiler/vcomp.bat +0 -4
- package/compiler/viewbuilder_Android.clj +0 -176
- package/compiler/viewbuilder_Web.clj +0 -105
- package/dist/bin/api.js +0 -32422
- package/dist/bin/compiler.d.ts +0 -1638
- package/dist/bin/compiler.js +0 -32444
- package/examples/3D/bin/test_3d.js +0 -329
- package/examples/3D/test_3d.clj +0 -385
- package/examples/EVGColor/EVGColor.clj +0 -310
- package/examples/EVGColor/EVGColorContext.clj +0 -176
- package/examples/EVGColor/bin/EVGColor.js +0 -286
- package/examples/EVGColor/bin/minimized.js +0 -286
- package/examples/SVGPath/SVGPath.clj +0 -625
- package/examples/SVGPath/Vec2.clj +0 -103
- package/examples/SVGPath/bin/SVGPath.cpp +0 -887
- package/examples/SVGPath/bin/SVGPath.js +0 -682
- package/examples/SVGPath/bin/SVGPath.ts +0 -711
- package/examples/SVGPath/bin/minimized.js +0 -578
- package/examples/SVGPath/bin/variant.hpp +0 -2416
- package/examples/minification/Vec2.clj +0 -103
- package/examples/minification/bin/minified.js +0 -44
- package/examples/minification/bin/test.js +0 -117
- package/examples/minification/test.clj +0 -13
- package/fiddle/VirtualCompiler.js +0 -23495
- package/fiddle/browser_editor.js +0 -13240
- package/fiddle/compileEnv.js +0 -1
- package/fiddle/compileEnv.json +0 -1
- package/fiddle/lang_data.js +0 -1
- package/index.html +0 -18
- package/native/httpd/HttpTester.clj +0 -33
- package/native/httpd/RangerWebService.clj +0 -81
- package/operators.md +0 -290
- package/tsconfig.json +0 -29
- package/versions/cpp/compiler.cpp +0 -15032
- package/versions/es6/compiler.js +0 -12860
- package/versions/go/compiler.go +0 -21338
- package/versions/java/AfterCodeNode.java +0 -4
- package/versions/java/ClassJoinPoint.java +0 -6
- package/versions/java/CodeFile.java +0 -42
- package/versions/java/CodeFileSystem.java +0 -72
- package/versions/java/CodeNode.java +0 -807
- package/versions/java/CodeSlice.java +0 -13
- package/versions/java/CodeWriter.java +0 -185
- package/versions/java/ColorConsole.java +0 -8
- package/versions/java/CompilerInterface.java +0 -213
- package/versions/java/DictNode.java +0 -353
- package/versions/java/LiveCompiler.java +0 -772
- package/versions/java/NodeEvalState.java +0 -24
- package/versions/java/OpFindResult.java +0 -6
- package/versions/java/RangerAppArrayValue.java +0 -7
- package/versions/java/RangerAppClassDesc.java +0 -217
- package/versions/java/RangerAppEnum.java +0 -14
- package/versions/java/RangerAppFunctionDesc.java +0 -20
- package/versions/java/RangerAppHashValue.java +0 -11
- package/versions/java/RangerAppInterfaceImpl.java +0 -6
- package/versions/java/RangerAppMethodVariants.java +0 -6
- package/versions/java/RangerAppParamDesc.java +0 -321
- package/versions/java/RangerAppTodo.java +0 -6
- package/versions/java/RangerAppValue.java +0 -10
- package/versions/java/RangerAppWriterContext.java +0 -800
- package/versions/java/RangerArgMatch.java +0 -317
- package/versions/java/RangerBackReference.java +0 -7
- package/versions/java/RangerCSharpClassWriter.java +0 -287
- package/versions/java/RangerCompilerMessage.java +0 -9
- package/versions/java/RangerCppClassWriter.java +0 -725
- package/versions/java/RangerFlowParser.java +0 -2142
- package/versions/java/RangerGenericClassWriter.java +0 -367
- package/versions/java/RangerGolangClassWriter.java +0 -1379
- package/versions/java/RangerJava7ClassWriter.java +0 -652
- package/versions/java/RangerJavaScriptClassWriter.java +0 -305
- package/versions/java/RangerKotlinClassWriter.java +0 -380
- package/versions/java/RangerLispParser.java +0 -845
- package/versions/java/RangerNodeValue.java +0 -9
- package/versions/java/RangerPHPClassWriter.java +0 -527
- package/versions/java/RangerParamEventHandler.java +0 -6
- package/versions/java/RangerParamEventList.java +0 -5
- package/versions/java/RangerParamEventMap.java +0 -27
- package/versions/java/RangerRangerClassWriter.java +0 -268
- package/versions/java/RangerRefForce.java +0 -7
- package/versions/java/RangerScalaClassWriter.java +0 -365
- package/versions/java/RangerSerializeClass.java +0 -148
- package/versions/java/RangerSwift3ClassWriter.java +0 -548
- package/versions/java/RangerTypeClass.java +0 -17
- package/versions/java/SourceCode.java +0 -65
- package/versions/php/compiler.php +0 -13830
- package/versions/swift3/compiler.swift +0 -12542
- /package/{lib/ACEEditor.clj → dist/lib/ACEEditor.rgr} +0 -0
- /package/{lib/SQL.clj → dist/lib/SQL.rgr} +0 -0
- /package/{lib/ServiceLib.clj → dist/lib/ServiceLib.rgr} +0 -0
- /package/{lib/Time.clj → dist/lib/Time.rgr} +0 -0
- /package/{lib/TypedArrays.clj → dist/lib/TypedArrays.rgr} +0 -0
- /package/{lib/WebLib.clj → dist/lib/WebLib.rgr} +0 -0
- /package/{lib/WebServerLib.clj → dist/lib/WebServerLib.rgr} +0 -0
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
call ranger-compiler day2.clj -l=es6
|
|
2
|
-
call ranger-compiler day2.clj -l=go
|
|
3
|
-
call ranger-compiler day2.clj -l=php
|
|
4
|
-
call ranger-compiler day2.clj -l=cpp
|
|
5
|
-
call ranger-compiler day2.clj -l=java7
|
|
6
|
-
call ranger-compiler day2.clj -l=scala -scalafiddle
|
|
7
|
-
call ranger-compiler day2.clj -l=swift3
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
call ranger-compiler day2_part2.clj -l=es6
|
|
2
|
-
call ranger-compiler day2_part2.clj -l=go
|
|
3
|
-
call ranger-compiler day2_part2.clj -l=php
|
|
4
|
-
call ranger-compiler day2_part2.clj -l=cpp
|
|
5
|
-
call ranger-compiler day2_part2.clj -l=java7
|
|
6
|
-
call ranger-compiler day2_part2.clj -l=scala -scalafiddle
|
|
7
|
-
call ranger-compiler day2_part2.clj -l=swift3
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
class day_two {
|
|
4
|
-
static fn main() {
|
|
5
|
-
def data `
|
|
6
|
-
3751 3769 2769 2039 2794 240 3579 1228 4291 220 324 3960 211 1346 237 1586
|
|
7
|
-
550 589 538 110 167 567 99 203 524 288 500 111 118 185 505 74
|
|
8
|
-
2127 1904 199 221 1201 250 1119 377 1633 1801 2011 1794 394 238 206 680
|
|
9
|
-
435 1703 1385 1461 213 1211 192 1553 1580 197 571 195 326 1491 869 1282
|
|
10
|
-
109 104 3033 120 652 2752 1822 2518 1289 1053 1397 951 3015 3016 125 1782
|
|
11
|
-
2025 1920 1891 99 1057 1909 2237 106 97 920 603 1841 2150 1980 1970 88
|
|
12
|
-
1870 170 167 176 306 1909 1825 1709 168 1400 359 817 1678 1718 1594 1552
|
|
13
|
-
98 81 216 677 572 295 38 574 403 74 91 534 662 588 511 51
|
|
14
|
-
453 1153 666 695 63 69 68 58 524 1088 75 1117 1192 1232 1046 443
|
|
15
|
-
3893 441 1825 3730 3660 115 4503 4105 3495 4092 48 3852 132 156 150 4229
|
|
16
|
-
867 44 571 40 884 922 418 328 901 845 42 860 932 53 432 569
|
|
17
|
-
905 717 162 4536 4219 179 990 374 4409 4821 393 4181 4054 4958 186 193
|
|
18
|
-
2610 2936 218 2552 3281 761 204 3433 3699 2727 3065 3624 193 926 1866 236
|
|
19
|
-
2602 216 495 3733 183 4688 2893 4042 3066 3810 189 4392 3900 4321 2814 159
|
|
20
|
-
166 136 80 185 135 78 177 123 82 150 121 145 115 63 68 24
|
|
21
|
-
214 221 265 766 959 1038 226 1188 1122 117 458 1105 1285 1017 274 281
|
|
22
|
-
`
|
|
23
|
-
def list (strsplit data "")
|
|
24
|
-
def idx 0
|
|
25
|
-
def value 0
|
|
26
|
-
def n_idx 1
|
|
27
|
-
def min 0
|
|
28
|
-
def max 0
|
|
29
|
-
def total 0
|
|
30
|
-
list.forEach({
|
|
31
|
-
def iValue (to_int item)
|
|
32
|
-
if(!null? iValue) {
|
|
33
|
-
value = ( (unwrap iValue) + value * 10)
|
|
34
|
-
n_idx = n_idx + 1
|
|
35
|
-
} {
|
|
36
|
-
if(n_idx > 1) {
|
|
37
|
-
if( min == 0 && max == 0) {
|
|
38
|
-
min = value
|
|
39
|
-
max = value
|
|
40
|
-
} {
|
|
41
|
-
if( min > value) {
|
|
42
|
-
min = value
|
|
43
|
-
}
|
|
44
|
-
if( max < value ) {
|
|
45
|
-
max = value
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
value = 0
|
|
50
|
-
n_idx = 1
|
|
51
|
-
if( (charAt item 0 ) == (ccode '\n') || (charAt item 0 ) == (ccode '\r') ) {
|
|
52
|
-
total = total + (max - min)
|
|
53
|
-
max = 0
|
|
54
|
-
min = 0
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
})
|
|
58
|
-
print "Total == " + total
|
|
59
|
-
}
|
|
60
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
class day_two_part_two {
|
|
4
|
-
static fn main() {
|
|
5
|
-
def data `
|
|
6
|
-
3751 3769 2769 2039 2794 240 3579 1228 4291 220 324 3960 211 1346 237 1586
|
|
7
|
-
550 589 538 110 167 567 99 203 524 288 500 111 118 185 505 74
|
|
8
|
-
2127 1904 199 221 1201 250 1119 377 1633 1801 2011 1794 394 238 206 680
|
|
9
|
-
435 1703 1385 1461 213 1211 192 1553 1580 197 571 195 326 1491 869 1282
|
|
10
|
-
109 104 3033 120 652 2752 1822 2518 1289 1053 1397 951 3015 3016 125 1782
|
|
11
|
-
2025 1920 1891 99 1057 1909 2237 106 97 920 603 1841 2150 1980 1970 88
|
|
12
|
-
1870 170 167 176 306 1909 1825 1709 168 1400 359 817 1678 1718 1594 1552
|
|
13
|
-
98 81 216 677 572 295 38 574 403 74 91 534 662 588 511 51
|
|
14
|
-
453 1153 666 695 63 69 68 58 524 1088 75 1117 1192 1232 1046 443
|
|
15
|
-
3893 441 1825 3730 3660 115 4503 4105 3495 4092 48 3852 132 156 150 4229
|
|
16
|
-
867 44 571 40 884 922 418 328 901 845 42 860 932 53 432 569
|
|
17
|
-
905 717 162 4536 4219 179 990 374 4409 4821 393 4181 4054 4958 186 193
|
|
18
|
-
2610 2936 218 2552 3281 761 204 3433 3699 2727 3065 3624 193 926 1866 236
|
|
19
|
-
2602 216 495 3733 183 4688 2893 4042 3066 3810 189 4392 3900 4321 2814 159
|
|
20
|
-
166 136 80 185 135 78 177 123 82 150 121 145 115 63 68 24
|
|
21
|
-
214 221 265 766 959 1038 226 1188 1122 117 458 1105 1285 1017 274 281
|
|
22
|
-
`
|
|
23
|
-
def list (strsplit data "")
|
|
24
|
-
def idx 0
|
|
25
|
-
def value 0
|
|
26
|
-
def n_idx 1
|
|
27
|
-
def min 0
|
|
28
|
-
def max 0
|
|
29
|
-
def total 0
|
|
30
|
-
def row:[int]
|
|
31
|
-
list.forEach({
|
|
32
|
-
def iValue (to_int item)
|
|
33
|
-
if(!null? iValue) {
|
|
34
|
-
value = ( (unwrap iValue) + value * 10)
|
|
35
|
-
n_idx = n_idx + 1
|
|
36
|
-
} {
|
|
37
|
-
if(n_idx > 1) {
|
|
38
|
-
push row value
|
|
39
|
-
}
|
|
40
|
-
value = 0
|
|
41
|
-
n_idx = 1
|
|
42
|
-
if( (charAt item 0 ) == (ccode '\n') || (charAt item 0 ) == (ccode '\r') ) {
|
|
43
|
-
def theValue 0
|
|
44
|
-
row.forEach({
|
|
45
|
-
def item1 item
|
|
46
|
-
def outer_index index
|
|
47
|
-
row.forEach({
|
|
48
|
-
if(index != outer_index) {
|
|
49
|
-
def divRes ((to_double item) / (to_double item1))
|
|
50
|
-
if( item % item1 == 0) {
|
|
51
|
-
theValue = (to_int divRes)
|
|
52
|
-
}
|
|
53
|
-
def divRes ((to_double item1) / (to_double item))
|
|
54
|
-
if( item1 % item == 0) {
|
|
55
|
-
theValue = (to_int divRes)
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
})
|
|
59
|
-
})
|
|
60
|
-
total = total + theValue
|
|
61
|
-
max = 0
|
|
62
|
-
min = 0
|
|
63
|
-
clear row
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
})
|
|
67
|
-
print "Total == " + total
|
|
68
|
-
}
|
|
69
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
428122498997587283996116951397957933569136949848379417125362532269869461185743113733992331379856446362482129646556286611543756564275715359874924898113424472782974789464348626278532936228881786273586278886575828239366794429223317476722337424399239986153675275924113322561873814364451339186918813451685263192891627186769818128715595715444565444581514677521874935942913547121751851631373316122491471564697731298951989511917272684335463436218283261962158671266625299188764589814518793576375629163896349665312991285776595142146261792244475721782941364787968924537841698538288459355159783985638187254653851864874544584878999193242641611859756728634623853475638478923744471563845635468173824196684361934269459459124269196811512927442662761563824323621758785866391424778683599179447845595931928589255935953295111937431266815352781399967295389339626178664148415561175386725992469782888757942558362117938629369129439717427474416851628121191639355646394276451847131182652486561415942815818785884559193483878139351841633366398788657844396925423217662517356486193821341454889283266691224778723833397914224396722559593959125317175899594685524852419495793389481831354787287452367145661829287518771631939314683137722493531318181315216342994141683484111969476952946378314883421677952397588613562958741328987734565492378977396431481215983656814486518865642645612413945129485464979535991675776338786758997128124651311153182816188924935186361813797251997643992686294724699281969473142721116432968216434977684138184481963845141486793996476793954226225885432422654394439882842163295458549755137247614338991879966665925466545111899714943716571113326479432925939227996799951279485722836754457737668191845914566732285928453781818792236447816127492445993945894435692799839217467253986218213131249786833333936332257795191937942688668182629489191693154184177398186462481316834678733713614889439352976144726162214648922159719979143735815478633912633185334529484779322818611438194522292278787653763328944421516569181178517915745625295158611636365253948455727653672922299582352766484
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import java.util.*;
|
|
2
|
-
import java.lang.StringBuilder;
|
|
3
|
-
import java.io.*;
|
|
4
|
-
|
|
5
|
-
public class Grid {
|
|
6
|
-
|
|
7
|
-
static String joinStrings(ArrayList<String> list, String delimiter)
|
|
8
|
-
{
|
|
9
|
-
StringBuilder b = new StringBuilder();
|
|
10
|
-
for(int i=0; i < list.size() ; i++) {
|
|
11
|
-
if( i > 0 ) {
|
|
12
|
-
b.append(delimiter);
|
|
13
|
-
}
|
|
14
|
-
b.append(list.get(i));
|
|
15
|
-
}
|
|
16
|
-
return b.toString();
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
public HashMap<Integer,GridRow> cols = new HashMap<Integer,GridRow>();
|
|
20
|
-
public Integer minx = 0;
|
|
21
|
-
public Integer maxx = 0;
|
|
22
|
-
public Integer miny = 0;
|
|
23
|
-
public Integer maxy = 0;
|
|
24
|
-
public Integer turtle_limit = 0;
|
|
25
|
-
public Integer first_largest = 0;
|
|
26
|
-
|
|
27
|
-
public Integer getValue( final Integer x , final Integer y ) {
|
|
28
|
-
if ( cols.containsKey(y) ) {
|
|
29
|
-
final GridRow col = cols.get(y);
|
|
30
|
-
if ( col.values.containsKey(x) ) {
|
|
31
|
-
return (col.values.get(x));
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
return 0;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
public void setValue( final Integer x , final Integer y , final Integer value ) {
|
|
38
|
-
if ( (value > turtle_limit) && (first_largest == 0) ) {
|
|
39
|
-
first_largest = value;
|
|
40
|
-
}
|
|
41
|
-
if ( cols.containsKey(y) ) {
|
|
42
|
-
final GridRow col = cols.get(y);
|
|
43
|
-
col.values.put(x, value);
|
|
44
|
-
} else {
|
|
45
|
-
final GridRow newCol = new GridRow();
|
|
46
|
-
cols.put(y, newCol);
|
|
47
|
-
newCol.values.put(x, value);
|
|
48
|
-
}
|
|
49
|
-
if ( x < minx ) {
|
|
50
|
-
minx = x;
|
|
51
|
-
}
|
|
52
|
-
if ( x > maxx ) {
|
|
53
|
-
maxx = x;
|
|
54
|
-
}
|
|
55
|
-
if ( y < miny ) {
|
|
56
|
-
miny = y;
|
|
57
|
-
}
|
|
58
|
-
if ( y > maxy ) {
|
|
59
|
-
maxy = y;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
public Integer getAdjacentSum( final Integer x , final Integer y ) {
|
|
64
|
-
final LambdaSignature1 v = new LambdaSignature1() {
|
|
65
|
-
public Integer run( final Integer dx, final Integer dy) {
|
|
66
|
-
return (Grid.this).getValue((x + dx), (y + dy));
|
|
67
|
-
// captured var x
|
|
68
|
-
// captured var y
|
|
69
|
-
}
|
|
70
|
-
};
|
|
71
|
-
return ((((((v.run(-1, -1) + v.run(-1, 0)) + v.run(-1, 1)) + v.run(0, -1)) + v.run(0, 1)) + v.run(1, -1)) + v.run(1, 0)) + v.run(1, 1);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
public void printGrid() {
|
|
75
|
-
Integer xx = minx;
|
|
76
|
-
Integer yy = miny;
|
|
77
|
-
while (yy <= maxy) {
|
|
78
|
-
xx = minx;
|
|
79
|
-
ArrayList<Integer> row = new ArrayList<Integer>();
|
|
80
|
-
while (xx <= maxx) {
|
|
81
|
-
row.add((this).getValue(xx, yy));
|
|
82
|
-
xx = xx + 1;
|
|
83
|
-
}
|
|
84
|
-
System.out.println(String.valueOf( joinStrings(operatorsOf.map_2(row, new LambdaSignature2() {
|
|
85
|
-
public String run( final Integer item, final Integer index) {
|
|
86
|
-
return String.valueOf(item );
|
|
87
|
-
}
|
|
88
|
-
}), " ") ) );
|
|
89
|
-
yy = yy + 1;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
#include <memory>
|
|
2
|
-
#include "variant.hpp"
|
|
3
|
-
#include <math.h>
|
|
4
|
-
#include <iostream>
|
|
5
|
-
#include <string>
|
|
6
|
-
|
|
7
|
-
// define classes here to avoid compiler errors
|
|
8
|
-
class day_two;
|
|
9
|
-
|
|
10
|
-
typedef mpark::variant<std::shared_ptr<day_two>, int, std::string, bool, double> r_union_Any;
|
|
11
|
-
|
|
12
|
-
// header definitions
|
|
13
|
-
class day_two : public std::enable_shared_from_this<day_two> {
|
|
14
|
-
public :
|
|
15
|
-
/* class constructor */
|
|
16
|
-
day_two( );
|
|
17
|
-
/* static methods */
|
|
18
|
-
static int distance( int data );
|
|
19
|
-
static void main();
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
int __g_argc;
|
|
23
|
-
char **__g_argv;
|
|
24
|
-
day_two::day_two( ) {
|
|
25
|
-
}
|
|
26
|
-
int day_two::distance( int data ) {
|
|
27
|
-
/** unused: int size = 1 **/ ;
|
|
28
|
-
int side = 1;
|
|
29
|
-
int total = 1;
|
|
30
|
-
int last_total = 1;
|
|
31
|
-
int n = 1;
|
|
32
|
-
while (total < data) {
|
|
33
|
-
last_total = total;
|
|
34
|
-
side = side + 2;
|
|
35
|
-
total = total + ((side - 1) * 4);
|
|
36
|
-
n = n + 1;
|
|
37
|
-
}
|
|
38
|
-
int dist = (data - last_total) - 1;
|
|
39
|
-
int sideStep = side - 1;
|
|
40
|
-
int pos = dist % sideStep;
|
|
41
|
-
int step_ort = 0;
|
|
42
|
-
int halfway = (int)floor( (sideStep / 2));
|
|
43
|
-
if ( pos < halfway ) {
|
|
44
|
-
step_ort = (halfway - 1) - pos;
|
|
45
|
-
} else {
|
|
46
|
-
step_ort = (pos - halfway) + 1;
|
|
47
|
-
}
|
|
48
|
-
std::cout << ((std::string("total steps for ") + std::to_string(data)) + std::string(" == ")) + std::to_string((step_ort + halfway)) << std::endl;
|
|
49
|
-
return step_ort + halfway;
|
|
50
|
-
}
|
|
51
|
-
int main(int argc, char* argv[]) {
|
|
52
|
-
__g_argc = argc;
|
|
53
|
-
__g_argv = argv;
|
|
54
|
-
day_two::distance(9);
|
|
55
|
-
day_two::distance(10);
|
|
56
|
-
day_two::distance(11);
|
|
57
|
-
day_two::distance(12);
|
|
58
|
-
day_two::distance(17);
|
|
59
|
-
day_two::distance(23);
|
|
60
|
-
day_two::distance(24);
|
|
61
|
-
day_two::distance(1024);
|
|
62
|
-
day_two::distance(289326);
|
|
63
|
-
return 0;
|
|
64
|
-
}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
package main
|
|
2
|
-
import (
|
|
3
|
-
"strings"
|
|
4
|
-
"strconv"
|
|
5
|
-
"fmt"
|
|
6
|
-
)
|
|
7
|
-
|
|
8
|
-
type GoNullable struct {
|
|
9
|
-
value interface{}
|
|
10
|
-
has_value bool
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
type day_two struct {
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
func CreateNew_day_two() *day_two {
|
|
17
|
-
me := new(day_two)
|
|
18
|
-
return me;
|
|
19
|
-
}
|
|
20
|
-
func day_two_static_distance(data int64) int64 {
|
|
21
|
-
/** unused: size*/
|
|
22
|
-
var side int64= int64(1);
|
|
23
|
-
var total int64= int64(1);
|
|
24
|
-
var last_total int64= int64(1);
|
|
25
|
-
var n int64= int64(1);
|
|
26
|
-
for total < data {
|
|
27
|
-
last_total = total;
|
|
28
|
-
side = side + int64(2);
|
|
29
|
-
total = total + ((side - int64(1)) * int64(4));
|
|
30
|
-
n = n + int64(1);
|
|
31
|
-
}
|
|
32
|
-
var dist int64= (data - last_total) - int64(1);
|
|
33
|
-
var sideStep int64= side - int64(1);
|
|
34
|
-
var pos int64= dist % sideStep;
|
|
35
|
-
var step_ort int64= int64(0);
|
|
36
|
-
var halfway int64= int64((sideStep / int64(2)));
|
|
37
|
-
if pos < halfway {
|
|
38
|
-
step_ort = (halfway - int64(1)) - pos;
|
|
39
|
-
} else {
|
|
40
|
-
step_ort = (pos - halfway) + int64(1);
|
|
41
|
-
}
|
|
42
|
-
fmt.Println( strings.Join([]string{ ((strings.Join([]string{ "total steps for ",strconv.FormatInt(data, 10) }, "")) + " == "),strconv.FormatInt((step_ort + halfway), 10) }, "") )
|
|
43
|
-
return step_ort + halfway
|
|
44
|
-
}
|
|
45
|
-
func main() {
|
|
46
|
-
day_two_static_distance(int64(9));
|
|
47
|
-
day_two_static_distance(int64(10));
|
|
48
|
-
day_two_static_distance(int64(11));
|
|
49
|
-
day_two_static_distance(int64(12));
|
|
50
|
-
day_two_static_distance(int64(17));
|
|
51
|
-
day_two_static_distance(int64(23));
|
|
52
|
-
day_two_static_distance(int64(24));
|
|
53
|
-
day_two_static_distance(int64(1024));
|
|
54
|
-
day_two_static_distance(int64(289326));
|
|
55
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
class day_two {
|
|
2
|
-
constructor() {
|
|
3
|
-
}
|
|
4
|
-
}
|
|
5
|
-
day_two.distance = function(data) {
|
|
6
|
-
/** unused: const size = 1 **/
|
|
7
|
-
let side = 1;
|
|
8
|
-
let total = 1;
|
|
9
|
-
let last_total = 1;
|
|
10
|
-
let n = 1;
|
|
11
|
-
while (total < data) {
|
|
12
|
-
last_total = total;
|
|
13
|
-
side = side + 2;
|
|
14
|
-
total = total + ((side - 1) * 4);
|
|
15
|
-
n = n + 1;
|
|
16
|
-
};
|
|
17
|
-
const dist = (data - last_total) - 1;
|
|
18
|
-
const sideStep = side - 1;
|
|
19
|
-
const pos = dist % sideStep;
|
|
20
|
-
let step_ort = 0;
|
|
21
|
-
const halfway = Math.floor( (sideStep / 2));
|
|
22
|
-
if ( pos < halfway ) {
|
|
23
|
-
step_ort = (halfway - 1) - pos;
|
|
24
|
-
} else {
|
|
25
|
-
step_ort = (pos - halfway) + 1;
|
|
26
|
-
}
|
|
27
|
-
console.log((("total steps for " + data) + " == ") + (step_ort + halfway));
|
|
28
|
-
return step_ort + halfway;
|
|
29
|
-
};
|
|
30
|
-
/* static JavaSript main routine at the end of the JS file */
|
|
31
|
-
function __js_main() {
|
|
32
|
-
day_two.distance(9);
|
|
33
|
-
day_two.distance(10);
|
|
34
|
-
day_two.distance(11);
|
|
35
|
-
day_two.distance(12);
|
|
36
|
-
day_two.distance(17);
|
|
37
|
-
day_two.distance(23);
|
|
38
|
-
day_two.distance(24);
|
|
39
|
-
day_two.distance(1024);
|
|
40
|
-
day_two.distance(289326);
|
|
41
|
-
}
|
|
42
|
-
__js_main();
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
<?php
|
|
2
|
-
|
|
3
|
-
class day_two {
|
|
4
|
-
function __construct( ) {
|
|
5
|
-
}
|
|
6
|
-
public static function distance( $data ) {
|
|
7
|
-
/** unused: $size = 1 **/ ;
|
|
8
|
-
$side = 1;
|
|
9
|
-
$total = 1;
|
|
10
|
-
$last_total = 1;
|
|
11
|
-
$n = 1;
|
|
12
|
-
while ($total < $data) {
|
|
13
|
-
$last_total = $total;
|
|
14
|
-
$side = $side + 2;
|
|
15
|
-
$total = $total + (($side - 1) * 4);
|
|
16
|
-
$n = $n + 1;
|
|
17
|
-
}
|
|
18
|
-
$dist = ($data - $last_total) - 1;
|
|
19
|
-
$sideStep = $side - 1;
|
|
20
|
-
$pos = $dist % $sideStep;
|
|
21
|
-
$step_ort = 0;
|
|
22
|
-
$halfway = floor(($sideStep / 2));
|
|
23
|
-
if ( $pos < $halfway ) {
|
|
24
|
-
$step_ort = ($halfway - 1) - $pos;
|
|
25
|
-
} else {
|
|
26
|
-
$step_ort = ($pos - $halfway) + 1;
|
|
27
|
-
}
|
|
28
|
-
echo( (("total steps for " . $data) . " == ") . ($step_ort + $halfway) . "\n");
|
|
29
|
-
return $step_ort + $halfway;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
/* static PHP main routine */
|
|
33
|
-
day_two::distance(9);
|
|
34
|
-
day_two::distance(10);
|
|
35
|
-
day_two::distance(11);
|
|
36
|
-
day_two::distance(12);
|
|
37
|
-
day_two::distance(17);
|
|
38
|
-
day_two::distance(23);
|
|
39
|
-
day_two::distance(24);
|
|
40
|
-
day_two::distance(1024);
|
|
41
|
-
day_two::distance(289326);
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import scala.util.control._
|
|
2
|
-
case class ScalaReturnValue(value:Any) extends Exception
|
|
3
|
-
|
|
4
|
-
// ----------- the scalafiddle main function begins ---------
|
|
5
|
-
day_two.distance(9);
|
|
6
|
-
day_two.distance(10);
|
|
7
|
-
day_two.distance(11);
|
|
8
|
-
day_two.distance(12);
|
|
9
|
-
day_two.distance(17);
|
|
10
|
-
day_two.distance(23);
|
|
11
|
-
day_two.distance(24);
|
|
12
|
-
day_two.distance(1024);
|
|
13
|
-
day_two.distance(289326);
|
|
14
|
-
// ----------- the scalafiddle main function ends ---------
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
// companion object for static methods of day_two static cnt == 2
|
|
18
|
-
object day_two {
|
|
19
|
-
def distance( data : Int) : Int = {
|
|
20
|
-
/** unused val size : Int = 1**/
|
|
21
|
-
var side : Int = 1
|
|
22
|
-
var total : Int = 1
|
|
23
|
-
var last_total : Int = 1
|
|
24
|
-
var n : Int = 1
|
|
25
|
-
try {
|
|
26
|
-
val __break__ = new Breaks;
|
|
27
|
-
__break__.breakable {
|
|
28
|
-
while (total < data) {
|
|
29
|
-
val __continue__ = new Breaks;
|
|
30
|
-
__continue__.breakable {
|
|
31
|
-
last_total = total
|
|
32
|
-
side = side + 2
|
|
33
|
-
total = total + ((side - 1) * 4)
|
|
34
|
-
n = n + 1
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
val dist : Int = (data - last_total) - 1
|
|
40
|
-
val sideStep : Int = side - 1
|
|
41
|
-
val pos : Int = dist % sideStep
|
|
42
|
-
var step_ort : Int = 0
|
|
43
|
-
val halfway : Int = (sideStep / 2).toInt
|
|
44
|
-
if ( pos < halfway ) {
|
|
45
|
-
step_ort = (halfway - 1) - pos
|
|
46
|
-
} else {
|
|
47
|
-
step_ort = (pos - halfway) + 1
|
|
48
|
-
}
|
|
49
|
-
println( (("total steps for " + data) + " == ") + (step_ort + halfway) )
|
|
50
|
-
return step_ort + halfway
|
|
51
|
-
}
|
|
52
|
-
}
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
func ==(l: day_two, r: day_two) -> Bool {
|
|
2
|
-
return l === r
|
|
3
|
-
}
|
|
4
|
-
class day_two : Equatable {
|
|
5
|
-
class func distance(data : Int) -> Int {
|
|
6
|
-
/** unused: let size : Int = 1 **/
|
|
7
|
-
var side : Int = 1
|
|
8
|
-
var total : Int = 1
|
|
9
|
-
var last_total : Int = 1
|
|
10
|
-
var n : Int = 1
|
|
11
|
-
while (total < data) {
|
|
12
|
-
last_total = total;
|
|
13
|
-
side = side + 2;
|
|
14
|
-
total = total + ((side - 1) * 4);
|
|
15
|
-
n = n + 1;
|
|
16
|
-
}
|
|
17
|
-
let dist : Int = (data - last_total) - 1
|
|
18
|
-
let sideStep : Int = side - 1
|
|
19
|
-
let pos : Int = dist % sideStep
|
|
20
|
-
var step_ort : Int = 0
|
|
21
|
-
let halfway : Int = Int((sideStep / 2))
|
|
22
|
-
if ( pos < halfway ) {
|
|
23
|
-
step_ort = (halfway - 1) - pos;
|
|
24
|
-
} else {
|
|
25
|
-
step_ort = (pos - halfway) + 1;
|
|
26
|
-
}
|
|
27
|
-
print((("total steps for " + String(data)) + " == ") + String((step_ort + halfway)))
|
|
28
|
-
return step_ort + halfway;
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
func __main__swift() {
|
|
32
|
-
_ = day_two.distance(data : 9)
|
|
33
|
-
_ = day_two.distance(data : 10)
|
|
34
|
-
_ = day_two.distance(data : 11)
|
|
35
|
-
_ = day_two.distance(data : 12)
|
|
36
|
-
_ = day_two.distance(data : 17)
|
|
37
|
-
_ = day_two.distance(data : 23)
|
|
38
|
-
_ = day_two.distance(data : 24)
|
|
39
|
-
_ = day_two.distance(data : 1024)
|
|
40
|
-
_ = day_two.distance(data : 289326)
|
|
41
|
-
}
|
|
42
|
-
// call the main function
|
|
43
|
-
__main__swift()
|