リークスクリプト 2

リークスクリプト 2

LeekScript 2 (以前の LeekScript 1.1) は、2021 年 2 月 28 日にリリースされた、Leek Wars の言語である LeekScript の 2 番目のバージョンです。これは、言語をクリーンアップし、修正を行い、指向プログラミング オブジェクトを追加することを目的としています。

## プレゼンテーション

言語の動作方法に大幅な変更が加えられているため、これは下位互換性のないバージョンであり、ユーザーがエディターで手動でアクティブ化します。

バージョン 2 は、2016 年に発表された将来のバージョンに向けた一歩です。したがって、多くの計画された機能がバージョン 2 に存在し、言語を徐々に進めることができ、これらの機能は複雑な AI のコーディングに非常に有益です。

専用の移行ヘルプ ページがここにあります: LeekScript 1 から 2 への移行

## 新着

### オブジェクト指向プログラミング オブジェクト指向プログラミングを追加: クラスとオブジェクト。この追加に関するすべてのドキュメントについては、クラスとオブジェクト ページを参照してください。

キーワード new、class、extends、static、public、保護された、プライベート、実装、インターフェース、コンストラクタ、これ 、 super および instanceof は OOP 用に予約されているため、変数または関数名には使用できなくなりました。

参照渡し

非プリミティブ値、つまり配列とオブジェクトはデフォルトで参照渡しされます。プリミティブ値 (数値、ブール値、文字列) は常にコピーされます。

@ 構文はもはや使用されていないため、どこでも非推奨です。 LeekScript 2 では、プリミティブ値への参照を作成することはできません。

表の参照

配列 (およびオブジェクト) に参照を追加する機能により、合理的なコストで複雑な構造や再帰構造を作成できます。

1 では実現が難しく、2 では非常に簡単なデータ構造の例:

clone() 関数

値を正確に複製する clone(value, [level]) 関数を追加しました。

複数のエラー

1 つだけではなく、いくつかのセマンティック エラーがエディターで返されました (LS 1 でも利用可能)。

![](/image/encyclopedia/multiple_errors_2.png)

![](/image/encyclopedia/multiple_errors_1.png)

完全なコール スタック

各エラーの下に完全なコール スタックが表示されます (LS 1 でも利用可能)。

![](/image/encyclopedia/stacktrace.png)

セミコロンは必要ありません

ただし、もちろんいつでも使用できます。 (LS 1 でも利用可能)

RAM サイズの制限が削除されました

配列サイズの制限は取り除かれ、操作のコストはそれらの使用を制限するのに十分です。

修正

配列フィルター

修正された arrayFilter: null 値を残すことなく、配列が正しく再インデックス化されるようになりました。

### 鎖 "\\\\" 2 つではなく 1 つの \ を正しく表示する文字列 "\\" のエスケープを修正しました。

グローバル宣言

複数のファイルにわたるグローバル宣言を修正しました。

演算子 ^=

^= 演算子が累乗ではなくバイナリ OR になるのを修正しました。

シャッフル機能

シャッフル関数は、戦闘シードに接続された乱数ジェネレーターを考慮に入れるため、同じシードに対して決定論的です。テストに影響を与える同じシードから生成された 2 つの戦いの間に違いが生じる可能性があります。