এই চ্যালেঞ্জটির ধারণাটি সহজ: কার্ড গেম ইউচারে খেলতে বট তৈরি করুন।
আপনারা যারা ইতিমধ্যে তাদের চেনেন না, তারা এই চ্যালেঞ্জের সাথে সম্পর্কিত বলে আমি এখানে ইউচারের কাছে বিধিগুলি লিখেছি ।
আমি অজগর বা অনুরূপ কিছু ব্যবহার করার পরামর্শ দিচ্ছি তবে একমাত্র আসল বাধা হ'ল এটি নিয়ামক কোডের সাথে সামঞ্জস্যপূর্ণ হতে হবে
ইনপুট:
আপনার ইউচার বট খেলা বা রাউন্ডের বর্তমান পর্বের উপর নির্ভর করে বিভিন্ন ধরণের ইনপুট পাবে। সাধারণভাবে বলতে গেলে, আপনি প্রথম লাইনে গেম পর্বটি পেয়ে যাবেন তার পরে কমা এবং আপনার দলের বেশ কয়েকটি পয়েন্ট এবং তারপরে নিম্নলিখিত লাইনে প্রাসঙ্গিক ডেটা পাবেন।
কালানুক্রমিকভাবে, আপনার বট নিম্নলিখিত ক্রমে ইনপুট পাবেন:
Ordering Trump:
js,ah,qc,ts,jc // the cards in your hand
2 // number of points your team has
0 // number of tricks your team has taken
ordering // the phase of the game
th // the turned up card
p,p // each previous player’s decision
Naming Trump:
js,ah,qc,ts,jc // the cards in your hand
2 // number of points your team has
0 // number of tricks your team has taken
naming // the phase of the game
p // each previous player’s decision
Dealer Discarding:
js,ah,qc,ts,jc // the cards in your hand
2 // number of points your team has
0 // number of tricks your team has taken
discard // the phase of the game
th // the card you will pick up
Going alone:
js,ah,qc,ts,jc // the cards in your hand
2 // number of points your team has
0 // number of tricks your team has taken
alone // the phase of the game
h // the trump suit
n,n // each previous player’s decision
Your turn:
js,ah,qc,ts,jc // the cards in your hand
2 // number of points your team has
0 // number of tricks your team has taken
turn // the phase of the game
h // the trump suit
td,8h,p // each previous player’s card
Trick data:
// the cards in your hand (none, since this happens at the end of a trick)
2 // number of points your team has
1 // number of tricks your team has taken
trick // the phase of the game
0 // the index of the following list that is your card
js,tc,4d,js // the cards played during the trick in the order they were played
আউটপুট:
আপনার ইউচার বটটিতে খেলা বা রাউন্ডের বর্তমান পর্বের উপর নির্ভর করে বিভিন্ন আউটপুট থাকবে।
Ordering Trump:
p //for pass
OR
o //for order up
Naming Trump:
p //for pass
OR ANY OF
c,s,h,d //the suit you want to name
Going alone:
n // no
OR
y // yes
Your turn:
js //the card you want to play
স্কোরিং:
আপনার বটের স্কোর এটি জেতে মোট গেমের সংখ্যা।
আপনার বটটি অন্য সমস্ত বটের বিরুদ্ধে খেলবে এবং এটি সর্বদা নিজের অনুলিপি সহ অংশীদার হবে।
মন্তব্য:
পাইথন 2.7 এ এখানে একটি সাধারণ টেম্পলেট রয়েছে:
#!/usr/bin/python2.7
import sys
data = sys.stdin.readlines()
hand = data[0].strip().split(',') # Hand as a list of strings
points = int(data[1]) # Number of points
tricks = int(data[2]) # Number of tricks
out = ''
if data[3] == 'ordering':
card = data[4] # The upturn card
prev = data[5].strip().split(',') # The previous player's decisions as a list
# Ordering logic
out = # 'o' or 'p'
elif data[3] == 'naming':
prev = data[4].strip().split(',') # The previous player's decisions as a list
# Naming logic
out = # 'p', 'h', 's', 'c', or 'd'
elif data[3] == 'discard':
card = data[4] # The card you'll take
# Discarding logic
out = # The card you want to discard
elif data[3] == 'alone':
trump = data[4] # The trump suit
prev = data[5].strip().split(',') # The previous player's decisions as a list
# Alone logic
out = # 'y' for yes, 'n' for no
elif data[3] == 'turn':
trump = data[4] # The trump suit
prev = data[5].strip().split(',')
# Turn logic
out = # The card you want to play
elif data[3] == 'trick':
trump = data[5]
cards = data[6].strip().split(',')
my_card = cards[int(data[4])]
# Data logic
print(out)
সর্বদা 4 টি মোট প্রতিক্রিয়া থাকবে। যদি কেউ একা হয়ে যায়, তবে তাদের অংশীদারের সাড়া তাদের পালাটিতে "পি" হবে।
অপ্রয়োজনীয় ইনপুটটির পরিমাণ কমিয়ে দেওয়ার চেষ্টা করেছি, তাই অতিরিক্ত স্পষ্ট হয়ে উঠতে:
2A। ডিলার / লিডার এবং আপনার পার্টনার যে কার্ডটি খেলেন সে সম্পর্কিত আপনার অবস্থান উভয়ই পূর্ববর্তী ফলাফলগুলির সংখ্যা দ্বারা নির্ধারণ করা যেতে পারে। আপনার এবং আপনার সঙ্গীর মধ্যে 1 জন খেলোয়াড় রয়েছে। উদাহরণস্বরূপ, আপনি যদি আপনার পালাটির শেষ লাইন হিসাবে "td, 8h, p" পান, আপনি দেখতে পাচ্ছেন যে আপনার সঙ্গী একটি 8 ঘন্টা খেলেছে, এবং অন্য দলে এমন খেলোয়াড় রয়েছে যা একা চলেছে।
আপনি যদি কৌতূহলী হন তবে চুক্তিটি প্রচলিত উপায়ে করা হয় (2 এবং 3 টি কার্ডের দুটি রাউন্ডের বিকল্প প্যাকেটগুলিতে) তবে এটি আপনার বটের সাথে সত্যিই প্রাসঙ্গিক নয়, তাই ...
যদি দ্বিতীয় খেলোয়াড় ট্রাম্প পর্বে অর্ডার করার সিদ্ধান্ত নেন, তবে সেই পর্বটি অব্যাহত থাকবে, তবে তাদের ফলাফলগুলি বেশ উপেক্ষা করা হবে। অন্য কথায়, যে প্রথমে অর্ডার দেয় সে অন্য কোনও আউটপুট নির্বিশেষে নেমার্স দলে থাকে।
নিম্নলিখিত বিভিন্ন খেলা পর্যায়ের জন্য ডিফল্ট নীচে রয়েছে। যদি আপনি এই রাউন্ডের জন্য কোনও বৈধ প্রতিক্রিয়া আউটপুট না করেন তবে আপনার প্রতিক্রিয়াটি নীচের অংশে পরিবর্তিত হবে।
অর্ডার ট্রাম্প: পি
নামকরণ ট্রাম্প: পি
বাতিল করা: (আপনার হাতে প্রথম কার্ড)
একা যাওয়া: এন
আপনার পালা: (আপনার হাতে প্রথম আইনী কার্ড)
আপনার পরীক্ষার উদ্দেশ্যে নিয়ামক কোড এখানে ।
6A। লক্ষ্য করুন আপনি দুটি বা 4 টি বটের নাম দিয়ে যেতে পারেন, আপনি যদি এটি 4 টি বট দেন তবে তারা এলোমেলোভাবে অংশীদার হয়ে যায় এবং 2 এর সাথে তারা নিজের অনুলিপিগুলিতে অংশীদার হয়।
6b। আপনার নিয়ন্ত্রক কোডের মতো একই ডিরেক্টরিতে একটি 'বটস' ডিরেক্টরি প্রয়োজন এবং আপনার বট কোডটি বট ডিরেক্টরিতে থাকা দরকার।
যাঁরা তাদের বটটি স্মরণে রাখতে চান যে কোন কার্ডগুলি খেলেছে, তাদের জন্য আপনাকে "কৌশল" পর্বের সময় সুযোগ দেওয়া হবে যা আপনার বটকে বলে যে কোন কার্ডগুলি খেলানো হয়েছিল। আপনি বট ডিরেক্টরিতে কোনও ফাইল লিখতে পারবেন যতক্ষণ না সেই ফাইলটি 1 কেবি ছাড়িয়ে যায় না।
স্কোরবোর্ড:
Old Stager: 2
Marius: 1
Random 8020: 0