আমি অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ে অত্যন্ত নতুন, এবং একটি সাধারণ কার্ড গেমটি (যেমনটি প্রথাগত বলে মনে হচ্ছে!) করে অজগরটিতে শেখা শুরু করার চেষ্টা করছি। আমি নিম্নলিখিত উদাহরণটি করেছি যা ভাল কাজ করে, এবং PlayingCard()
ক্লাসের উদাহরণ তৈরি করার জন্য ক্লাসের একাধিক উদাহরণ তৈরি করার বিষয়ে শিখিয়েছি Deck()
:
class PlayingCard(object):
def __init__(self, suit, val):
self.suit = suit
self.value = val
def print_card(self):
print("{} of {}".format(self.value, self.suit))
class Deck(object):
def __init__(self):
self.playingcards = []
self.build()
def build(self):
for s in ["Spades", "Clubs", "Diamonds", "Hearts"]:
for v in range(1,14):
self.playingcards.append(PlayingCard(s,v))
deck = Deck()
আমি আরও জটিল কার্ড দিয়ে এখনই কিছু তৈরি করতে চাই, কেবলমাত্র একটি স্ট্যান্ডার্ড 52 ডেক নয় (যা সুন্দরভাবে বৃদ্ধি করার মান রয়েছে)। আমার মনে যে ডেকটি মনে আছে তা হ'ল একচেটিয়া কার্ড খেলা:
এখানে 3 টি মৌলিক ধরণের কার্ড রয়েছে - অ্যাকশন কার্ড, প্রপার্টি কার্ড এবং অর্থ কার্ড। অ্যাকশন কার্ডগুলি বিভিন্ন ক্রিয়া সম্পাদন করে, সম্পত্তি কার্ডগুলি বিভিন্ন রঙের সেটগুলির সাথে সম্পর্কিত এবং মানি কার্ডগুলিতে বিভিন্ন মান থাকতে পারে। অতিরিক্ত হিসাবে, সম্পত্তি কার্ডগুলি "ওয়াইল্ডকার্ড" হতে পারে এবং দুটি সেটগুলির মধ্যে একটির অংশ হিসাবে ব্যবহার করা যেতে পারে। শেষ অবধি, প্রতিটি কার্ডেরও সমান অর্থের মান থাকে (প্রতিটি কার্ডের উপরের কোণায় নির্দেশিত)। ভাড়া অ্যাকশন কার্ডগুলিতে কার্ডটি কেবল কার্ডটিতে বর্ণিত রঙের সম্পত্তিতে প্রয়োগ করা যেতে পারে।
আমার প্রশ্নটি কেবলমাত্র এই জাতীয় পরিস্থিতিটি কীভাবে পরিচালনা করবেন এবং ক্লাস ভিত্তিক পাইথন প্রোগ্রামে এই বিভিন্ন কার্ডগুলি অন্তর্ভুক্ত করার একটি দুর্দান্ত উপায় কী হবে? আমার কি আমার একক PlayingCard()
শ্রেণি রাখা উচিত , এবং কেবলমাত্র অনেকগুলি ইনপুট থাকে, যেমন PlayingCard(type="PROPERTY", value="3M")
। অথবা এটা যেমন পৃথক ক্লাস তৈরি করতে ভাল হবে ActionPlayingCard()
, PropertyPlayingCard()
, ইত্যাদি? নাকি এর চেয়ে ভাল উপায় আছে? আমি যেমন বলেছি, আমি এখানে আমার শেখার শুরুতে আছি, এবং কীভাবে উচ্চ স্তরের নকশার ক্ষেত্রে এই ধরণের পরিস্থিতিগুলি সংগঠিত করব।
অনেক ধন্যবাদ.