গেম তত্ত্বে ডলারের বিল নিলাম গেমের জন্য এটি একটি KOTH চ্যালেঞ্জ । এটিতে, একটি ডলার সর্বোচ্চ দরদাতাকে বিক্রি করা হচ্ছে। বিডগুলি 5% ইনক্রিমেন্টে বৃদ্ধি পায় এবং হারা লোকেরা তাদের বিডও প্রদান করে। ধারণাটি হ'ল উভয় খেলোয়াড়ই লোকসানের ক্ষতি হ্রাস করার জন্য বিডিং যুদ্ধকে ডলারের মূল্য ছাড়িয়ে আরও বাড়িয়ে তোলেন।
আসুন আশা করি আপনার বটগুলি তার চেয়ে বেশি স্মার্ট।
আপনি net.ramenchef.dollarauction.DollarBidder
ক্লাসটি বাড়িয়ে এই গেমটি খেলতে বট তৈরি করবেন । আপনাকে অবশ্যই সেই nextBid
পদ্ধতিটি প্রয়োগ করতে হবে যা আপনার বটের পরবর্তী বিডকে অন্য বটের আগের বিড দেয় returns যদি প্রয়োজন 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) {}
/**
* Bid on the dollar. Bidding ends if the bid is
* not enough to top the previous bid or both bids
* exceed $100.
*
* @param opponentsBid How much money, in cents,
* that the opponent bid in the previous round. If
* this is the first round in the auction, it will
* be 0.
* @return How much money to bid in this round, in
* cents.
*/
public abstract int nextBid(int opponentsBid);
}
নিম্নলিখিতগুলির মধ্যে একটি না হওয়া পর্যন্ত বিডিং চলে না:
nextBid
একটি ব্যতিক্রম নিক্ষেপ যদি এটি ঘটে থাকে তবে যে বট ব্যতিক্রম ছুঁড়েছে তারা তাদের পূর্বের বিড প্রদান করে এবং অন্য বটটি বিনামূল্যে ডলার পেয়ে যায় dollar- হয় বট আগের বিড শীর্ষে দেওয়ার জন্য যথেষ্ট পরিমাণে অর্থ প্রদান করে না। যদি এটি হয়, উভয় বট তাদের বিড প্রদান করে (হারা লোক তাদের পূর্বের বিড প্রদান করে) এবং বিজয়ী একটি ডলার পান।
- উভয় বটই ১০০০ ডলারের বেশি বিড করে। যদি এটি হয় তবে উভয় বটই $ 100 প্রদান করে এবং বট উভয়ই ডলার পায় না।
বটগুলির প্রতিটি সংমিশ্রনের জন্য 2 নিলাম অনুষ্ঠিত হয়। সমস্ত নিলামে তারা যে মোট লাভ করেছে তাতে বটস স্কোর হয়। সর্বোচ্চ স্কোর জয়।
উদাহরণ
GreedyBot
import net.ramenchef.dollarauction.DollarBidder;
public class GreedyBot extends DollarBidder {
@Override
public int nextBid(int opponentsBid) {
return opponentsBid + 5;
}
}
OnlyWinningMove
import net.ramenchef.dollarauction.DollarBidder;
public class OnlyWinningMove extends DollarBidder {
@Override
public int nextBid(int opponentsBid) {
return 0;
}
}
AnalystBot
বিশ্লেষণাত্মক-মনের বটগুলির জন্য এটি একটি টেম্পলেট হিসাবে ব্যবহার করবেন না; ImprovedAnalystBot
পরিবর্তে ব্যবহার করুন।
import net.ramenchef.dollarauction.DollarBidder;
// yes, this is a poor implementation, but I'm not
// going to waste my time perfecting it
public class AnalystBot extends DollarBidder {
private DollarBidder enemy;
@Override
public void newAuction(Class<? extends DollarBidder> opponent) {
try {
enemy = opponent.newInstance();
enemy.newAuction(this.getClass());
} catch (ReflectiveOperationException e) {
enemy = null;
}
}
@Override
public int nextBid(int opponentsBid) {
if (enemy == null)
return 0;
return enemy.nextBid(95) >= 100 ? 0 : 95;
}
}
AnalystKiller
import net.ramenchef.dollarauction.DollarBidder;
public class AnalystKiller extends DollarBidder {
private static int instances = 0;
private final boolean tainted;
public AnalystKiller() {
this.tainted = instances++ != 0;
}
@Override
public int nextBid(int opponentsBid) {
if (tainted)
throw new RuntimeException("A mysterious error occurred! >:)");
return 0;
}
}
অতিরিক্ত বিধি
- স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।
- অন্যান্য বটগুলিকে সাবটেক্ট করার অনুমতি দেওয়া হয়েছে, তবে ক্ষেত্র / পদ্ধতির দৃশ্যমানতার পরিবর্তনের চেষ্টা করার ফলে রহস্যজনক ফলাফল আসবে
SecurityException
। একটি ব্যতিক্রম অন্য বটকে 500 মিমি সীমা ভেঙে ফেলছে। - বट्स
DollarBidder
ক্লাস বাড়ানো ছাড়া রানার প্যাকেজ অ্যাক্সেস করতে পারে না । - সমস্ত পদ্ধতি 500ms বা তারও কম সময়ে ফিরে আসা উচিত।
- বটগুলি ডিটারমিনিস্টিক হওয়ার দরকার নেই।
- আপনার বিড করে না 5 গুণ হতে ¢ প্রয়োজন।
- $ 1 = 100 ¢
- ফলাফল 24 এপ্রিল, 2018 এ পোস্ট করা হবে।
ফলাফল
MTargetedBot: $14.30
BuzzardBot: $9.83
BluffBot: $9.40
RiskRewardBot: $9.35
SecretBot: $8.50
LuckyDiceBot: $7.28
CounterBot: $6.05
MBot: $5.40
StackTraceObfuscaterBot: $5.20
EvilBot: $4.80
MarginalBot: $4.60
TargetValueBot: $4.59
InflationBot: $4.27
UpTo200: $4.20
InsiderTradingBot: $1.90
MimicBot: $1.50
BorkBorkBot: $1.22
DeterrentBot: $0.95
MarginalerBot: $0.00
RandBot: $-4.45
BreakEvenAsap: $-7.00
AnalystOptimizer: $-13.95
DeterredBot: $-1997.06
ScoreOverflowBot: $-21474844.15
MirrorBot: $-21475836.25
MTargetedBot
14.30 ডলার লাভের সাথে অভিনন্দন !
LuckyDiceBot
উদাহরণস্বরূপ 2-12
এলোমেলোভাবে ইনক্রিমেন্টে বিড করুন ..