タグ付けされた質問 「java」

この課題は、Java言語に関連しています。回答が特定の言語であることが必要な課題は、一般的に推奨されないことに注意してください。

1
有効な迷路の数
与えられたWxHグリッドを、どのように多くの可能な迷路がありますか? 迷路について知っていること: グリッドのH高さは正確に正方形で、W幅は正方形です。 開始、終了、空の3つのタイプの正方形があります。迷路には、開始と終了がそれぞれ1つだけ含まれている必要があり、残りのすべての正方形は空です。 迷路全体を囲む壁があります。 以下の規則に違反しない限り、壁は任意の2つの正方形の間のエッジに存在できます。 開始広場から終了広場までのパスが存在する必要があります。 したがって、との2つの数値を指定するWとH、可能な正方形/壁構成の数を表す単一の数値を返す必要があります。あなたは保証されていますW*H > 1 たとえば、2x2迷路の100構成はまったく異なります。 これはコードゴルフなので、最短の答えが勝ちです!

5
リスク、Warlight Way
前書き このゲームでは、プレイヤーは自分の軍隊を使用して他のプレイヤーの軍隊と戦い、領土を占領し、最後の男になります。各ターンで、プレイヤーは基本数の軍隊を受け取り、自由に使用できます。ただし、特定の地域の領土をキャプチャすることで、プレイヤーはこの数を増やして、ゲームの後半で潜在的な利点を与えることができます。(これは基本的にWarlightと同じです)。 すべてのボットは、Java、C、またはC ++で作成する必要があります(他の言語も含めますが、ソフトウェアや経験はありません)。サブミッションでクラスを拡張する必要はありません。関数、クラス、インターフェイスなど、必要なものを作成し、標準 APIのパッケージまたはクラスを使用できます。クラスまたはインターフェイスの作成を計画している場合は、内部クラスまたは内部インターフェイスの使用を検討してください。 このコンペティションのコントローラーまたは他の提出物をプログラムで変更しようとしないでください。 ゲームプレイ 概要 10x10の2次元配列は、各要素/セルが「領域」を表すボードをシミュレートします。20ラウンドがあり、ラウンドごとに最大1000ターンがあります。各ターンでは、プレイヤーはまず所有している地域のいずれかに軍隊を配備し、次に、自分の軍隊を攻撃して敵の領土を占領するために、近くの領土に軍隊を輸送する機会を与えられます。プレイヤーはすべてを展開する必要がありますの軍隊をますが、必要に応じて移動する必要はありません。 軍隊の攻撃/移送 プレイヤーが望むなら、彼/彼女は1つの領域から8つの隣接する領域のいずれかに軍隊を送ることができます。ボードは「ラップアラウンド」します。つまり、プレイヤーの領域が一方の側にある場合、そこからの軍隊は反対側の隣接する領域に移動できます。軍隊を領土から移動させる場合、その領土には少なくとも1つの軍隊が残っている必要があります。たとえば、テリトリーに5つの軍隊が含まれる場合、異なるテリトリーに移動できるのは4つまでです。領土に領土が含まれている場合、その軍隊は移動できません。 プレイヤーnが所有する領土から別の領土に軍隊を送った場合、その領土はn軍隊を受け取ります。 プレイヤーがn自分の領土からo軍隊を含む敵の領土に軍隊を送ったとしましょう。最も近い整数に丸められてo減少しn * .6ます。ただし、同時に、最も近い整数に丸められてn減少しo * .7ます。敵の領土が占領されているかどうかに関する次の規則が適用されます。 場合oに達するがゼロn0より大きい場合、プレイヤーが持っているであろう、領土を引き継ぎますnことに軍隊を。 両方の場合nとo、ゼロになりますo自動的に1に設定され、領土をキャプチャされません。 o0よりも大きい場合、プレイヤーの領土内の軍隊の数は増加しn、敵の領土は占領されません。 ボーナス ボーナスを表すために、テリトリーのグループが選択されます。1人のプレイヤーがグループの一部であるすべての領土を所有している場合、そのプレイヤーはターンごとに追加の軍隊を受け取ります。 ボーナスには、プレーヤーが受け取ることができる追加の軍隊を表すさまざまなIDと値を示すID番号があります。各ラウンドでは、ボーナスの値は5〜10の乱数で、フィールドには10のボーナスがあり、それぞれに10のテリトリーが含まれています。 たとえば、1ターンに5つの軍隊を受け取るプレーヤーが、値8のボーナスを構成するすべての領域を所有している場合、そのプレーヤーは次のターンと後続のターンに13の軍隊を受け取ります。ただし、プレイヤーがボーナスを構成する1つまたは複数の領域を失った場合、彼または彼女は1ターンあたりわずか5軍を受け取ります。 入出力 プログラムは、次の形式のコマンドライン引数を使用して入力を受け取る必要があります。 [id] [armies] [territories (yours and all adjacent ones)] [bonuses] ["X" (if first turn)] idそしてarmies両方とも整数です。idあなたのIDでありarmies、あなたの領土に展開する必要がある軍隊の数です。与えられたすべての軍隊を配備する必要があります-これ以上でもそれ以下でもありません。 territoriesは、所有している地域と、所有していない地域に隣接する、所有していない地域を表す一連の文字列です。文字列は次の形式です。 [row],[col],[bonus id],[player id],[armies] rowそしてcol領土がボードの行と列を示し、bonus idこの領域がその一部となっているボーナスのIDであり、player id領土を所有しているプレイヤーのID、およびarmies地域に含まれる軍隊の数です。これらはすべて数字です。 bonusesあなたが利用できるボード上のボーナスを表す一連の文字列です。文字列は次の形式です。 [id],[armies],[territories left] …
12 king-of-the-hill  c  c++  java 

8
水風船戦争
このキングオブザヒルゲームは戦略ゲームであり、水風船を投げて水が飛び散らないようにする必要があります。目標は、ほとんどのポイントを獲得することです。フィールドの地図と水風船の位置が表示されます。特定の方向に水風船にぶつかる(十分近い場合)か、特定の方向に移動したいのかを返すことができます。 具体的には、水風船は (0, 0) 30ユニットの高、落下します。水風船が地面に当たった場合、プレーヤーはランダムに4ポイントを失うように選択され、風船に近い人により大きな重みが与えられます。さらに、バルーンを最後に打ったプレーヤーは3ポイントを獲得します。したがって、風船を真下に当てると、1ポイントを失う可能性が高くなります。 拡張するクラスを作成しますPlayer。コンストラクターを実装する必要があります。コンストラクターは次のようになります。 public Player1() { super(/* Some numbers */ 3, 3, 4) } これらの番号はdoublesです。最初の数字はプレイヤーの速度を表し、2番目の数字は強さを表し、3番目の数字は運を表します。合計は10以下である必要があり、ゼロ以下の数値は使用できません。 第二に、あなたは実装する必要があります moveメソッドを。これはmoveメソッドの例です: @Override protected Action move(Map<Player, Point2D> map, Balloon b) { // Get my own location Point2D myself = map.get(this); // If I'm close enough to the balloon // then hit the …

1
整数操作によりIEEE 754 64ビットのバイナリ浮動小数点数を実装します
(とりあえず質問「C」にタグを付けましたが、共用体をサポートする別の言語を知っている場合は、それも使用できます。) あなたの仕事は+ - * /、次の構造体の4つの標準的な数学演算子を作成することです。 union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 演算自体は整数部分のみを操作またはアクセスするため(演算中にdoubleと比較することはありません)、結果はまったく同じです(またはのような非数値の結果の場合は機能的に同等ですNaN)対応する数学演算がdouble代わりに直接適用されたかのように。 操作する整数部分を選択できます。おそらく、異なる演算子間で異なる部分を使用することもできます。(ユニオンのフィールドのいずれかから「unsigned」を削除することもできますが、それを実行するかどうかはわかりません。) スコアは、4つの演算子のそれぞれの文字のコードの長さの合計です。最低スコアが勝ちます。 IEEE 754規格に慣れていない私たちの人のために、ここではウィキペディアにそれについての記事です。 編集: 03-06 08:47 intfloat構造体にコンストラクタを追加しました。double /などを手動で設定するのではなく、テストに使用できます。

11
ロケットボットKOTH
ロケットボット 年は3024です。人々は戦争で危険にさらすにはリソースが不足しているため、戦闘はロボットに移行しました。あなたの仕事は、他に類を見ないボットを構築することです。誰のロケットが敵に破壊を降らせ、入ってくるすべての脅威を撃ち落とします。 ゲームプレイ ボット ゲームプレイは10x15グリッドで行われます。ボットは下端から外れており、グリッドのスポット6、7、8に3つのスロットがあります。対戦相手はグリッドの一番上にあり、3つのスロットがあなたの真向かいにあります。 ロケット これらのスロットのいずれかから、スロットが破壊されていないと仮定してロケットを発射できます。ロケットは、作成時に与えられる方向のリストで構成され、一度発射されると、これらの方向は変更できません。毎ターン、ロケットはリストの一番上を消費し、その方向に移動します。ロケットは同時に移動します。2つのロケットが同じタイルで終わる場合、両方とも爆発します。ロケットがコマンドを使い果たすと、爆発します。ロケットが燃料を使い果たすと、100回移動した後に爆発します。ロケットが爆発すると、5ターンの間そのタイルにとどまり、そこに移動する他のロケットも爆発します。 注: 同時移動のため、2つのロケットが同じタイルで両方のターンを終了しない限り、2つのロケットは爆発することなく互いに通過できます。 ゴール 各試合の目標は、対戦相手のスロットを破壊することです。ロケットは、お持ちのどのライブスロットからでも発射でき、発射前に指定されたパスが与えられます。1ターンごとにロケットを発射します。つまり、ロケットが2回移動してから、別のロケットを発射できます。決闘は200ターン、または1つのボットスロットがすべて破壊されるまで続きます。 得点 試合の終わりに、あなたはあなたが持っている各ライブスロットに対して1ポイントを獲得し、あなたが破壊した各対戦相手スロットに対して1ポイントを獲得します。つまり、ゼロサムゲームであり、各試合で6ポイントが与えられます。 ラウンドロビンが実行され、各ボットが1つずつ互いにボットに向かいます。ボットがRNGを使用する場合、各対戦は1000デュエルになります。 実装 コンテストのコードは、https://github.com/Cain93/RocketBotsにあります。 提出ごとにBotクラスを拡張する必要があります。fireRocketメソッドをオーバーライドする必要があります。このメソッドはRocket[][]、ゲームボードを表すRocketsのグリッド配列を受け取ります。あなたは、常にスポットのスロットに、グリッドの下部に位置しています[-1][6]、[-1][7]、[-1][8]。グリッドでは、空いているスポットはで表されnullます。タイル内にロケットが存在する場合、disフィールドにアクセスすることでロケットが誰であるかを特定できます。「^」はロケット、「v」は対戦相手です。 ロケットの指示を与える整数のLinkedListを返す必要があります。上に移動するには、0を使用します。上下に移動するには、1を使用し、右に2を使用します。ロケットは、整数を押した順に移動します。たとえば、次のコードはロケットを数回転上方向に移動させ、数回転ジグザグにしてから爆発させます。 LinkedList<Integer> moves = new LinkedList<Integer>(); moves.push(0); moves.push(0); moves.push(0); moves.push(1); moves.push(7); moves.push(1); moves.push(7); ロケットを発射するスロットを変更するには、curSlotフィールドを変更します。0は一番左のスロット、2は一番右のスロットです。スロットが破壊されているかどうかを確認するには、を使用しますgetSlot(int slotNumber)。 ロケットがスロットのターンを終了すると、そのスロットは破壊されます。ロケットを手動で爆発させる必要はありません。 注:ロケットは発射されたスロットの位置に出現しますが、衝突が評価される前に一度移動します。したがって、スロット0からロケットを発射し、最初の動きが正しい場合(2)、自分の中央のスロットを破壊します。ただし、上下(1)は安全な動きです。 ボットに名前を付ける場合は、name()メソッドをオーバーライドします。 ボットは決闘ごとに再構築されるため、静的変数はリセットされます。 幸運を! あなたのロケットが真に飛んで、あなたの敵がくすぶっている金属片に過ぎないように。 ヒント: 意図的にロケットを爆発させて爆発を起こすことは、相手のロケットを撃ち落とそうとするよりも簡単に防御する方法です。 ボットの例 package bots; import java.util.LinkedList; import mechanics.*; public class SimpleBot …

7
シンプルパザーク(旧共和国の騎士団のスターウォーズカードゲーム)
Pazaakは、Star Warsユニバースのカードゲームです。BlackJackに似ており、2人のプレイヤーが互いにピットインして、合計20に到達しようとします。各プレイヤーには、スコアを変更するために使用できる4枚の「サイドデッキ」があります。 リーダーボード 2015年6月17日@ 16:40 EDT現在 編集:ネプターは不正行為で失格となりました。スコアはできるだけ早く修正されます... NEPTR:〜424,000 シンシナティキッド:〜422,000 ネストール:〜408,000 オースティンパワーズ:〜405,000 バスティーラ:〜248,000 ダム・コーシャス・プレイヤー:〜107,000 ダムボールドプレイヤー:〜87,000 モックパザークカッププレーオフ できるだけ早く更新されます。 ラウンド1-ネストルvsバスティラ&オースティンパワーズvsシンシナティキッド ラウンド2-ネストルvsオースティンパワーズ&シンシナティキッドvsバスティラ 力学 ゲームプレイは順番に行われます。プレイヤー1には、メイン(ハウス)デッキからカードが配られます。ハウスデッキには40枚のカードがあります。1枚から10枚までの4枚のカードです。新しい価値に立ち向かう。プレイヤー1がやりたいことを決定した後、プレイヤー2はプロセスを繰り返します。 両方のプレイヤーがいなくなると、ハンドが評価されます。プレイヤーが爆撃した場合(20人以上になった場合)、爆撃しなかった場合、他のプレイヤーが勝ちます。プレーヤーが立つことを選択し、他のプレーヤーがより高いハンドバリューを持っている場合、他のプレーヤーが勝ちます。両方のプレイヤーがスタンドを選択した場合、より高いハンドバリューを持つプレイヤーが勝ちます。同点の場合、どちらのプレイヤーも勝ちません。 勝利条件が満たされない場合、プレイは繰り返されます。プレイヤーがターンを終了することを選択した場合、彼らは新しいカードを受け取り、新しい選択をすることができます。彼らが立つことを選択した場合、またはサイドデッキからカードをプレイした場合、新しいカードは配られず、新しいアクションを選択できません。 1人のプレイヤーがゲームに勝つまで、プレイはこのように続きます。ゲームは、ベスト3のうち5セットでプレイされます。 なぜ「シンプルな」Pazaakですか? スターウォーズの世界では、Pazaakはギャンブルに関与していました。このようなシステムを含めると、ゲームにダイナミックさが増しますが、初めてのKoTH競技では少し複雑になります。 「本物の」Pazaakサイドデッキもプレイヤー自身によって提供され、ネガティブカード、ポジティブまたはネガティブカード、フリップカード、ダブルカード、タイブレーカーカードなど、さまざまなカードオプションを含めることができます。これらはまた、ゲームをより面白くしますが、適切なギャンブルインターフェイスを必要とし、競合他社よりもはるかに多くを必要とします。このシンプルなPazaakゲームでは、各プレイヤーは同じサイドデッキを取得します。1から5までの2つのコピーから、4つがランダムに選択されます。 このゲームの成功に応じて、どのギャンブルデッキとカスタムサイドデッキが可能な高度なバージョンを開発する努力をするかもしれません。 プレーヤー このゲームのプレイヤーは、あなたが設計したボットになります。各ボットはPlayerクラスを拡張し、Mechanicsパッケージをインポートし、次のようにplayerパッケージに常駐する必要があります。 package Players; import java.util.Collection; import Mechanics.*; public class DemoPlayer extends Player { public DemoPlayer() { name = "Your Name Here"; } …

6
N基底の回文である数
負でない整数が指定された場合n >= 0、x_i >= 3完全にn異なるb基数の回文である整数のシーケンスを永久に出力します2 <= b <= x_i-2。 これは基本的にOEIS A126071の逆で、そのシーケンスのどのインデックスが値を持つかを出力しますn。b = x_i-1, x_i, x_i+1これらのベースの結果は常に同じであるため(値は常にパリンドロームであるか、常にそうでないか)、ベースを無視するように変更したため、少し異なります。また、オフセットが異なります。 x_i>= 3それぞれの結果の最初の項nがA037183になるように、数値に制限されています。 出力形式は柔軟ですが、数値は適切な方法で区切る必要があります。 例: n seq 0 3 4 6 11 19 47 53 79 103 137 139 149 163 167 ... 1 5 7 8 9 12 13 14 22 23 25 29 35 …
10 code-golf  sequence  base-conversion  palindrome  code-golf  array-manipulation  matrix  code-golf  string  ascii-art  code-golf  ascii-art  physics  code-golf  number  sequence  fibonacci  code-golf  ascii-art  packing  code-golf  string  hexadecimal  code-challenge  restricted-source  decision-problem  binary  code-golf  code-golf  code-golf  stack-exchange-api  code-golf  string  parsing  generation  data-structures  code-golf  kolmogorov-complexity  graphical-output  code-golf  array-manipulation  integer  generation  data-structures  code-golf  number  random  probability-theory  king-of-the-hill  java  minesweeper  code-golf  string  kolmogorov-complexity  animation  code-golf  string  code-golf  code-golf  quine  code-golf  internet  code-golf  arithmetic  base-conversion 

7
ヤコビ行列を作成する
未知数のベクトルを取り、いくつかの一般的な微分可能関数を適用します。ヤコビアンは、次いで行列によって与えられるように。 たとえば、と仮定m=3しn=2ます。次に(0ベースのインデックスを使用) のヤコビアンfは この課題の目標は、このヤコビ行列を出力することです。 入力 プログラム/関数は、2つの正の整数mとを入力として受け取る必要nがfありuます。これらはそれぞれとのコンポーネントの数を表します。入力は、任意のソース(stdio、関数パラメーターなど)から取得できます。あなたはこれらが受け取られる順序を指示することができ、これはあなたの答えへのどんな入力でも一貫していなければなりません(あなたの答えで指定してください)。 出力 ヤコビ行列を表すもの。この表現は、ヤコビ行列のすべての要素を明示的に記述する必要がありますが、各項の正確な形式は、何が区別され、何が明確であり、すべてのエントリが論理的な順序で出力される限り、実装で定義されます。マトリックスを表すための受け入れ可能なフォームの例: 外部リストの各エントリがヤコビアンの行に対応し、内部リストの各エントリがヤコビアンの列に対応するリストのリスト。 各行がヤコビアンの行であり、行の各区切り文字で区切られたエントリがヤコビアンの列に対応する文字列またはテキスト出力。 マトリックスのグラフィック/ビジュアル表現。例:MatrixFormコマンドを使用したときにMathematicaによって表示されるもの 他のいくつかの密行列オブジェクト。すべてのエントリは既にメモリに格納されており、クエリできます(つまり、ジェネレータオブジェクトを使用できません)。例としては、Mathematicaが内部的にMatrixオブジェクトをどのように表すかが挙げられます エントリ形式の例: 形式の文字列。d f_i/d u_jここでi、およびjは整数です。例:d f_1/d u_2。dとf_1またx_2はの間のこれらのスペースはオプションであることに注意してください。また、アンダースコアもオプションです。 d f_i(u_1,...,u_n)/d u_jまたはの形式の文字列d f_i(u)/d u_j。つまり、関数コンポーネントの入力パラメーターf_iはオプションであり、明示的に指定するか、コンパクトな形式で残すことができます。 フォーマットされたグラフィック出力。例:式を評価したときにMathematicaが出力するものD[f_1[u_,u_2,...,u_n],u_1] 開始インデックスとその目的uを選択できますf(回答で指定してください)。出力は、必要なシンク(stdio、戻り値、出力パラメーターなど)への出力です。 テストケース 次のテストケースでは、この規則を使用していm,nます。インデックスは0ベースで表示されます。 1,1 [[d f0/d u0]] 2,1 [[d f0/d u0], [d f1/d u0]] 2 2 [[d f0/d u0, d f0/d u1], [d f1/d u0, d …

2
Javaの最も短い無限ループ文は何ですか?
私はJavaのゴルフに取り組んでおり、無限ループが必要です。明らかに、特にそのような表現力豊かな言語では、必要以上のバイトを使いたくないのです。 実行したいコードがあるとすると、ベースラインは明らかwhile(1>0)/*stmt*/に、1行に10文字while(1>0){/*stmt1*//*stmt2*/}以上、または複数行に12文字追加されています。私は永遠にループしたいコード(まあ、永遠のようです...ループから抜けたりループから戻ったりしたくないかもしれない)が特定の長さを持つため、追加の文字を追加する必要があります。実際にループさせるため。 最初はこれが最高だと思っていましたが、専門家にそれを捨ててもっと良いものを見つけられるかどうか確かめるつもりでした。
8 code-golf  tips  java 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.