2022-12-28
デコードを実装しようとスタックしていた、高校生開発のプログラミング言語「Laze」でのGeo3x3実装。Discordの公式コミュニティに参加し、質問したところ、早速「配列」を使うといけると回答あり!開発者を含むコミュニティが楽しい&嬉しい!


「simple_geo3x3.laze」

エンコードに加え、デコードも実装できました!デコード関数のプログラム in 日本語版です。

関数: デコード(文字列: Geo3x3) => (配列<実数>: 結果) { 整数: フラグ = 0; 整数: はじまり = 0; 文字列: 先頭文字 = Geo3x3.切り取り(0, 1); もし (先頭文字 == "W") ならば { フラグ = 1; はじまり = 1; } でなければ { もし (先頭文字 == "E") ならば { はじまり = 1; } } 実数: 単位 = 180.0; 実数: 緯度 = 0.0; 実数: 経度 = 0.0; 整数: レベル = 1; (整数: カウンタ = はじまり;) から (カウンタ == Geo3x3.長さ) まで (カウンタ++;) { 整数: N = Geo3x3.切り取り(カウンタ, カウンタ + 1).整数変換(); 単位 /= 3; N--; 経度 += (N % 3) * 単位; 緯度 += 切り捨て(N / 3) * 単位; レベル++; } 緯度 += 単位 / 2; 経度 += 単位 / 2; 緯度 -= 90.0; もし (フラグ == 1) ならば { 経度 -= 180.0; } 結果.追加(緯度); 結果.追加(経度); 結果.追加(レベル); 結果.追加(単位); }

文字列を使った関数も、natentest.laze から発見し、無事実装完了。


Geo3x3の93言語目のサポートプログラミング言語、Laze

Lazeは、JavaScriptに変換するAltJSと違って、WebAssemblyへ変換する言語。いろんな選択肢があって楽しいですね!

links
- Laze - 全ての人に快適なプログラミングを | Laze
- Geo3x3

Tweet
クリエイティブ・コモンズ・ライセンス
本ブログの記事や写真は「Creative Commons — CC BY 4.0」の下に提供します。記事内で紹介するプログラムや作品は、それぞれに記載されたライセンスを参照ください。
CC BY / @taisukef / アイコン画像 / プロフィール画像 / 「一日一創」画像 / RSS