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

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

30
サバイバルゲーム-オオカミを作成
ボード ボードは、セルの二次元アレイです。細胞には動物が生息しています。毎日、ボード上のすべての動物は同時に1つの動きをします。2つ以上の動物が同じセルに移動すると、1つが残るまで戦います。考えられる移動と攻撃は次のとおりです。 移動 - { Move.UP、Move.RIGHT、Move.DOWN、Move.LEFT、Move.HOLD} 攻撃 - { Attack.ROCK、Attack.PAPER、Attack.SCISSORS、Attack.SUICIDE} 動物はじゃんけんをして戦います。標準ルールが適用されますが、2つの変更があります。まず、いつでも自殺できます。第二に、ネクタイは擬似ランダムに壊れます。2匹以上の動物が衝突した場合、2匹が擬似ランダムに選択され、1匹が残るまで戦います。 プレーヤー 動物の行動と外観は次のとおりです。 ライオン 文字で表されますL。移動しDOWN、RIGHT、その後、繰り返されます。PAPERまたはで疑似ランダムに攻撃しSCISSORSます。 くま 文字で表されますB。移動DOWNX 4、RIGHTX 4、UPX 4、LEFTX 4、次いで繰り返します。での攻撃PAPER。 石 文字で表されますS。移動しHOLDます。での攻撃ROCK。 狼 回答として提出されたオオカミのみが含まれます。「W」で表されます。任意のMoveで移動します。あらゆる攻撃による攻撃 次のテンプレートの空白を埋めることで、ウルフを実装します。すべての提出物はJavaで作成し、単一のファイルに含める必要があります。または、@ ProgrammerDanは、競合をJava以外のサブミッションに拡張するラッパークラスを作成しました。 // Optional code here public class Wolf extends Animal { // Optional code here public Wolf() { super('W'); /* Optional code here */ …

30
サバイバルゲーム-エイリアン戦争
エイリアン戦争 このゲームは、エイリアンが優れた人種である非常に混雑した惑星で行われます。あなたの仕事は、あなた自身のエイリアンを作成し、他のすべてを打ち負かすことです。 ボード 2次元のボードです。 ボードの片側の長さは、使用するボードのMath.ceil(sqrt(species * 100 * 2.5))約40%です。ボードは惑星であるため、西の地図から出ると、東に戻ります。北に出て行くと、南にいることに気づくでしょう。 能力 地球上の各種には能力があります。どうぞ: 名前 メリット ライフHP = lifeLVL * 5(ヒットするたびに減少、0 =デッド)、ベースHP = 10 強さヒットは、範囲[1〜strengthLVL]の範囲内でランダムに整数ダメージを与えます 防御範囲[0〜(50 / DefenseLVL + 1)]でランダムにintを選択します。int == 0の場合、次の攻撃をかわします 視力を与えますvisionLVL / 2あなたの周りの視野 賢ぼけ(増加)の範囲でランダムにすべての能力[0にclevernessLVL 2 /他の外国人への送信 ゲーム 各提出には100個のインスタンスがあります。 インスタンス化後、各エイリアンは合計10個の能力ポイントを設定できます。インスタンスごとに異なるポイントを設定できます。 10ポイント以上を設定すると、インスタンスは停止します。 ゲームは1000ラウンドで構成されます。各ラウンド: すべてのエイリアンは経由で動きを返さなければなりませんmove(char[] fields)。これにはMove.STAYが含まれます。 複数のエイリアンがフィールドにいる場合、2人がランダムに選択されます。 両方が平和に同意する場合(でfalseを返すwantToFight)、現在の場所に留まるか、そうでない場合は戦います。 これは、1人のエイリアンのみがフィールドに滞在するか、全員が平和に同意するまでループします。 エイリアンが何かを殺すと、敵の能力の1/5を獲得します。勝者のHPには2 * enemyLifeLVLが補充されます。 勝者は、最も能力(生きているエイリアンの能力の合計)を持つものです。 戦い …

30
Javaでのゴルフのヒント
Javaで使用できる便利なショートカットはありますか? 以下に示すように、importすでに少なくとも17文字がプログラムに追加されています。 import java.io.*; 簡単な解決策は別の言語を使用することであることを理解していますが、Javaプログラムを短縮することは本当に難しいようです。 ヒントはJavaに固有である必要があります。ほとんどのCライクな言語に適用できる場合は、より一般的なヒントのリストに属します。
86 code-golf  tips  java 

28
あなたは最も弱いリンクです、さようなら
このキングオブザヒルチャレンジは、ゲームショーWeakest Linkに基づいています。ショーに不慣れな人のために、このチャレンジの核心はあなたが投票する人を扱っています: 他のプレイヤーがあなたより賢い場合、ポットを獲得する可能性は低くなります。 他のプレイヤーがあなたよりも愚かである場合、獲得するポットが少なくなります。 各ラウンドの開始時に、ポットは$ 0から始まります。9人のプレーヤーのグループが形成され、各プレーヤーには1〜9の一意のスマートネスが与えられます。 各ターンの開始時に、Pot += Smartnessまだラウンドにいる各プレイヤーに対して。次に、プレイヤーは削除したいプレイヤーに投票します。最も投票数の多いプレイヤーが削除されます。同点の場合、よりスマートなプレーヤーが保持されます。 ラウンドに残っているプレイヤーが2人だけの場合、彼らは知恵の戦いで対決します。プレイヤーが勝つ可能性はSmartness/(Smartness+OpponentSmartness)です。その後、勝者はポット全体を受け取ります。 ゲーム終了時に最も多くのお金を受け取ったプレイヤーが勝ちます。 入出力 ターンごとに、現在の対戦相手のリストを受け取ります。Playerクラスの関数を介して、ラウンドのスマートさとすべてのプレイヤーの投票履歴全体にアクセスできます。 出力として、投票したいプレーヤーを表す(彼らのスマートさを表す)単一の整数を返す必要があります。自分の投票は許可されています(ただし、推奨されません)。 9ラウンドは、すべてのプレイヤーが少なくとも1000 10000ラウンドをプレイし、すべてのプレイヤーが同じラウンド数でプレイするまで繰り返されます。 ここでコントローラーを見つけることができます:https : //github.com/nathanmerrill/WeakestLink プレーヤーを作成するには、Playerクラスを拡張し、プレーヤーをPlayerFactoryクラスに追加する必要があります。クラスは次のルールに従う必要があります。 他のプレイヤー(同じタイプの他のプレイヤーを含む)との通信または干渉は固く禁じられています。 リフレクションと静的変数(定数を除く)は許可されていません。 ランダム性を使用する場合getRandom()は、Playerクラスで関数を提供しています。これを使用して、シミュレーションを決定的にすることができます。 Playerクラスには、データに簡単にアクセスするための多くの関数を提供しています。Githubでオンラインで見つけることができます。プレーヤーは新しいラウンドごとにインスタンス化されます。「ダム/自殺」プレイヤーは許可されます(同じ戦略を持つプレイヤーは許可されません)。 スコア 377195 WeakestLink.Players.PrudentSniper 362413 WeakestLink.Players.Sniper 353082 WeakestLink.Players.VengefulSniper 347574 WeakestLink.Players.AntiExtremist 298006 WeakestLink.Players.BobPlayer 273867 WeakestLink.Players.MedianPlayer 247881 WeakestLink.Players.TheCult 240425 WeakestLink.Players.Leech 235480 WeakestLink.Players.SniperAide 223128 WeakestLink.Players.Guard 220760 WeakestLink.Players.Anarchist 216839 WeakestLink.Players.RevengePlayer 215099 …

19
フェローシップの戦いKotH
この課題では、戦闘で他のすべてのフェローシップを打ち負かすことを目標とするフェローシップを作成します。 フェローシップ(チーム)は3人のキャラクターで構成されます。各キャラクターはチームの他のメンバーとは独立して動きますが、敵と戦うときは協力する必要があります。チームは回転しながらお互いに向かい合います。勝ちは3ポイント、同点は1ポイント、負けは0ポイントの価値があります。 キャラクターには能力があります。キャラクターが持っている能力の選択は、このKotHで最も重要な(そして楽しい)部分の1つです。それらはすべて強力で、敵を一掃する可能性があります。 キャラクターはヘルスポイント(HP)を持ち、HPが0になる(または下回る)と死亡します。対戦相手のチームのすべてのキャラクターが死亡した場合、あなたは勝ちます! キャラクターにはマナがあります。ほとんどのアクションを実行するにはManaが必要であり、十分な数がない場合、そのアクションは使用できません。 キャラクターにはターン遅延があります。これにより、各ターン間のティック数が決まります(100から始まります)。低いほど良い。 文字には属性があります。各キャラクターの各属性には5のベースがあり、分割するために20の追加の属性ポイントが与えられます。属性ポイントを割り当てた後、プライマリ属性が最高の属性として設定されます。 利用可能な属性は次のとおりです。 強さ:ターンごとに10 HPと0.5 HPを与える 知性:ターンごとに7マナと7マナを与える 敏ility性:ターン遅延を1減らす 移動、ビジョン、範囲の 範囲は次のとおりです(0を中心に)。一部の範囲はcardinalです。つまり、直接上下左右にしか移動できません。 444 43334 4322234 432111234 432101234 432111234 4322234 43334 444 キャラクターの開始ビジョンは2です。同じフェローシップのプレイヤー間のビジョンは共有されます。 遊び方 建設 プレイヤーはフェローシップを構築します。 次の手順を実行する必要があります。 各キャラクターにポイントを与えます。各キャラクターは各スタットで5から始まり、3の間でさらに20が分配されます。 各キャラクターに能力を与えます。各キャラクターは4つの能力スロットから始まり、能力はデフォルトで1スロットを取ります。一部の能力は反復可能で、キャラクターに複数回与えることができます。所有者の許可なしに別の提出の機能セットを使用することは許可されていません。 ボット用のコードを作成します。コードはJavaである必要があり、戦闘に使用されます(次のステップ) 行動 すべてのキャラクターは3つの標準アクションで始まります: ステップ:主な範囲1でキャラクターを移動する スライス:主属性範囲1 でPrimaryAttributeの敵を攻撃します 笑顔:何もしない キャラクターのターンで、実行するアクションを選択する必要があります。アクションにはマナコストがあり、クールダウンがあります。これは、そのアクションを再度実行するまで待機する必要があるターンの数を定義します。 能力 各キャラクターには4つの能力スロットがあります。能力が斜体の場合、それはアクションです。 能力 名前説明マナクールダウン モビリティ 瞬き 正方形に移動範囲が4 2 2 スワップ 対象とスワップ位置5 …

4
Splix.io-キングオブザランド
あなたは、その支配下にある土地を増やしたいと思う進取の気性のある人です。これは非常に簡単です-現在の土地の外に出て、あなたの土地にループバックすると、そのループ内のすべてがあなたのものになります。しかし、キャッチがあります。他のドットが何らかの方法でループを見つけて交差すると、死にます。 まだ試していない場合は、Splix.ioにアクセスしてゲームを試してください。矢印キーを使用して、動きを制御します。 GIF クレジット:http : //splix.io/ 仕様 すべてのプレイヤーは、200x200ボード上のランダムな位置から始まります。(私はこれを変更する権利を留保します:)。可能な限り多くのポイントを集めるために、一定量の動きがあります。ポイントは以下によって集計されます: 殺したプレイヤーの数は300回 ラウンド終了時に所有する土地の量 これは、他の人があなたの土地を盗むことができるというポイントをもたらします。彼らがあなたの土地の一部と交差するループを開始した場合、彼らはそれを主張することができます。ラウンド中に死亡した場合、そのラウンドのすべてのポイントを失います。 各ラウンドには、ランダムに選択されたプレーヤーのグループ(最大5人のユニークなプレーヤー)がいます(変更される場合があります)。すべてのプレイヤーが同数のラウンドに参加します。ボットの最終スコアは、ゲームごとの平均スコアによって決まります。各ゲームは2000ターンで構成されています(変更される場合もあります)。すべてのボットは同時に動きます。 死亡例 頭突き 両方のプレイヤーが頭を突き合わせて死ぬ。これは、両方のプレーヤーが自分のスペースの端にいる場合でも、まだ当てはまります。 ただし、自分の土地にプレイヤーが1人しかいない場合、他のプレイヤーは死亡します。 ラインクロス この場合、紫色のプレイヤーのみが死亡します。 独自のラインを越えることはできません。 ボードを終了する プレイヤーがボードから退出しようとすると、死亡してすべてのポイントを失います。 撮影エリア プレイヤーは、トレイルがあるときにエリアをキャプチャし、自分の土地に再び入ります。 赤は2本の赤い線の間を塗りつぶします。プレーヤーが記入しない唯一のケースは、別のプレーヤーがループ内にいる場合です。明確にするために、これは自分が所有する土地だけでなく、他のプレイヤー自身がループにいるときにのみ適用されます。プレイヤーは他の人の土地を占領できます。プレイヤーがトレイルに囲まれたエリアを埋めることができない場合、トレイルは通常の土地に直接変換されます。他のプレイヤーの土地ループ内のプレイヤーが死亡した場合、そのループ内の領域は塗りつぶされます。プレイヤーが死亡するたびに、ボードは埋めることができるエリアを再検査されます。 コントローラーの詳細 コントローラーはこちらです。元のゲームと非常によく似ていますが、KotHおよび技術的な理由により適したものにするために、小さな変更が加えられています。@NathanMerrillのKotHCommライブラリを使用して構築されており、@ NathanMerrillの多大な支援も受けています。チャットルームのコントローラーで見つかったバグをお知らせください。KotHCommとの一貫性を保つため、コントローラー全体でEclipseコレクションを使用しましたが、ボットはJavaコレクションライブラリのみを使用して作成できます。 すべてがgithubリリースページの uberjarにパッケージ化されています。使用するには、ダウンロードしてプロジェクトに添付し、オートコンプリートに使用できるようにします(IntelliJの指示、Eclipse)。送信をテストするには、を使用してjarを実行しjava -jar SplixKoTH-all.jar -d path\to\submissions\folderます。にpath\to\submissions\folderという名前のサブフォラーがあることを確認し、javaそこにすべてのファイルを配置します。ボットでパッケージ名を使用しないでください(KotHCommでは可能ですが、もう少し面倒です)。すべてのオプションを表示するには、を使用します--help。すべてのボットをロードするには、を使用します--question-id 126815。 ボットを書く ボットの作成を開始するには、を拡張する必要がありますSplixPlayer。 Direction makeMove(ReadOnlyGame game, ReadOnlyBoard board) ここで、ボットにどの動きをさせるかを決定します。nullを返してはいけません。 HiddenPlayer getThisHidden() のHiddenPlayerバージョンを取得しthisます。ボットをボードと比較するのに便利です。 enum Direction 値 East (x …

20
戦略的投票、ゲーム
単一勝者選挙の最も一般的な投票システムの1つは、複数投票方法です。簡単に言えば、投票数が最も多い候補者が勝ちます。しかし、複数の投票は数学的には不健全であり、有権者が本当に好む候補者とは対照的に、「2つの悪の少ない方」に投票するように駆り立てられる状況を作り出しがちです。 このゲームでは、複数投票システムを活用するプログラムを作成します。選挙で3人の候補者の1人に投票します。各候補者は、あなた自身の特定の見返りに関連付けられており、あなたの目標は、期待される見返りを最大化することです。 ペイオフはランダムに「均一に」分配され、選挙ごとに変更され、100に加算されます。候補者Aはペイオフ40、候補者Bはペイオフ27、候補者Cはペイオフ33を持ちます。 投票する番になると、情報が不完全になります。以下は、利用できる情報です。他のプレイヤーの個々のペイオフが何であるか分からないので、現在の投票結果を考慮して彼らがどのように投票するかを予測するのはあなたの挑戦です。 これまでの選挙の部分的な結果 まだ投票していない参加者(自分を除く)の数 各候補者の個人的な報酬 各候補者の合計グループペイオフ 各プレイヤーに投票の機会が与えられた後、最も投票数の多い候補者が複数の投票に従って勝ちます。各プレイヤーは、その候補者からのペイオフに対応するポイント数を受け取ります。票に同点がある場合、割り当てられるポイントの数は、同点の候補者の平均になります。 トーナメント構造 最初にインスタンス化されると、参加者にはトーナメントで行われた選挙の回数が通知されます。私は非常に多くの選挙を実施しようとします。その後、各選挙は1つずつ実施されます。 参加者がシャッフルされた後、それぞれに投票の順番が与えられます。彼らは上記の限られた情報を与えられ、彼らの投票を意味する数を返します。各選挙が終わると、各ボットに最終的な投票結果が与えられ、その選挙から得点が上がります。 勝利した参加者は、多数の選挙が行われた後、合計スコアが最も高い参加者になります。また、コントローラーは、そのスコアをランダム投票ボットについて予測されたスコア分布と比較することにより、各競技者の「正規化された」スコアを計算します。 提出の詳細 提出は、Java 8クラスの形式を取ります。 各参加者は、次のインターフェイスを実装する必要があります。 public interface Player { public String getName(); public int getVote(int [] voteCounts, int votersRemaining, int [] payoffs, int[] totalPayoffs); public void receiveResults(int[] voteCounts, double result); } コンストラクターはintパラメーターとして1つを取る必要があります。これは、行われる選挙の数を表します。 このgetName()メソッドは、リーダーボードで使用される名前を返します。これにより、適切に書式設定された名前を使用できます。 getVote(...)メソッドが返す0、1または2投票を受け取ることになりますどの候補意味します。 このreceiveResults(...)方法は、主に履歴データを使用するより複雑な戦略の存在を可能にすることです。 与えられた情報を記録および処理する他のメソッド/インスタンス変数を作成することができます。 トーナメントサイクル、拡張 参加者はそれぞれでインスタンス化されnew …

29
ドル紙幣オークション
これは、ゲーム理論におけるドル札オークションゲームのKOTHチャレンジです。その中で、ドルは最高入札者に売られています。入札単価は5¢単位で上昇し、敗者も入札単価を支払います。損失を削減するために、両プレイヤーは入札戦争をドルの価値をはるかに超えてエスカレートするという考え方です。 ボットがそれよりも賢いことを望みましょう。 net.ramenchef.dollarauction.DollarBidderクラスを拡張して、このゲームをプレイするボットを作成します。nextBid他のボットの以前の入札に基づいて、ボットの次の入札を返すメソッドを実装する必要があります。必要に応じて、このnewAuctionメソッドを使用して、対戦相手のボットのクラスで各オークションをリセットすることもできます。 public abstract class DollarBidder { /** * Used by the runner to keep track of scores. */ long score = 0; /** * (Optional) Prepare for the next auction. * * @param opponent The class of the opponent's bot. */ public void newAuction(Class<? extends DollarBidder> opponent) {} …

24
この番号はレーシアンですか?
正の整数kは、次の場合、レーシアン数です。 ki*i + j*j + i*jfor i、j整数として表現できます。 たとえば、最初の正のロジアン数は次のとおりです。1(i=1、j=0); 3(i=j=1); 4(i=2、j=0); 7(i=2、j=1); 9(i=-3、j=3); ... は、特定のに対して一意ではないことiに注意してください。例えば、も用いて生成することができます、。jk9i=3j=0 これらの数値の他の同等の特性は次のとおりです。 k表すことができるi*i + j*j + i*jためi、j負でない整数。(整数の各ペアについてi、j同じを与える非負整数のペアがありますk) k六角形のグリッド上でテッセレーションを形成する一連の連続した六角形があります(k = 4およびの図を参照k = 7)。(この特性のため、これらの数値はモバイルセルラー通信ネットワークに適用されます。) シーケンスのOEISページでその他の特性を参照してください。 チャレンジ 正の整数が与えられた場合、それがレーシアン数であれば真の結果を出力し、そうでなければ偽の結果を出力します。 プログラムまたは関数は1000、データ型の制限まで、または1分未満で入力を処理する必要があります。 コードゴルフ。最短勝。 テストケース 次の数値は、真の結果を出力するはずです。 1, 4, 7, 12, 13, 108, 109, 192, 516, 999 次の数値は偽の結果を出力するはずです。 2, 5, 10, 42, 101, 102, 128, …
33 code-golf  math  number  number-theory  decision-problem  code-golf  kolmogorov-complexity  code-golf  sequence  code-golf  path-finding  chess  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  math  arithmetic  code-golf  code-golf  number  code-golf  geometry  code-golf  math  code-golf  code-golf  kolmogorov-complexity  alphabet  code-golf  regular-expression  hexagonal-grid  king-of-the-hill  path-finding  java  code-golf  string  sorting  code-golf  string  grid  code-challenge  compression  code-golf  random  code-golf  sequence  arithmetic  code-golf  number  grid  tiling  code-golf  tips  code-golf  sequence  number-theory  recursion  code-golf  string  grid  code-golf  math  number  combinatorics  permutations  string  code-challenge  code-golf  sequence  number-theory  subsequence 

19
敵対的な除数
正の整数の除数の中には、実際に互いに嫌いなものがあり、1つ以上の一般的な数字を共有することを好みません。 これらの整数は、敵対的除数(HDN) と呼ばれます 例 数値に9566は4除数があります1, 2, 4783 and 9566 (ご覧のとおり、同じ数字を共有するものはありません)。 したがって、9566はH ostile Dです。 ivisor Nアンバー 番号9567はHDNではありません除数(1, 3, 9, 1063, 3189, 9567)はいくつかの一般的な数字を共有するため、。 ここに最初のいくつかのHDNがあります 1,2,3,4,5,6,7,8,9,23,27,29,37,43,47,49,53,59,67,73,79,83,86,87,89,97,223,227,229,233,239,257,263,267,269,277,283,293,307,337... 仕事 上記のリストに続き、あなたの仕事はn番目の HDNを見つけることです 入力 正の整数nから1の4000 出力 nth HDN テストケース 以下に1インデックス付きのテストケースを示します。 混乱を避けるために、回答で使用するインデックスシステムを明記してください。 input -> output 1 1 10 23 101 853 1012 26053 3098 66686 4000 85009 これはcode-golfであるため、バイト単位の最低スコアが優先されます。 …

3
助けて!電卓が壊れた!(整数式を電卓のキーストロークに変換します)
前書き 助けて!誤ってTI-84計算機を窓から落とし(方法は聞かないでください)、壊れました。明日は数学のテストがありますが、見つけることができるのはこれらのボタンを備えた計算機だけです。 7 8 9 + 4 5 6 - 1 2 3 * 0 = / 私の数学のテストは、式の評価に関するレビューテストです。などの式を取得1+(5*4)/7し、予備の計算機でそれを解決するために必要なキーストロークに変換するプログラムが必要です。(そして、あなたが疑問に思っている場合、これは実際に私に起こりました)。 チャレンジ 含有する非空の入力文字列が与えられた唯一の文字0-9、(、)、+、-、*、および/、出力スペースで区切られた文字列内のキーストローク(例えば。1 + 3 / 3 =)。出力の最後には常に等号が必要です。標準の抜け穴は許可されていません。 例: 入力:1+(5*4)/7、出力:5 * 4 / 7 + 1 = 入力:6*(2/3)、出力:2 / 3 * 6 = 入力:(7-3)/2、出力:7 - 3 / 2 = この課題を簡単にするには: 入力には、計算機をクリアする必要のない一連のキーストロークが入力されていると想定1-(7*3)できます(計算する必要があるため無効です。7 * 3実行するには計算機をクリアします1 …

6
それはBSです!(トランプゲーム)
BSは、ゲームの目的がすべてのカードを失うことであるカードゲームです。 ゲームは4人のプレーヤーと52枚のカードデッキで構成されます。各プレイヤーにはランダムに13枚のカードが配られます。通常、カードには2〜10、エース、ジャック、クイーン、キングのラベルが付けられますが、簡単にするために、カードには0〜12の番号が付けられます。プレーヤーの手にあるカードの数は公開情報ですが、プレーヤーだけが自分の手にある特定のカードを知っています。 ゲームは次のようになります:最初のプレーヤーは、0のラベルが付いたカードを好きなだけ捨て札の山に置きます(通常は、0のラベルが付いたすべてのカードをプレイする必要はありませんが、そうするのが最善です) )。彼は少なくとも1枚のカードをプレイしなければなりません。2番目のプレーヤーは1のラベルを付けたい数のカードをプレイし、3番目のプレーヤーは2をプレイします。12の後、0にリセットされます。 あなたがプレイすることになっているカードのいずれかを持っていない場合はどうなりますか?覚えておいて、あなたは少なくとも1枚のカードをプレイする必要があります-実際には、あなたが望むカードをプレイすることができます!(実際、正しいカードを持っている場合でも、嘘をついて別のカードをプレイできます)。ただし、誰かがあなたに電話して「BS!」と言うことはできます。その誰かが正しく、あなたが嘘をついていたなら、あなたは捨て札の山にあるすべてのカードを取らなければなりません。報酬として、あなたをコールしたプレイヤーは、自分のカードの1つを捨て札の山にランダムに置きます。ただし、告発者が間違っている場合、彼はすべてのカードを破棄パイルに入れなければなりません。あなたがプレイするカードの数について嘘をつくことができないことに注意してください。 より詳細な情報: ゲームの開始時に、4人のランダムなプレイヤーが選ばれます。少なくとも1000のゲームがあるため、各プレイヤーはプレイする機会を得ます。ターン順は、ゲームの開始時にランダムに決定されます あなたは1枚の正しいカードと1枚の間違ったカードを返却した場合、それは嘘と考えられている(あなたが与えることになっていた場合、すなわち2秒を、あなたは1与えた2と1 1を、その後のが嘘をついていることを、) 2人以上のプレイヤーが両方とも同時にBSと言う場合、1人がランダムに選択されます。 スコアは、勝ったゲームの割合です。 最大1000ラウンドがあり、1ラウンドはすべてのプレーヤーが1回行くことです。通常、この前に誰かが勝ちます。誰も勝てない場合、プレイされたゲームの総数にカウントされますが、誰も勝ちません。 仕様: を拡張するクラスを作成する必要がありますPlayer。次のようになります。 package players; import java.util.ArrayList; import java.util.List; import controller.*; public class Player1 extends Player { @Override protected List<Card> requestCards(int card, Controller controller) { Card[] hand = getHand(); List<Card> ret = new ArrayList<Card>(); for (Card c : hand) …

30
賢い人のMira気楼
むかしむかし、Quoraでこの質問/回答を読んでいた FizzBu​​zzテストに合格できないコンピューターサイエンスの学位を持つプログラマーは本当にいますか このコードは明白な答えとして与えられます for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i もちろん、FizzBu​​zzは死ぬまでゴルフにかけられましたが、それはこの質問の目的ではありません。あなたはコメントで、4の倍数の印刷「ジャズ」などの追加条件を簡単に追加できるので、この明白な答えは素晴らしいと誰かが言及していることがわかります(同意しません。このスキームを拡張するにはO(2 ** n )コード行。) あなたの挑戦は、仲間によって判断されるようにFizzJazzBuzzの最も美しいバージョンを書くことです。 投票者が考慮すべき事項: ドライ 除算/モジュラス演算の効率 Quoraに関する回答の多くはPythonを使用していましたが、ここではそのような言語の制限はありません。 …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

14
コードボット4:関数型プログラミング
sheesh、これは本当に4番目ですか?昔からのすべての人にとって、中心的な課題は同じですが、カスタム言語の代わりにJavaを使用しています。興味のある方のために、過去3つの CodeBot チャレンジをご紹介します。 CodeBotsの目標は、ボットをできるだけバイラルにすることです。各ボットには旗があり、旗がどこにでもあることを確認する必要があります。 API ボットは標準化された「プロトコル」に従い、ボットは以下のステップを同期的に進行します。 IPAddress selectMessageRecipient() ボットが「フレンドリ」メッセージの送信先を選択できるようにします。 Message sendMessage() ボットが送信するメッセージの内容を選択できるようにします。 processMessage(IPAddress, Message) ボットが受信するメッセージごとに呼び出されます。 FunctionType selectFunctionToBlock()現在のターンで関数が上書きされるのをブロックします。手順7を参照してください。 IPAddress selectAttackTarget()ボットがDDOSを希望するユーザーを選択できるようにします。ボットが同時に3つのボットの標的になっている場合、DDOS攻撃は成功します。攻撃が成功した場合、各攻撃者はステップ6および7を実行できます。 readData(ReadonlyBot) ボットが脆弱なボットに保存されているデータを読み取れるようにします。 FunctionType selectFunctionToReplace()この挑戦の核心です。1つの機能(ここにリストされている8つのうち)を選択して、ボットからボットにコピーできます。その後、関数はtheirsの代わりに呼び出されます。複数のボットが同じ機能を選択した場合、ランダムなボットが成功します。 String getFlag()はゲームの終了時に呼び出され、送信に固有の文字列を返す必要があります。関数は常に同じ文字列を返す必要があります。ゲームの最後に最も多くのフラグが付いた提出が勝ちです。 ストレージ ストレージには、AddressBook、Log、Variablesの 3つの形式があります。 これらの形式のストレージは、関数が実行されているボットに対してローカルです(関数がコピーされた場合、これらの各オブジェクトの内容は異なります)。これらのオブジェクトはすべて、手動で変更または消去できます。これらのオブジェクトを取得するには、クラスにゲッターがあります(例:)getLog()。 アドレス帳は、リストに格納たIPAddressと、各AddressTypeにあなたがアドレスの種類を分類することができます。 AddressBookには常に少なくとも1つのアドレスが含まれます(クリアされた場合、ランダムなアドレスが追加されます)。アドレス帳をクリアして複数のIPアドレスを取得するは許可されていません。 ログはすべて実行されたアクションだけでなく、行動に関するデータのリストを格納します。また、成功したすべての攻撃の履歴も含まれます(ただし、どの機能が上書きされたかはわかりません) 変数オブジェクトを使用すると、文字列の名前に接続文字列変数を格納することができます。ゲームの開始時に、変数には単一の変数が含まれますID。これには、ボットタイプに固有のランダムに生成されたIDが含まれます。 他のアクセス機能もあります。 int getTurnNumber() 現在のターンの整数を返します bool functionsMatch(ReadonlyBot, FunctionType) ReadonlyBotの関数があなたのものと一致するかどうかをテストします IPAddress personalAddress() あなたのIPアドレスを返します 実装方法 Githubからコードを入手できます ボットを\botsフォルダーに追加してから、ボットへの参照を追加しますcontroller\CodeBotFactory.java ボットを拡張するcodebots.bot.CodeBotか、codebots.bots.DefaultCodeBot コントローラーを実行する場合は、Java 8が必要です。 …

9
チェストーナメント
これは、単純化されたルールを持つチェスKOTHです(チェス自体は既に複雑であるため、単純なプログラムでプレイしても簡単にはなりません)。現時点ではjava(バージョン8)に限定されていますが、ラッパークラスの作成はそれほど難しくありません(誰かがこれを行いたい場合)。 チェス盤 制御プログラムのチェス盤は、ICCF数値表記の修正バージョンを使用します。これはゼロベースです。つまり、左下のフィールドはposition 0,0であり、右上のフィールドはposition 7,7です。 変更されたルール 入場者は無視されます。 キャスリングはできません。 50手ルールは、(引き分けで試合終了を意味する)に自動的に適用されます。 クイーンへのポーンのプロモーションは、ボードの終わりに達すると自動的に行われます。 プレイヤーが移動するのに2秒以上かかる場合、ゲームに負けます。 無効な動きを返すと、ゲームに負けます。 勝つためには、敵の王を捕獲する必要があります。敵をチェックメイトするだけでは不十分です。 これにより、敵を捕まえることができるフィールドに王を移動させることもできます。 白がゲームを開始します。 白はフィールドの「下部」に配置され(y = 0)、黒は上部に配置されます(y = 7)。 ボット以外のリソース(インターネット、ファイル、他のボットなど)へのアクセスは禁止されています。 得点 勝つと3ポイント、引き分け1ポイント、0ポイントを失います。 各サブミッションは、他のサブミッションと10回対戦します(白で5回、黒で5回)。 コントローラ 制御プログラムはgithubで見つけることができます。 参加するには、playerパッケージ内にクラスを作成する必要があり、そのサブクラスである必要がありPlayerます。例として、 TestPlayerを見てください(これもスコアに含まれます)。 各ゲームで、コントローラーはプレーヤーの新しいインスタンスを作成します。その後、ターンごとに移動を返す必要があります。コントローラは、フィールドの 8x8配列を含むボードのコピーを提供します。フィールドには、その色、位置、および存在する場合はその部分に関する情報が含まれます。 コントローラはまた、のような、敵の選手についての情報を提供しますと。敵を呼び出すと失格になります。isCheckgetPieces()getMove() スコアボード 01)AlphaBetaPV:229 02)AlphaBeta:218 03)PieceTaker:173 04)チーズ:115 05)ThreeMoveMonte:114 06)StretchPlayer:93 07)DontThinkAhead:81 08)SimplePlayer:27 09)TestPlayer:13 コンテストは、コントローラーによって提供されるメソッドから利益を得ることができるため、回答の作成が容易になるため、Javaに限定されています。ただし、誰かがラッパーを作成する場合は、他の言語を含めます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.