問題タブ [design-decisions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - Javascript-距離(ピクセル単位)-決定
私は単純なjavascriptアニメーションを持っています。そこでは、2人のカウボーイ(iamges)がランダムな間隔番号に基づいて互いに「競争」します。
方法がわからないのは、スクリプトが勝者を決定することです。つまり、カウボーイが最初に事前定義された距離に到達した場合、スクリプトは誰が勝ったかを認識してアラートを表示します。
例を示すスクリーンショットを次に示します。
これは私がこれまでに持っているコードです:http://pastebin.com/Cmt4N8c9
いくつかの方向性を教えてもらえますか?
ありがとう、ブライアン
c# - System.Drawing Rectangle、Point、Sizeなどがクラスではなく可変構造体であるのはなぜですか?
Microsoftがこれらの構造体を作成することを決定した理由はありますか?
3つすべてが変更可能です。それらが不変であるか、参照型である場合、それらははるかに扱いやすいと思います。
それらが構造体でなければならない理由がある場合、なぜそれらは可変ですか?
java - クイズ ゲーム - IF ステートメントと考えられる Else If?
私はこれに非常に慣れていないので、誰かが私を助けることができるかどうか疑問に思っていました. 特定の質問に対する回答が得られた後、コードで質問を停止できるようにしたいと考えています。オウムやエミューなどの最初のもので動作するようになりましたが、他のものを追加できないようです. 私が間違っていることを教えてください。
これまでのコードは次のとおりです。
artificial-intelligence - 目標に到達するために必要なステップを決定するために逆方向に作業できるプロローグ プログラムを作成する方法
正確に何を尋ねようとしているのかわかりません。初期状態と最終状態といくつかのルールを簡単に取り、そこに到達するためのパス/選択肢を決定できるコードを作成できるようにしたいと考えています。
たとえば、スタークラフトのようなゲームを考えてみてください。工場を建設するには、兵舎と司令センターがすでに建設されている必要があります。もし何も持っていなくて工場が欲しいなら、「司令センター」→「兵舎」→「工場」と言うかもしれません。それぞれのことには時間とリソースが必要であり、パスで注意して考慮する必要があります。工場を 5 分にしたい場合は、10 分にしたい場合よりも選択肢が少なくなります。
また、エンジンは利用可能なリソースを計算し、それらを効果的に利用できる必要があります。これらの 3 つの建物には、合計で 600 のミネラルが必要になる可能性がありますが、エンジンは、200 になるときにコマンド センターを計画する必要があります (またはコストがかかります)。
これは最終的に、10 海兵 @ 5 分、歩兵の武器のアップグレードは 6:30、30 海兵は 10 分、工場 @ 11 などと同様の要件になります。
では、このようなことをするにはどうすればよいでしょうか。私が最初に考えたのは、何らかの手続き型言語を使用して、すべての決定をゼロから行うことでした。システムと分岐をシミュレートし、さまざまな選択を行うことができました。最終的に、いくつかの選択はすぐに目標を達成することを不可能にします (もし私が 20 の補給所を建設したとしても、その工場を時間通りに作れない可能性があります.)
それでは、関数型言語はこのために設計されたものではないと思いましたか? プロローグを書こうとしましたが、時間や距離の計算などに問題がありました。そして、「計画」を返す最良の方法がわかりません。
私は書くことができると思っていました:
ここで私は混乱します。この関数とクエリを構築して、必要なものに近いものを取得する方法がわかりません。建設中に鉱物が収集される速度や、追加の金で他の可能な経路をどうにかして説明する必要があります. 10 分間に 1 人の海兵隊員だけが必要な場合は、10 分で 1 人の海兵隊員で終了する方法がたくさんあるため、エンジンに多くの計画を生成してもらいたいと思います (あまりにも多くの後にそれをカットするかもしれません。プロローグでそれをどのように行うかわかりません)。 )。
この道を進む方法についてのアドバイス、または他のオプションについてのアドバイスを探しています。ハノイの塔や AI の祖先の例よりも役立つものを見つけることができなかったので、プロローグを使用して実際のことを行う方法を説明するいくつかの優れた記事でさえ素晴らしいでしょう. そして、どうにかしてこれらのルールを便利な方法で設定できる場合、ハノイのすべての塔の例のように標準出力に書き込む以外に、プロローグが思いついた(クエリを解決する方法)「計画」を取得する方法はありますか?それともそれが好ましい方法ですか?
私の他の質問は、私のメイン コードは ruby (および潜在的に他の言語) であり、prolog と通信するためのオプションは、ruby 内から私の prolog プログラムを呼び出すこと、prolog 内から仮想ファイル システムにアクセスすること、またはある種のデータベース構造 (可能性は低い) です。 )。私は SWI-Prolog atm を使用しています。これを Ruby で手続き的に行う方がよいでしょうか、それとも prolog や haskall のような関数型言語でこれを構築する方が、統合に余分な労力をかける価値があるでしょうか?
これが不明確な場合は申し訳ありません。お役に立てれば幸いです。不明確な点については、もう一度言い直します。
sql - コースノート/中サイズのテキストをデジタルで保存する最良の方法 - 必要条件: 効率的、Web 上での表示が容易、柔軟
私は自分の Web サイトを構築しており、そこにコースノートを保存したいと考えています。私のコースノートは現在紙に書かれているので、タイプアップします。各コースを次のような構造の独自の XML ファイルに保存することを考えています。ダッシュはタグを表し、数字は無視します。
私のウェブサイトのアイデアは、ユーザーがコース1のリンクをクリックすると、私のプログラムはXMLがそれを解析してその内容を表示することを見つけます。
これに XML を使用することは良い設計上の決定ですか? それとも、もっとうまくやれるでしょうか?XML が適切な設計上の決定である場合: コースごとに 1 つの XML という現在の設計を維持する必要がありますか?それとも、コース用のフォルダーを作成し、トピックごとに 1 つの XML を使用する必要がありますか? XML 以外に、他にどのようなオプションがありますか?
うまくいけば、これはあまりにも主観的ではありません...
c++ - 唯一の派生クラスが追加の変数を追加しない場合、仮想デストラクタを省略する
(const int) の単なるラッパーであるクラス Literal があります。Literal から継承する 2 番目のクラス PositiveLiteral が必要ですが、その値が正であることをアサートするコンストラクターがあります。
このように、正のリテラルを期待する関数は、単純に PositiveLiteral を引数として取ることができます。そうすれば、明示的なアサーションをコードに入れる必要がなくなります。さらに、それらのアサーションが失敗する場合は、その理由がすぐにわかります。
この 1 つのケースを除いて、Literal から継承することは期待していません。それでも、継承があるため、PositiveLiteral には Literal にはない余分な情報が関連付けられていないため、ばかげているように見える未定義の動作を避けるために、Literal に仮想デストラクタを指定する必要があります。これは、明示的にせずにアサーションを維持する方法にすぎません。
単純なラッパー クラスであるはずの仮想メソッドを必要とせずに、同じタスクを達成する別の方法は何ですか?
c# - 参照型を const として宣言すると便利ですか?
なぜ誰かがするのでしょうか:
Eric Lippert は、機能はデフォルトでは実装されておらず、すべての可能性がテスト、保守などにさらに労力を加えると述べています...参照型の null 値が定数として必要になるのはなぜですか?
ruby - なぜ Array#slice と Array#slice なのか! 振る舞いが違う?
Ruby では、 Array#slice
andがandとArray#slice!
は異なる動作をする理由を理解できませんでした (1 つは新しい配列で結果を返し、もう 1 つは現在のオブジェクトで動作します)。Array#sort
Array#sort!
最初のもの (強打なし)ではsort
、現在の配列の並べ替えられたコピーを返し、現在の配列を並べ替えますsort!
。
slice
、指定された範囲の配列を返し、指定された範囲を現在のオブジェクトからslice!
削除します。
Array#slice!
現在のオブジェクトを指定された範囲の配列にするのではなく、このように動作する理由は何ですか?
例:
出力: