問題タブ [pseudocode]
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.
pseudocode - 2Dワールドデザインの質問
私はおそらくゲームデザインで非常に一般的な問題に直面しています。
- 2Dの世界があるとしましょう
- 世界のサイズはMxNrectです
- 世界にはいくつかのアイテムが含まれている可能性があります
- アイテムには(x、y)座標があります
- 物理的に(mxn)大きいウィンドウを介して世界を閲覧できます。
- ブラウザウィンドウをズームイン/ズームアウトできます
- ブラウザウィンドウは、世界の範囲内で上下左右にパンできます。
これをどのように実装すればよいですか?特にブラウザウィンドウが気になります。誰かが良い読み物をお勧めできますか?
これは宿題ではありません-それは私が自分で完了するように設定したタスクです。
python - リストボックスを実装する
モバイル用のリストボックスを実装する必要があります。関連するコントロールは上下の矢印キーのみです。リストボックスは、リストから画面に収まる数の項目の行を表示する必要があり (screen_rows)、1 つの行を強調表示し (sel_row)、最初の項目が強調表示されているときにユーザーが上向き矢印または下向き矢印を押すと、表示が折り返される必要があります。最後の項目が強調表示されている場合 (つまり、最初の項目が強調表示されているときにユーザーがヒットした場合、最後の項目が表示され、強調表示されます)。上矢印は前の項目を強調表示し、下矢印は次の項目を強調表示します。
私は何かをまとめましたが、テストで何かを逃したのではないかと心配しています。リストボックスが普及していることを考えると、これを行う標準的な方法が必要です。
編集: 各関数の後、画面の再描画関数を呼び出します。これにより、top_item が上部にあり、sel-row が強調表示された状態で画面が再描画されます。
誰かが Python 以外のバージョンを持っている場合に備えて、擬似コード タグを追加しました。
pseudocode - 10 進数の配列を 2 進数の配列に変換する
これはおそらく非常に風変わりな質問です。
私の問題は次のとおりです。
TI 83+ グラフ電卓を使用すると、アセンブリとコンピュータへのリンク ケーブル、または組み込みの TI-BASIC プログラミング言語を使用してプログラミングできます。
私が見つけたものによると、16 ビット整数といくつかのエミュレートされた浮動小数点のみがサポートされています。
ただし、少し大きい数値 (約 64 ビット) で作業したいので、そのために 1 桁の配列を使用します。
10 進数の 12345 になります。
2 進数では 110000 00111001、または 2 進数配列として:
これは、電卓がそれを表示する方法です。
この 10 進数の配列 (電卓がネイティブ型として表示するには大きすぎる) を 10 進数の配列に変換するにはどうすればよいでしょうか?
効率は問題ではありません。これは宿題ではありません。
これにより、そのような配列などの加算を自由に実装できます。
ありがとう!
coding-style - for ループから while ループに変換する正しい方法は何ですか?
次の形式の for ループがあります。
そして、それを while ループに変換したい (主にi
、ループ内の値を操作して前後に移動したいため、同僚は for ループでこれを行うと問題が発生しやすいと考えているためです。彼に同意する)。だから私はこのようなものを書きました:
これは、いくつかの大きなコメントを引き起こしました。私の推論は、ループ内のコードが何をするかわからないということです-複数のcontinue
コマンドがある場合があります(そしてあります)。
応答として、彼は次のように書いています。
行数が少ないことは確かですが、それでも私のコードはよりエレガントだと思います - どう思いますか?
algorithm - 推移簡約アルゴリズム:擬似コード?
グラフで推移簡約を実行するアルゴリズムを探していましたが、成功しませんでした。私のアルゴリズムの聖書には何もありません(Cormenらによるアルゴリズムの紹介)。推移閉包の擬似コードをたくさん見ましたが、削減のために何も追跡できませんでした。私が持っている最も近いものは、Volker Turau(ISBN:978-3-486-59057-9)の「AlgorithmischeGraphentheorie」にあるものですが、残念ながら私はこの本にアクセスできません!ウィキペディアは役に立たず、グーグルはまだ何も発表していません。:^(
推移簡約を実行するためのアルゴリズムを知っている人はいますか?
pseudocode - 依存関係に基づいて順序を取得するための疑似コード
OK、私の状況は、アイテムのリストがあり、参照に基づいてこれらのアイテムの順序を取得する必要があるということです。たとえば、次のアイテムがあるとしましょう: A、B、C、D、E、F
C と D には依存関係がないため、順序は 0 になる可能性があります。B は、C、D、および A を最も多く持つものです。A には C があり、F には A と B があります。
この場合 C,D = 0 A = 1 B= 2 F = 3
私はインターネットを調べてきましたが、これに正しい科学用語を使用していないようです. ほとんどの場合、何らかの方法でセットまたはバッグ セットです。この状況は各ノードに 2 つ以上のエッジがあるため、ツリーではないことはわかっています。答えは、プログラミング言語にある可能性があり、可能な限り一般化しようとしています。
python - Python を使用して特定の州にあるすべての教会のリストを取得する
私は Python が得意なので、詳細が些細な場合は疑似コードで十分です。タスクを開始してください - 私の州の教会のカタツムリ メール アドレスをネットでクロールするにはどうすればよいですか。「123 Old West Road #3 Old Lyme City MD 01234」のような 1 つのライナーができたら、十分な試行錯誤を重ねて、おそらくそれを City、State、Street、Number、apt に解析できます。私の問題は、オンラインでホワイト ページを使用している場合、HTML ジャンク、HTML テーブル、広告などをすべて処理するにはどうすればよいかということです。私は彼らの電話番号が必要だとは思いませんが、問題はありません。解析したらいつでも捨てることができます。ソリューションが半分手動 (pdf に保存してから acrobat を開いてテキストとして保存するなど) であっても、それでも満足できるかもしれません。ありがとう!Perl のスニペットも受け入れます。自分で翻訳できます。
audio - この DSP 表記について説明してください
Karplus-Strong の撥弦アルゴリズムの拡張を実装しようとしていますが、使用されている表記法がわかりません。何年もの研究が必要かもしれませんが、そうではないかもしれません。
以下の方程式は周波数領域か何かにあると思います。最初の式、H p (z)、ピック方向ローパス フィルターから始めます。一方の方向では p = 0 を使用し、もう一方の方向ではおそらく 0.9 を使用します。これは、最初のケースでは 1 に、2 番目のケースでは 0.1 / (1 - 0.9 z -1 ) になります。
代替テキスト http://www.dsprelated.com/josimages/pasp/img902.png
さて、これはコーディング用語で次のようなことを意味しているように感じます。
誰かが私にヒントを与えることができますか?それとも、これは無駄であり、これを実装するにはすべての DSP バックグラウンドが本当に必要ですか? 私はかつて数学者でしたが、これは私の領域ではありません。
php - ジョブスケジューリング問題
メンバーのジョブをローテーションスケジュールで自動的にスケジュールする必要があるアプリケーションに取り組んでいます。私はルールを説明するのがあまり得意ではないので、ここに役立ついくつかのデータがあります:
役職:毎週月曜日や水曜日などのルールを持つ役職。
カテゴリ:ポジションのセット
グループ:別のポジションのセット。同じグループのポジションを同じ日に割り当てることはできません
メンバー:特定の日にポジションに割り当てられたユーザー。
その月の各日付について、メンバーはポジションに割り当てられます(両方とも昇順)。メンバーが1つのカテゴリの位置に割り当てられている場合、次に同じカテゴリの位置が表示されると、アルファベット順(またはリストの先頭)に次のメンバーが割り当てられます。
メンバー:M1、M2、M3、M4
カテゴリーC1のポジション:P1、P2、P3
ポジションP1のメンバー:M1、M2、M3、M4
ポジションP2のメンバー:M1、M2、M3
ポジションP2のメンバー:M1、M3、 M4
M1がP1に割り当てられている場合、次にP2が来ると、M2が割り当てられます。代わりにP3が次に来る場合、M3が割り当てられる、複雑さの追加レイヤーが導入されます。システムは、M2が「スキップされた」という事実を追跡し、利用可能な場合は次にM2を割り当て、次にM4を割り当てるか、M2が利用可能な位置に到達するまで待機する必要があります(スキップされた数が多い場合、これはさらに複雑になります) 'メンバー)。
メンバーは、その日に利用できないことを示した場合もスキップされます。システムは、スキップされたメンバーを優先し、メンバーが現れたときに何らかの方法でそれらを識別してから、リスト内の次の論理的な人物にジャンプする必要があります。日付の衝突によるグループにもスキップが適用されます。
各ステップを説明するコメントがたくさんあるのに、私はすでに一時的な[そして厄介な]解決策を持っていますが、それはもはや理解できません。その弱点は、スキップされたメンバーに対処することです。
これをコーディングする場合、どのようにコーディングしますか?私はこれをPHPで実装していますが、擬似コードも同様に機能します。
compiler-construction - アセンブラ言語プログラミング
10 未満の正の数を入力し、最初の数の合計を出力するプログラムを作成しようとしています。たとえば、5 は 5+4+3+2+1 になります。コマンドは、Stop、Load、Store、Add、Sum、Multiply、Divide、Input、Output、Branch、0 の場合は Branch、0 でない場合は Branch です。私はちょっと立ち往生しています。私が書いたものは次のとおりです。
私が見た方法では、数値 n をロードし、合計 0 を追加してから、この合計を n+sum として保存します。次に、n を再度ロードして 1 を減算し、それを新しい合計として格納します。しかし、n が 0 になるまでこれを繰り返す必要があります。
わかりましたので、私がする必要があるのは、0 の場合はブランチを使用し、0 でない場合はブランチを使用することです。それで:
DC=指定定数ですが、nが0になるまで1を引いて足し算を繰り返す必要があります。何を繰り返す必要があるかはわかっていますが、アセンブリ言語でこれを行う方法がわかりません。