পটভূমি ভবিষ্যত
2017 সালে, আপনি এবং আপনার প্রতিপক্ষ একটি ভবিষ্যত বন্দুক যুদ্ধে মুখোমুখি হবেন যেখানে কেবল একজনই বেঁচে থাকতে পারে। আপনি কি প্রতিপক্ষকে পরাস্ত করতে যথেষ্ট অভিজ্ঞ? আপনার প্রিয় প্রোগ্রামিং ভাষায় আপনার বন্দুকের দক্ষতা পালিশ করার এবং সমস্ত প্রতিকূলতার বিরুদ্ধে লড়াই করার সময় এখন!
টুর্নামেন্টের ফলাফল
এই টুর্নামেন্ট Feburary 2 ইউটিসি সকালে শেষ হয়েছে য় , 2017. আমাদের প্রতিযোগী জন্য ধন্যবাদ, আমরা একটি উত্তেজনাপূর্ণ আধুনিক টুর্নামেন্ট ছিল!
সিবেটাপ্লেয়ার এবং স্টুডিয়াসপ্লেয়ারের সাথে ঘনিষ্ঠ লড়াইয়ের পরে মন্টেপ্লেয়ার চূড়ান্ত বিজয়ী। শীর্ষস্থানীয় তিনজন ডিলার একটি স্মরণীয় ছবি তোলেন:
MontePlayer - by TheNumberOne
+------------+
CBetaPlayer | | - by George V. Williams
+------------+ # 1 | StudiousPlayer - by H Walters
| +----------------+
| # 2 # 3 |
+------------------------------------------+
The Futurustic Gun Duel @ PPCG.SE 2017
বিজয়ীদের অভিনন্দন! এই পোস্টের শেষের নিকটে বিশদ লিডারবোর্ডটি দেখা যায়।
জেনারেল গাইডেন্স
- পরিদর্শন কর্মকর্তা সংগ্রহস্থলের উৎস এই টুর্নামেন্ট ব্যবহৃত কোড।
- সি ++ এন্ট্রি: অনুগ্রহ করে
Player
শ্রেণীর উত্তরাধিকারী । - নন সি ++ এন্ট্রি: নন-সি ++ জমা দেওয়ার জন্য বিভাগ ইন্টারফেসে একটি ইন্টারফেস নির্বাচন করুন ।
- বর্তমানে অ সি ++ ভাষা অনুমোদিত নয়: পাইথন 3, জাভা।
দ্বৈল
- প্রতিটি খেলোয়াড় একটি আনলোড লোড বন্দুক দিয়ে শুরু করে যা অসীম পরিমাণ গোলাবারুদ লোড করতে পারে।
- প্রতিটি পালা, প্লেয়াররা একই সাথে নিম্নলিখিত ক্রিয়াগুলির মধ্যে একটি থেকে চয়ন করবে:
0
- বন্দুকের মধ্যে 1 গোলাবারুদ লোড করুন।1
- প্রতিপক্ষকে গুলি চালানো; 1 টি বোঝা বারুজের দাম।2
- প্রতিপক্ষের কাছে প্লাজমা মরীচি ফায়ার করুন; 2 টি বোঝা গোলাবারুদ ব্যয়।-
- ধাতব usingাল ব্যবহার করে আগত বুলেটটি রক্ষা করুন।=
- থার্মাল ডিফল্টেক্টর ব্যবহার করে ইনকামিং প্লাজমা বিম রক্ষা করুন।
- যদি উভয় খেলোয়াড়ই 100 তম বারের পরে বেঁচে থাকে তবে তারা দুজনেই মৃত্যুর কাছে চলে যায়, যার ফলশ্রুতি ড্র হয় ।
একজন খেলোয়াড় হারায় বন্দুক দ্বন্দ্ব যদি তারা
- আগত বুলেটটি রক্ষার জন্য ধাতব ield াল ব্যবহার করেন নি ।
- কি না তাপ deflector ব্যবহার একটি ইনকামিং রক্তরস রক্ষার জন্য।
- পর্যাপ্ত গোলাবারুদ লোড না করে একটি বন্দুক নিক্ষেপ করুন, যাতে তাদের বন্দুকটি স্ব-বিস্ফোরিত হবে এবং মালিককে হত্যা করবে।
আদেশ সহকারে
ভবিষ্যত বন্দুক মালিকদের জন্য ম্যানুয়াল অনুসারে :
- একটি ধাতব ield াল আগত প্লাজমা মরীচি থেকে রক্ষা করতে পারে না । তেমনি, একটি তাপ ডিফল্টেক্টর আগত বুলেট থেকে রক্ষা করতে পারে না ।
- প্লাজমা রশ্মি বুলেটকে পরাশক্তি দেয় (কারণ প্রাক্তনটির জন্য আরও বেশি বোঝা বারুদ প্রয়োজন)। সুতরাং, যদি কোনও খেলোয়াড় প্রতিপক্ষের কাছে প্লাজমা মরীচি চালান, যে একই পালা গুলি চালায়, প্রতিপক্ষকে হত্যা করা হয়।
- উভয় খেলোয়াড় যদি একই পালা একে অপরের দিকে গুলি চালায় তবে বুলেটগুলি বাতিল হয়ে যায় এবং উভয় খেলোয়াড়ই বেঁচে থাকে। একইভাবে, উভয় খেলোয়াড় যদি একই পালা করে একে অপরকে প্লাজমা বিম চালায় তবে উভয় খেলোয়াড় বেঁচে থাকে।
এটি আরও লক্ষণীয় যে:
- আপনি হবে না একটি পালাক্রমে আপনার প্রতিপক্ষের এর কর্ম জানেন না হওয়া পর্যন্ত শেষ।
- প্লাজমা বিমগুলি অপসারণ এবং বুলেটগুলি shালানো আপনার প্রতিপক্ষের ক্ষতি করবে না ।
অতএব, প্রতিটি বারে মোট 25 টি বৈধ ক্রিয়া সংমিশ্রণ রয়েছে:
+-------------+---------------------------------------------+
| Outcome | P L A Y E R B |
| Table +--------+-----------------+------------------+
| for Players | Load | Bullet Plasma | Metal Thermal |
+---+---------+--------+--------+--------+--------+---------+
| P | Load | | B wins | B wins | | |
| L +---------+--------+--------+--------+--------+---------+
| A | Bullet | A wins | | B wins | | A wins |
| Y | +--------+--------+--------+--------+---------+
| E | Plasma | A wins | A wins | | A wins | |
| R +---------+--------+--------+--------+--------+---------+
| | Metal | | | B wins | | |
| | +--------+--------+--------+--------+---------+
| A | Thermal | | B wins | | | |
+---+---------+--------+--------+---------------------------+
Note: Blank cells indicate that both players survive to the next turn.
উদাহরণ দ্বৈত
এখানে একবার আমার এক বন্ধুর সাথে দ্বন্দ্ব ছিল। তারপরে, আমরা প্রোগ্রামিং সম্পর্কে বেশি কিছু জানতাম না, তাই আমরা হাতের অঙ্গভঙ্গি ব্যবহার করতাম এবং প্রতি সেকেন্ডে দুটি টার্নের গতিতে সংকেত দিয়েছিলাম। বাম থেকে ডানে, আমাদের ক্রিয়াগুলি ঘুরে দাঁড়িয়েছিল:
Me: 001-000-1201101001----2
Friend: 00-10-=1-==--0100-1---1
উপরের নিয়ম অনুসারে আমি হেরে গেছি। দেখেন কেন? এটি কারণ আমি যখন আমার কাছে 1 টি ভারী গুলি ছিল, তখন আমার বন্দুকটি বিস্ফোরিত হওয়ার ফলে আমি চূড়ান্ত প্লাজমা মরীচিটি নিক্ষেপ করেছি।
সি ++ প্লেয়ার
আপনি , একটি সভ্য ভবিষ্যত প্রোগ্রামার হিসাবে, বন্দুকগুলি সরাসরি পরিচালনা করতে পারবেন না। পরিবর্তে, আপনি Player
এমন একটি কোড দিয়েছেন যা অন্যের বিরুদ্ধে লড়াই করে। গিটহাব প্রকল্পে প্রকাশ্যে সি ++ শ্রেণীর উত্তরাধিকার সূত্রে আপনি নিজের শহুরে কিংবদন্তি লেখা শুরু করতে পারেন।
Player.hpp can be found in Tournament\Player.hpp
An example of a derived class can be found in Tournament\CustomPlayer.hpp
আপনার যা করা উচিত বা করতে পারেন
- আপনাকে অবশ্যই
Player
জনসাধারণের উত্তরাধিকারের মধ্য দিয়ে ক্লাসের উত্তরাধিকারী হওয়া উচিত এবং আপনার শ্রেণি চূড়ান্ত ঘোষণা করতে হবে। - আপনাকে অবশ্যই ওভাররাইড করতে হবে
Player::fight
, যাPlayer::Action
প্রত্যেকবার যখন ডাকা হয় তখন এটি একটি বৈধতা দেয় । - Allyচ্ছিকভাবে, ওভাররাইড করুন
Player::perceive
এবংPlayer::declared
আপনার প্রতিপক্ষের ক্রিয়াগুলিতে নজর রাখুন এবং আপনার বিজয়ের উপর নজর রাখুন। - বিকল্পভাবে, আরও জটিল গণনা সম্পাদনের জন্য আপনার উদ্ভূত শ্রেণিতে ব্যক্তিগত স্ট্যাটিক সদস্য এবং পদ্ধতিগুলি ব্যবহার করুন।
- Allyচ্ছিকভাবে, অন্যান্য সি ++ স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার করুন।
আপনি অবশ্যই করবেন না
- প্রদত্ত প্রতিপক্ষ শনাক্তকারীকে বাদ দিয়ে অন্য প্রতিপক্ষকে সনাক্ত করার জন্য আপনার কোনও সরাসরি পদ্ধতি ব্যবহার করা উচিত নয় , যা প্রতিটি টুর্নামেন্টের শুরুতে পরিবর্তিত হয়। কোনও টুর্নামেন্টের মধ্যেই কোনও খেলোয়াড় তাদের গেম-প্লেয়ের মাধ্যমে কে এই অনুমান করার অনুমতি পাবেন।
- ভার্চুয়াল হিসাবে ঘোষণা করা হয়নি এমন ক্লাসে আপনাকে এমন কোনও পদ্ধতি ওভাররাইড করতে হবে না
Player
। - আপনাকে অবশ্যই বিশ্বব্যাপী কোনও কিছুর ঘোষণা বা আরম্ভ করতে হবে না ।
- এর (বর্তমানে অযোগ্য) আত্মপ্রকাশ যেহেতু
BlackHatPlayer
, খেলোয়াড়ের হয় না এ উঁকি বা আপনার প্রতিপক্ষের রাজ্যের সংশোধন করার অনুমতি দেওয়া।
একটি উদাহরণ দ্বন্দ্ব
একটি বন্দুক দ্বন্দ্বের প্রক্রিয়াটি GunDuel
ক্লাস ব্যবহার করে সঞ্চালিত হয় । উদাহরণস্বরূপ লড়াইয়ের জন্য, দ্বন্দ্ব শুরু করারSource.cpp
বিভাগটি দেখুন ।
আমরা শোকেস GunClubPlayer
, HumanPlayer
এবং GunDuel
বর্গ, খুঁজে পাওয়া যেতে পারে যা Tournament\
সংগ্রহস্থলের নির্দেশিকা।
প্রতিটি দ্বন্দ্বের মধ্যে, GunClubPlayer
একটি বুলেট লোড করা হবে; এটি আগুন; পাখলান পুনরাবৃত্তি. প্রতি ঘুরে, HumanPlayer
আপনার প্রতিপক্ষের বিরুদ্ধে খেলতে আপনাকে অনুরোধ জানাবে। আপনার কীবোর্ড নিয়ন্ত্রণ অক্ষর 0
, 1
, 2
, -
এবং =
। উইন্ডোজে, আপনি HumanPlayer
আপনার জমাটি ডিবাগ করতে ব্যবহার করতে পারেন ।
দ্বন্দ্ব শুরু করা
এইভাবে আপনি কনসোলের মাধ্যমে আপনার প্লেয়ারটি ডিবাগ করতে পারেন।
// Source.cpp
// An example duel between a HumanPlayer and GunClubPlayer.
#include "HumanPlayer.hpp"
#include "GunClubPlayer.hpp"
#include "GunDuel.hpp"
int main()
{
// Total number of turns per duel.
size_t duelLength = 100;
// Player identifier 1: HumanPlayer.
HumanPlayer human(2);
// Player identifier 2: GunClubPlayer.
GunClubPlayer gunClub(1);
// Prepares a duel.
GunDuel duel(human, gunClub, duelLength);
// Start a duel.
duel.fight();
}
গেমস উদাহরণস্বরূপ
পালাক্রমে অন্তত আপনি যে পরিমাণ পরাজয়ের প্রয়োজন GunClubPlayer
3. এখানে বাজানো থেকে রিপ্লে এর 0-1
বিরুদ্ধে GunClubPlayer
। প্যারানথেসিসের সংখ্যাটি প্রতিটি প্লেয়ারের জন্য যখন মোড়টি শেষ হয় তখন বোঝা বারু সংখ্যা is
:: Turn 0
You [0/12/-=] >> [0] load ammo (1 ammo)
Opponent selects [0] load ammo (1 ammo)
:: Turn 1
You [0/12/-=] >> [-] defend using metal shield (1 ammo)
Opponent selects [1] fire a bullet (0 ammo)
:: Turn 2
You [0/12/-=] >> [1] fire a bullet (0 ammo)
Opponent selects [0] load ammo (1 ammo)
:: You won after 3 turns!
:: Replay
YOU 0-1
FOE 010
Press any key to continue . . .
GunClubPlayer
অবৈধ পদক্ষেপ না করে পরাজিত হওয়ার দ্রুততম পন্থা হ'ল ক্রম 0=
, কারণ তাপীয় ডিফল্টেক্টরের মাধ্যমে বুলেটটি অঙ্কুরিত হয়। রিপ্লে হয়
:: Turn 0
You [0/12/-=] >> [0] load ammo (1 ammo)
Opponent selects [0] load ammo (1 ammo)
:: Turn 1
You [0/12/-=] >> [=] defend using thermal deflector (1 ammo)
Opponent selects [1] fire a bullet (0 ammo)
:: You lost after 2 turns!
:: Replay
YOU 0=
FOE 01
Press any key to continue . . .
প্রতিযোগিতাটি
টুর্নামেন্টটি "সর্বশেষ প্লেয়ার স্ট্যান্ডিং" ফর্ম্যাটটিকে অনুসরণ করে। একটি টুর্নামেন্টে, সমস্ত বৈধ জমাগুলি (সহ GunClubPlayer
) একটি পুলে স্থাপন করা হয়। প্রতিটি জমা দেওয়ার জন্য একটি এলোমেলোভাবে এখনও অনন্য শনাক্তকারী দেওয়া হয়েছে যা পুরো টুর্নামেন্টের সময় একই থাকবে। প্রতিটি রাউন্ডের সময়:
- প্রতিটি জমা 0 পয়েন্ট দিয়ে শুরু হয় এবং অন্যান্য জমা দেওয়ার বিরুদ্ধে 100 টি দ্বৈত খেলবে।
- প্রতিটি বিজয়ী দ্বন্দ্ব 1 পয়েন্ট প্রদান করবে; অঙ্কন এবং হারানো 0 পয়েন্ট দেয়।
- রাউন্ড শেষে, ন্যূনতম পয়েন্ট সহ জমাগুলি টুর্নামেন্ট ছেড়ে যায়। টাই হওয়ার ক্ষেত্রে টুর্নামেন্টের শুরু থেকেই সর্বনিম্ন পয়েন্ট অর্জনের খেলোয়াড় চলে যাবেন।
- যদি একাধিক খেলোয়াড় বাকি থাকে তবে পরবর্তী রাউন্ডটি শুরু হবে।
- পয়েন্ট না না পরের বারে উপর বহন করে।
নমন
আপনি উত্তর প্রতি একজন খেলোয়াড় জমা দিতে হবে। আপনি কোনও খেলোয়াড়ের জন্য একাধিক ফাইল জমা দিতে পারেন, যতক্ষণ না তারা অন্য জমা দেওয়ার ক্ষেত্রে হস্তক্ষেপ না করে। জিনিসগুলি প্রবাহিত রাখতে, দয়া করে:
- আপনার প্রধান শিরোনাম ফাইলটির নাম হিসাবে দিন
<Custom>Player.hpp
, - আপনার অন্যান্য ফাইলগুলির নাম দিন যেমন
<Custom>Player*.*
, যেমনMyLittlePlayer.txt
আপনার শ্রেণীর নামMyLittlePlayer
, বাEmoPlayerHates.cpp
আপনার শ্রেণির নাম যদিEmoPlayer
। - যদি আপনার নামের সাথে
Shooter
বা অনুরূপ শব্দ রয়েছে যা এই টুর্নামেন্টের প্রসঙ্গে খাপ খায়, আপনাকেPlayer
শেষে যুক্ত করার দরকার নেই । যদি আপনি দৃ strongly়ভাবে মনে করেন যে আপনার জমা দেওয়ার নামটি প্রত্যয় ছাড়াই আরও ভাল কাজ করে তবে আপনারওPlayer
যোগ করার দরকার নেইPlayer
। - আপনার কোডটি উইন্ডোজ এর অধীনে সংকলিত এবং সংযুক্ত করা যেতে পারে তা নিশ্চিত করুন।
আপনি স্পষ্টতা জিজ্ঞাসা করতে বা ফাঁক ফাঁক করতে মন্তব্য করতে পারেন। আশা করি আপনি এই ভবিষ্যত গুন ডুয়েল উপভোগ করবেন এবং নতুন বছরের শুভ কামনা রাখবেন!
শোধন
- আপনি এলোমেলোভাবে আচরণ করার অনুমতি দেওয়া হয়।
- অবৈধ ক্রিয়াকলাপ (গুলি চালানো গুলি গুলি যথেষ্ট নয়) অনুমোদিত।
- কোনও খেলোয়াড় যদি একটি অবৈধ ইনপুট করে, তাদের বন্দুকটি সঙ্গে সঙ্গে বিস্ফোরিত হবে।
- আপনি উত্তর অধ্যয়ন করার অনুমতি দেওয়া হয়।
- তুমি স্পষ্টভাবে অনুমতি প্রতিটি টুর্নামেন্ট মধ্যে প্রতিদ্বন্দ্বী আচরণ রেকর্ড করতে।
- প্রতিটি রাউন্ডে, আপনি প্রতিটি প্রতিপক্ষের বিরুদ্ধে 100 টি দ্বৈত খেলবেন; তবে 100 টি দ্বৈতক্রমের ক্রমটি এলোমেলোভাবে করা হয়েছে - আপনি একই প্রতিদ্বন্দ্বীকে একপর্যায়ে 100 টি দ্বন্দ্বের সাথে লড়াই করার নিশ্চয়তা দিচ্ছেন না।
অতিরিক্ত সম্পদ
আপনি যদি সি ++ এন্ট্রি জমা দিতে চান তবে @ ফ্লোকার প্রদত্ত সি ++ উত্সটি জাভাতে অনুবাদ করেছেন ।
নন-সি ++ জমা দেওয়ার জন্য ইন্টারফেস
বর্তমানে গৃহীত: পাইথন 3, জাভা।
নীচের একটি নির্দিষ্টকরণ অনুসরণ করুন:
ইন্টারফেস স্পেসিফিকেশন 1: প্রস্থান কোড
আপনার জমা একবার পালা চলবে।
Expected Command Line Argument Format:
<opponent-id> <turn> <status> <ammo> <ammo-opponent> <history> <history-opponent>
Expected Return Code: The ASCII value of a valid action character.
'0' = 48, '1' = 49, '2' = 50, '-' = 45, '=' = 61
<opponent-id> is an integer in [0, N), where N is size of tournament.
<turn> is 0-based.
If duel is in progress, <status> is 3.
If duel is draw / won / lost, <status> is 0 / 1 / 2.
<history> and <history-opponent> are strings of actions, e.g. 002 0-=
If turn is 0, <history> and <history-opponent> are not provided.
You can ignore arguments you don't particularly need.
আপনি আপনার জমা PythonPlayer\
এবং JavaPlayer\
ডিরেক্টরিতে পরীক্ষা করতে পারেন ।
ইন্টারফেস স্পেসিফিকেশন 2: স্টিডিন / স্টডআউট
(এইচ ওয়াল্টারদের ক্রেডিট)
আপনার জমা প্রতি টুর্নামেন্টে একবার চলবে।
I / O কীভাবে করবেন তার বিষয়ে সমস্ত প্রবেশের একটি স্থির প্রয়োজন আছে, যেহেতু স্টিডিন এবং স্টাডআউট উভয়ই টুর্নামেন্টের ড্রাইভারের সাথে সংযুক্ত। এটি লঙ্ঘন একটি অচলাবস্থা হতে পারে। সমস্ত এন্ট্রি এই নির্ভুল অ্যালগরিদম অনুসরণ করতে হবে (ছদ্ম কোডে):
LOOP FOREVER
READ LINE INTO L
IF (LEFT(L,1) == 'I')
INITIALIZE ROUND
// i.e., set your/opponent ammo to 0, if tracking them
// Note: The entire line at this point is a unique id per opponent;
// optionally track this as well.
CONTINUE LOOP
ELSE IF (LEFT(L,1) == 'F')
WRITELN F // where F is your move
ELSE IF (LEFT(L,1) == 'P')
PROCESS MID(L,2,1) // optionally perceive your opponent's action.
END IF
CONTINUE LOOP
QUIT
এখানে, এফ অন্যতম 0
, 1
, 2
, -
, অথবা =
জন্য load / bullet / plasma / metal / thermal
। প্রসেস মানে হ'ল আপনার প্রতিপক্ষ যা করেছে তার প্রতিক্রিয়া জানাতে (যদি আপনি এটি করছেন তবে আপনার প্রতিপক্ষের গোলাবারুদ সন্ধান সহ) to মনে রাখবেন যে প্রতিপক্ষের ক্রিয়াটিও '0', '1', '2', '-', বা '=' এর মধ্যে একটি এবং দ্বিতীয় চরিত্রে রয়েছে।
ফাইনাল স্কোরবোর্ড
08:02 AM Tuesday, February 2, 2017 Coordinated Universal Time (UTC)
| Player | Language | Points | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
|:------------------ |:---------- | ------:| -----:| -----:| -----:| -----:| -----:| -----:| -----:| -----:| -----:| -----:| -----:| -----:| -----:| -----:| -----:| -----:|
| MontePlayer | C++ | 11413 | 1415 | 1326 | 1247 | 1106 | 1049 | 942 | 845 | 754 | 685 | 555 | 482 | 381 | 287 | 163 | 115 | 61 |
| CBetaPlayer | C++ | 7014 | 855 | 755 | 706 | 683 | 611 | 593 | 513 | 470 | 414 | 371 | 309 | 251 | 192 | 143 | 109 | 39 |
| StudiousPlayer | C++ | 10014 | 1324 | 1233 | 1125 | 1015 | 907 | 843 | 763 | 635 | 555 | 478 | 403 | 300 | 201 | 156 | 76 |
| FatedPlayer | C++ | 6222 | 745 | 683 | 621 | 655 | 605 | 508 | 494 | 456 | 395 | 317 | 241 | 197 | 167 | 138 |
| HanSoloPlayer | C++ | 5524 | 748 | 668 | 584 | 523 | 490 | 477 | 455 | 403 | 335 | 293 | 209 | 186 | 153 |
| SurvivorPlayer | C++ | 5384 | 769 | 790 | 667 | 574 | 465 | 402 | 354 | 338 | 294 | 290 | 256 | 185 |
| SpecificPlayer | C++ | 5316 | 845 | 752 | 669 | 559 | 488 | 427 | 387 | 386 | 340 | 263 | 200 |
| DeceptivePlayer | C++ | 4187 | 559 | 445 | 464 | 474 | 462 | 442 | 438 | 369 | 301 | 233 |
| NotSoPatientPlayer | C++ | 5105 | 931 | 832 | 742 | 626 | 515 | 469 | 352 | 357 | 281 |
| BarricadePlayer | C++ | 4171 | 661 | 677 | 614 | 567 | 527 | 415 | 378 | 332 |
| BotRobotPlayer | C++ | 3381 | 607 | 510 | 523 | 499 | 496 | 425 | 321 |
| SadisticShooter | C++ | 3826 | 905 | 780 | 686 | 590 | 475 | 390 |
| TurtlePlayer | C++ | 3047 | 754 | 722 | 608 | 539 | 424 |
| CamtoPlayer | C++ | 2308 | 725 | 641 | 537 | 405 |
| OpportunistPlayer | C++ | 1173 | 426 | 420 | 327 |
| GunClubPlayer | C++ | 888 | 500 | 388 |
| PlasmaPlayer | C++ | 399 | 399 |
অন্যথায় উল্লেখ না করা হলে টুর্নামেন্টটি 1 ফেব্রুয়ারী, 2017 অবধি চলবে ।
Player
বাস্তবায়নকে মঞ্জুরি দিতে পারবেন যা বর্তমান পালা গণনা করার জন্য অন্য প্রক্রিয়াটি প্রেরণ করে। এটি আপনার মেশিনে চালাতে খুশি যে কোনও ভাষায় লোককে অংশ নিতে দেয়।
Player::fight
" / "আপনি উত্তরাধিকারী হতে পারেন Player::perceive
" ... উভয় ক্ষেত্রেই শব্দটি ওভাররাইড হবে , উত্তরাধিকারী নয় ।
GunDuel.hpp
উভয়ই ব্যবহার করুনvalidA
validB
actionA