プログラマーの目を通して見た魔法

プログラマーの目を通して見た魔法。 はじめに



少なくとも一度、何らかの形の魔法が利用できればいいのではないかと、多くの人が一度思ったと思います。 投機的な瞬間はすべて省略します。何か他のものに興味があります。プログラマーが発明した場合、マジックはどうなるでしょうか?



空想を開始



実際、なぜこれすべてなのか? 彼らはあなたがそれを信じるなら魔法が存在すると言います。 ホリバロフを立ち上げないために、私は次のように言います。理解できるか、証明できると信じています。 Fermaの小定理は、(1回)動作し、(2回)それを証明できる、つまり、いくつかの仮定や理解に還元できるため、信じています。

したがって、みましょう:

  1. 魔法があります。
  2. マジックには論理、言語、構文があります。
  3. 自分で行う必要のないものを含む標準ライブラリがあります。 彼女はただ働いています。
  4. そして最も重要なのは、これらすべてを使用できることです。


何が得られますか? 「鍵を見つけたい!」とは言えません。 なんで? なぜなら、マジック、親愛なるユーザー名%は、どのキーを見つけたいのか、そして「見つける」という意味がわからないからです。 何をすべきかを考えてみましょう。



魔法が始まる



だから

  1. import magic.core # import magic.physics # import magic.effects #



  2. import magic.core # import magic.physics # import magic.effects #



  3. import magic.core # import magic.physics # import magic.effects #





それを鍵にして、この部屋に置いてください。 それらが表面に横たわり、何にも覆われないようにします。 最後に、「見つける」とは、光るキーを目の高さで見ることです。 手始めに。



キー



私たちのキーは、リング上の2〜3キー+キーチェーンです。 一方、それはほとんど固体のオブジェクトです。 何らかの形で特定のオブジェクトを「キー」という単語に関連付ける必要があります。



  1. alias = str (core.recognizeThought(presentThought)) #明確にするために、文字列とする
  2. effects.fire(core.getFocusedObject()、MColor( '#4C95DC' )) #フォーカスされているオブジェクトを青い炎で強調表示します。
  3. #例えば、それを見るか、それについて具体的に考える
  4. if core.recognizeThought(presentThought): #はい、はい、真と考えることができます
  5. core.Shotrcuts.append({ 'id' :エイリアス、 'object' :core.getFocusedObject()}) #オブジェクトの関連付けをグレートショートカットの配列に固定します
  6. その他
  7. core.getFocusedObject()。resetState() #エフェクトを削除




そのようなもの。 手順を実行して、家の中を回ります。 標準機能は、私たちが望むことを正確に行うのに十分に考えられていると仮定します。 はい、それはあまり論理的ではありませんが、私たちはただ楽しんでいます;)

そのため、お気に入りのスリッパ、キー、携帯電話はすでにマジックで知られています。



浮上



次に、キーを目の高さに上げる必要があります。 これを行うには、別のモジュールをインポートします

  1. magic.metrics から MyHeightsをインポート
  2. EyeLevel = MyHeights.FLOOR + MyHeights.HEIGHT- 0.15 #目の高さ=私が立つ床+私の高さ-15センチメートル
  3. オブジェクト = core.Shortcuts [ 'keys' ]
  4. effects.fire( object 、MColor( '#ff9800' ))
  5. physics.moveTo( object 、z = EyeLevel、x = object .getX()、y = object .getY()、smooth = True 、freeze = True#キーを静かに目の高さまで上げて修正する




出来上がり。 簡単な手順で楽しんでいます。

一方では、すべてが非常に単純ですが、キーがポケットまたは別の部屋にある場合はどうなりますか? また、既存のオブジェクトを操作せずに、何かを作成する必要がある場合はどうでしょうか? 想像力の巨大なフィールド!

そして次回はお茶を作ります!



PSこれはそう、心のウォームアップですが、それは喜びを与えます。 任意のアイデア-共有!

UPD1:dpaste.org/d1O1の Javaバージョンありがとうdanilissimus



All Articles