পোকার হাত নির্ধারণ করা হচ্ছে


19

আমি একটি মূল্যায়নের অংশ হিসাবে একটি টেক্সাস হোল্ড'এেম গেমটি তৈরি করে চলেছি এবং আমি কীভাবে the টি উপলব্ধ কার্ড পরীক্ষা করতে পারি এবং হাতগুলি বিদ্যমান কিনা তা নির্ধারণ করতে পারি।

একমাত্র সম্ভাব্য পদ্ধতিটি যা আমি ভাবতে পারি তা হল কার্ডগুলি সংখ্যাগতভাবে বাছাই করা, তারপরে 5 টি কার্ডের প্রতিটি গ্রুপকে পরীক্ষা করে দেখুন এবং তারা প্রতিটি একক হাতের তালিকার সাথে মেলে কিনা তা পরীক্ষা করুন। এটি দীর্ঘ সময় নিতে সময় লাগবে কেবল জুড়ি নির্ধারণের জন্য, কারণ মামলাটি অপ্রাসঙ্গিক।

কার্ডগুলি প্রতিটি স্ট্রিং, একটি সংখ্যা / এ / জে / কিউ / কে এবং একটি স্যুট (char)3(যা কিছুটা স্পিডের প্রতীক করে) are

হ্যান্ড-অ্যানালাইসিস সিস্টেম তৈরি করতে কারও কাছে কি আমি কোনও পরামর্শ, সূত্র বা লিঙ্কগুলি ব্যবহার করতে পারি?

একে অপরের বিরুদ্ধে হাত স্থান দেওয়ার বিষয়ে চিন্তা করবেন না, এটি মাছের আলাদা কেতলি।


1
কেবল এটি দেখানো হয়েছে তবে এর প্রসঙ্গে ভেক্টর ট্যাগটি লিনিয়ার বীজগণিত সম্পর্কে। ধারক নয়।
সিডার

@ সিদার ভবিষ্যতে ট্যাগগুলি সম্পাদনা করতে নির্দ্বিধায় মনে করেন যদি তারা বিশ্বাস করেন যে তারা ফিট করে না। আপনি যদি ট্যাগগুলির উপরে ঘোরাফেরা করেন এবং "ট্যাগ সম্পাদনা করুন" বিকল্পটি পপ আপ হয় (অন্তত আমার জন্য?), এবং আপনি প্রশ্ন সম্পাদনা না করে কেবল ট্যাগগুলি সম্পাদনা করতে পারেন।
MichaelHouse

@ বাইট 66 আমার ভাবনার এই অদ্ভুত অভ্যাসটি আমি নিশ্চিত না যে আমি ঠিক আছি কিনা তাই আমি এটি একটি মন্তব্যকে নিষ্ক্রিয়ভাবে করি ... এই কারণেই আমি পোস্টটি সম্পাদনা করিনি। সম্ভবত আমি পোস্টে কিছু মিস করেছি, তাই আমি তার প্রতিক্রিয়ার জন্য অপেক্ষা করছিলাম।
সিদার

এখানে একটি দুর্দান্ত নিবন্ধও রয়েছে
2007

1
আমি কিছুদিন আগে মজা করার জন্য জাভাতে একটি বাস্তবায়ন করেছি আপনি এটি এখানে পেতে পারেন: কোড review.stackexchange.com/questions/10973/… । আপনি যদি পোকারহানড.জভাতে দেখেন তবে আপনি প্রতিটি ধরণের হাতের পরীক্ষা করার জন্য পদ্ধতিগুলি দেখতে পাবেন (যেমন - ফুলহাউস)। কার্ডগুলি বাছাই করা থাকলে কেবল তারা কাজ করে।
বাগি

উত্তর:


20

আমি মনে করি আপনি প্রতিটি র‌্যাঙ্ক এবং স্যুটের হাতে কতগুলি কার্ড রয়েছে তার কয়েকটি টেবিল তৈরি করে আপনি বেশিরভাগ জুজু হ্যান্ডগুলি সন্ধান করতে পারেন।

অন্য কথায়, আপনার হাতে সেই র‌্যাঙ্কের কার্ডের গণনার জন্য একটি অ্যারে ম্যাপিং কার্ডের র‌্যাঙ্কগুলি (সংখ্যা এবং এ / জে / কিউ / কে) তৈরি করুন। খেলোয়াড়ের যদি জুড়ি বা তিন-এক ধরণের থাকে তবে এই অ্যারেতে 2 বা 3 এর সমান একটি উপাদান থাকবে ইত্যাদি। তাদের একটি পূর্ণ ঘর আছে যদি একটি উপাদান থাকে যা 2 এবং অন্যটি 3, এবং একটি সরল থাকে যদি এই অ্যারেতে 1 এর সমান টানা পাঁচটি উপাদান থাকে।

তেমনিভাবে আপনি প্রতিটি স্যুটের কার্ডের গণনার অনুরূপ অ্যারে তৈরি করতে পারেন এবং ফ্লাশগুলি সনাক্ত করতে এটি ব্যবহার করতে পারেন।

আপনি যখন কোনও নির্দিষ্ট হাতের উপস্থিতি শনাক্ত করেন তবে ইউআইতে হাইলাইট করার জন্য বা আপনার যা যা করার দরকার তা হ'ল পিছনে গিয়ে হাতে নির্দিষ্ট কার্ডগুলি সন্ধান করা বেশ সহজ।

সিউডোকোডে:

int countByRank[13] = { 0 };        // Initialize counter to zero for each rank
for (cards in hand)
    countByRank[card.rank] += 1;    // Increment counter for this card's rank
if (countByRank.find(2))
    // There's a pair
else if (countByRank.find(3))
    // There's a three-of-a-kind
// etc...

17

এটি কিছুটা জটিল কারণ অনেকগুলি সংমিশ্রণ রয়েছে। ভাগ্যক্রমে আপনার কাছে এমন একটি প্রসেসর রয়েছে যা খুব অল্প সময়ে প্রচুর সংমিশ্রণগুলি পরীক্ষা করতে পারে।

বিভিন্ন ধরণের হাত সনাক্ত করার জন্য আপনার কয়েকটি আলাদা কৌশল প্রয়োজন। ভাগ্যক্রমে, বিভিন্ন ধরণের কয়েকটি কৌশল ওভারল্যাপ করতে পারে। আমি হাতের ক্রম অনুসারে সন্ধান করব।

  1. সরাসরি ফ্লাশ
  2. একরকম চারটে
  3. পুরো ঘর
  4. ঘনিষ্ঠরূপে
  5. সোজা
  6. তিন প্রকারে
  7. দুটি জুটি
  8. এক জোড়া
  9. হাই কার্ড

2, 3, 6, 7,8 সব সহজ কাউন্টিং হয়। এস টু কিং এর কার্ডের তালিকা ব্যবহার করে প্রতিটি অতিরিক্ত কার্ডের জন্য বর্ধিতকরণের জন্য তালিকায় প্রতিটি মানের সংখ্যাটি কেবল রাখুন। তারপরে 4s এর জন্য তালিকাটি পরীক্ষা করুন, যদি 4s না থাকে, আপনার কাছে কোনও ধরণের 4 নেই। এটি 3s জন্য পরীক্ষা করুন, 3s না থাকলে, আপনার কাছে কোনও ধরণের 3 নেই। আপনার যদি 3 থাকে তবে একটি 2 (সম্পূর্ণ বাড়ির ইঙ্গিত) পরীক্ষা করে দেখুন। এবং আরও ...

এর জন্য 1, 5আপনি একই তালিকাটি ব্যবহার করতে পারেন এবং সিকোয়েন্সগুলি সন্ধান করতে পারেন যেখানে 5 টি কার্ডের ক্রমের জন্য তালিকায় সমস্ত কার্ডের এক বা একাধিক প্রবেশ রয়েছে। যদি তাদেরও একই মামলা থাকে তবে এটি সরাসরি ush

4একই তালিকা সেটআপ করতে পারেন তবে এবার আপনি স্যুটটি গণনা করছেন। 5 বা তার বেশি সংখ্যার সন্ধান করুন।

শেষ অবধি, 9আপনার কাছে সর্বোচ্চ কার্ড রয়েছে, যা উপরের আপনার তালিকার একটি তালিকা থেকে সর্বশেষ সর্বোচ্চ মানটি দেখার সাধারণ বিষয় হওয়া উচিত।

আপনি ক্রম অনুসন্ধান করলে আপনি কোনও মিল খুঁজে পেয়েছেন। যদিও আপনি ব্যবহারকারীকে সেই সমস্ত তথ্য সরবরাহ করতে চান তবে অনুসন্ধান চালিয়ে যাওয়া এবং সমস্ত মিল খুঁজে পাওয়া তুচ্ছ হবে।


মূলত, আপনি বালতি পূরণ করছেন। তারপর সংমিশ্রণের জন্য বালতিগুলি পরীক্ষা করা। বর্ণনা করা:

এখানে চিত্র বর্ণনা লিখুন

প্রতিটি কার্ডের জন্য বালতি সহ একটি অ্যারে দিয়ে শুরু করে কার্ডগুলির মাধ্যমে পুনরাবৃত্তি করুন এবং প্রতিটি কার্ডের উদাহরণ গণনা করুন। তারপরে আপনি সহজেই অ্যারের পুনরাবৃত্তি করতে পারেন এবং নির্দিষ্ট সংমিশ্রণের জন্য পরীক্ষা করতে পারেন। এই উদাহরণে, এটি স্পষ্ট যে 4 ধরণের রয়েছে কারণ একটি বালতিতে 4 টি আইটেম রয়েছে।


6

আমি এই অ্যালগরিদমে একবার umpুকেছি। এটি হাত নির্ধারণের জন্য প্রধান সংখ্যাগুলিকে গুন করে এবং খুব আকর্ষণীয় পড়া। ক্যাকটাস কেভের পোকার হ্যান্ড মূল্যায়নকারী


1
এটি একটি আকর্ষণীয়, তবে আমি নিশ্চিত যে আপনি এটি সমস্ত পড়েছেন। সেই অ্যালগরিদম 5 টি কার্ডের জন্য । আপনি 7 টি কার্ড সম্পর্কিত গুগল অনুসন্ধানে সন্ধান করতে পারেন, যেমন লেখক বলেছেন যে তাদের কাছে 7 টি কার্ডের জন্য একটি অ্যালগরিদম রয়েছে তবে তারা ভাগ করে নিচ্ছে না। পৃষ্ঠার শীর্ষের ধূসর পাঠ্যটি দেখুন। সুতরাং আমি নিশ্চিত না যে that কার্ড কার্ডের জন্য সেই অ্যালগরিদম কতটা কার্যকর।
মাইকেলহাউস

1
যেহেতু কেবলমাত্র 21 টি 5 কার্ডের হাত রয়েছে যা 7 কার্ডের হাত থেকে তৈরি করা যেতে পারে তার একটি বিকল্প হ'ল প্রতিটি কার্ডে 5 টি কার্ড মূল্যায়নকারী ব্যবহার করা এবং সেরাটি বেছে নেওয়া।
আদম

@ বাইট 56 আপনি ঠিক বলেছেন, আমি মনে করি আমি এটি 7 টি কার্ডে ব্যবহার করেছিলাম তবে আগে থেকে সেরা 5 কার্ডটি নির্ধারণ করতে হয়েছিল, কোন ধরণের কার্যকারিতা হ্রাস পেয়েছে।
পিটারওয়াজ

এই উত্তরের লিঙ্কটি তখন থেকে পচা হয়েছে, এবং স্প্যামার দ্বারা ডোমেনটি তুলেছে। আমি মূল পৃষ্ঠার একটি সংরক্ষণাগারটিতে লিঙ্কটি পুনঃনির্দেশিত করেছি, তবে এই উত্তরটিকে আরও দৃ make়তর করে তুলতে উত্তরটির শিরোনামের মধ্যে প্রস্তাবিত অ্যালগরিদমের সংক্ষিপ্তসার অন্তর্ভুক্ত করার জন্য উত্তরটি সম্পাদনা করা আদর্শ হবে।
ডিএমগ্রিগরি

2

ইতিমধ্যে এই প্রশ্নটি যে উত্তম উত্তর পেয়েছে তা পরিপূরক করার জন্য, আমি মনে করেছি যে একবার হাতের তুলনা করার জন্য সবচেয়ে সহজ উপায়ের সাথে বেসিক শ্রেণিবদ্ধকরণের কৌশলটি একবারে দেওয়া কার্যকর হবে। প্রথমত, আপনি তাদের শ্রেণীর সাথে হাত ট্যাগ করতে চাইবেন , যেমন অসংখ্য উত্তর বলেছে - আপনার বেশিরভাগ তুলনা 'হ্যান্ড এক্স এর চেয়ে ভাল হাতের চেয়ে ভাল?' তারপরে কেবল দুই হাতের ক্লাসের তুলনা করে এবং কোন ক্লাসটি ভাল seeing বিশ্রামের জন্য, আপনাকে আসলে কার্ড-বাই-কার্ড ভিত্তিতে তুলনা করতে হবে এবং দেখা যাচ্ছে যে শ্রেণিবিন্যাসে আরও কিছুটা কাজ এটিকে সহজ করে তুলবে।

বেসলাইন কেস হিসাবে, উভয় হাত যেখানে 'হাই কার্ড' হাত রয়েছে সেই পরিস্থিতিটি বিবেচনা করুন; এই ক্ষেত্রে, আপনি প্রথমে দুটি সর্বোচ্চ কার্ডের তুলনা করতে চান, তারপরে (যদি তারা মিলছে) পরবর্তী দুটি কার্ড ইত্যাদি you আপনি যদি ধরে নেন যে প্রতিটি ইনপুট হাতটি সর্বোচ্চ থেকে নিম্নতম কার্ডে সাজানো থাকে, তবে এই পদ্ধতির কোডের দিকে যেতে হবে যা দেখে মনে হচ্ছে এই:

int CompareHandsOfSameClass(Hand h1, Hand h2) {
  for ( int i = 0; i < 5; i++ ) {
    if ( h1[i].rank > h2[i].rank ) {
      return -1;
    } else if ( h1[i].rank < h2[i].rank ) {
      return 1;
    }
  }
  return 0;
}

এখন, সুসংবাদ: এটি প্রমাণিত হয়েছে যে এই অভিধানিক ক্রমটি যথাযথভাবে টুইট করা হয়েছে, যে কোনও একটিতে দুটি হাতের তুলনা করার জন্য কাজ করেক্লাসগুলির, যতক্ষণ না তাদের ক্লাস একই থাকে। উদাহরণস্বরূপ, যেহেতু জোড়া তুলনা করার পদ্ধতিটি প্রথমে জোড়াগুলি তুলনা করা হয়, তারপরে অন্য তিনটি কার্ড, আপনি জোড়টিকে প্রথমে রাখার জন্য আপনার হাতটিকে সাজিয়ে তুলতে পারেন (বা জোড়ার একটি কার্ডও আগে!) এবং এই একই তুলনাটি চালাতে পারেন। (সুতরাং, উদাহরণস্বরূপ, A9772 এর মতো হাতটি 77A92 বা আরও ভাল হিসাবে 7A927 হিসাবে সংরক্ষণ করা হবে; হাত A9972 9A729 হিসাবে সংরক্ষণ করা হবে এবং উপরের কোডটির সাথে তুলনা করে আপনি 9 এর বিপরীতে 7 লিখবেন এবং এটি খুঁজে পাবেন) এ 9972 জিতেছে)। দুটি জোড়ার একটি হাত দুটি জোড়ার উপরের সাথে প্রথমে, তারপরে নীচের দিকে, তারপরে 'কিকার' (তাই, যেমন, A9977 97A97 হিসাবে সংরক্ষণ করবে) দিয়ে সংরক্ষণ করা হবে; তিনটি ধরণের তিনটি প্রথমে তিনটির একটি কার্ডের সাথে সংরক্ষণ করা হবে, তারপরে কিকরগুলি, তারপরে অন্যান্য কার্ডগুলি (যেমন, A7772 হবে 7A277); একটি পূর্ণ ঘর তার তিনটির একটির সাথে এবং তার পরে তার দুটির মধ্যে একটি দিয়ে সংরক্ষণ করা হবে (যেমন, 99777 79779 হিসাবে সংরক্ষণ করা হবে); এবং স্ট্রেটস এবং ফ্লাশ উভয়ই 'ডায়রেক্ট লেসিকোগ্রাফিকাল' ক্রমে সংরক্ষণ করা যেতে পারে যেহেতু তারা উভয়ই তুলনামূলকভাবে উচ্চ-কার্ডের হাতের মতো। এটি একটি সরল বাহ্যিক তুলনামূলক ফাংশনে নিয়ে যায় যা ইতিমধ্যে প্রদত্ত ফাংশনটির সাথে সমস্ত শ্রেণীর হাতের জন্য কাজ করে:

// Compare two hands, returning -1/0/+1 as hand 1 is less than, equal to,
// or greater than hand 2. Note that this function assumes the hands have
// already been classified and sorted!
int CompareHands(Hand h1, Hand h2) {
  if ( h1.handClass > h2.handClass ) {
    return -1;
  } else if ( h1.handClass < h2.handClass ) {
    return 1;
  } else {
    return CompareHandsOfSameClass(h1, h2);
  }
}

আশা করি এটি কিছুটা কাজে আসবে!


1

উপযুক্ত কার্ড উপস্থাপনা এবং বিট-টুইডলিং ব্যবহার করে কিছু সমান্তরালতা সম্ভব। উদাহরণস্বরূপ, এই জাভা কোডটি একটি পূর্ণসংখ্যা ফেরত 7-কার্ড হার্ডকে মূল্যায়ন করে যা দুটি হাতের সাথে তুলনার জন্য ব্যবহার করা যেতে পারে। এটি আরও বেশি ব্যবহারকারী-বান্ধব উপায়ে হাতের ধরণের প্রতিবেদন করার জন্য অভিযোজিত হতে পারে। মূল ধারণাগুলি ক্যাকটাস কেভের পূর্বের উত্তরে উল্লেখ করা পৃষ্ঠা থেকে এসেছে।

দক্ষতা এবং কোডের স্পষ্টতার পরিবর্তে আপনি যদি বিভিন্ন ভাষায় হাতের নামকরণের জন্য কেবল সম্ভাব্য বাস্তবায়নে আগ্রহী হন তবে আপনি কোডগলফ.এসই-তে পোকার হ্যান্ড চ্যালেঞ্জ নামটিও দেখতে পারেন।


1

প্রথমত, আপনাকে সমস্ত কার্ডের র‌্যাঙ্ক এবং স্যুট জানতে হবে; তুচ্ছ কিন্তু প্রয়োজনীয়

তারপরে, এই 7 টি কার্ডের মাধ্যমে স্পিন করুন এবং দুটি হিস্টোগ্রাম তৈরি করুন; এক র‌্যাঙ্ক অনুসারে (১৩ টি সূচী সহ একটি অ্যারে ব্যবহার করে, সমস্ত শূন্যতে শুরু করা হয় এবং 1 দ্বারা বর্ধিত হয় এবং যদি সেই র‌্যাঙ্কযুক্ত হাতে কোনও কার্ড পাওয়া যায়) এবং একটি মামলা অনুসারে (র‌্যাঙ্কের মতো একইভাবে নির্মিত চারটি উপাদানের অ্যারে ব্যবহার করে) । এগুলি লিনিয়ার অপারেশন এবং আপনি কেবলমাত্র একটি সেট ট্র্যাভারসালের জন্য প্রতিটি কার্ডের জন্য উভয় ক্রিয়াকলাপ করতে পারেন।

তারপরে নীচের হাতগুলির কোনওটিই কেবল মানদণ্ডের সাথে মেলে বালতিগুলির জন্য প্রতিটি হিস্টগ্রাম পরীক্ষা করে এবং / অথবা একটি সহজ ফলো-আপ পরীক্ষা করে নির্ধারণ করতে পারেন:

  • জুড়ি: এক র‌্যাঙ্ক বালতিটির কি ঠিক ২ এর মান থাকে, অন্য কোনও বালতিতে 1 এর উপরে মূল্য নেই এবং ফ্লাশ নেই?
  • দুটি জুড়ি: দুই বা ততোধিক র‌্যাঙ্কের বালতিগুলির কি ঠিক 2 এর মান থাকে, কোনও বালতিতে 2 এর বেশি এবং ফ্লাশ নেই? (স্পষ্টতই তিনটি জুটি একটি হাত নয়, তবে এটির জন্য সাতটি কার্ড দেওয়া সম্ভবপর; সবচেয়ে শক্তিশালী দুটি জুটি খেলোয়াড়ের হাত)
  • টোক: অন্য একটি বালতিতে 1 এর চেয়ে বেশি মূল্য নেই এবং ফ্লাশ নেই এমন একটি বালতির মান ঠিক 3 টির কি?
  • সোজা: টানা পাঁচটি র‌্যাঙ্কের বালতিগুলির কোনও ফ্লাশ ছাড়াই 1 বা তার বেশি মান হয়? (ভুলে যাবেন না যে এসেসগুলি উচ্চ এবং নিম্ন উভয়ই রয়েছে; আপনি 14 টি উপাদানের একটি র‌্যাঙ্কের হিস্টোগ্রাম ব্যবহার করতে পারেন এবং আপনি চাইলে দুটি বালতিতে এসেস গণনা করতে পারেন)
  • ফ্লাশ: কোনও স্যুট বালতিতে 5 বা ততোধিক কার্ড রয়েছে? (যদি তা হয় তবে সেই স্যুটের কার্ডগুলির জন্য হাত স্ক্যান করুন এবং শীর্ষ ৫ টি চয়ন করুন)
  • ফুল হাউস: যে কোনও একটি র‌্যাঙ্ক বালতির 3 টির মান আছে এবং অন্য কোনও বালতিতে 2 এর মান রয়েছে (7 কার্ড সহ, আপনি একটি পিনোচেল ডেকের সাথে না খেললে একটি পূর্ণ ঘর দিয়ে ফ্লাশ করা অসম্ভব)
  • এক ধরণের চারটি: কোনও একটি র‌্যাঙ্কের কি 4 এর মান থাকে? (অন্য কোনও সমন্বয় সম্ভব হবে না)
  • স্ট্রেট ফ্লাশ: হিস্টোগ্রামগুলি দ্বারা নির্দেশিত কোনও সোজা এবং ফ্লাশ উভয়ই রয়েছে ? যদি তা হয় তবে নির্দেশিত ফ্লাশ স্যুটটিতে কমপক্ষে একটি কার্ড রয়েছে যা প্রতিটি সূত্রের সাথে সরাসরি চিহ্নিত করা যায়? (এটি সম্ভবত সবচেয়ে কম্পিউটেশনাল ব্যয়বহুল, তবে সেখানে কতটা ধারাবাহিক র‌্যাঙ্ক রয়েছে তা গণনা করা সহজ হওয়া উচিত এবং আপনাকে কেবল একবার 5 টি সংলগ্ন র‌্যাঙ্কের জন্য একবার স্ক্যান করতে হবে, 6 বারের জন্য দু'বার এবং 7 বারের জন্য তিনবার)

আপনি বেশ প্রাকৃতিকভাবে এই কয়েকটি চেক একত্রিত করতে পারেন:

  • ফ্লাশ আছে কি?
  • কোন সোজা আছে?
    • যদি উভয় থাকে তবে এটি কি সোজা ফ্লাশ?
    • যদি এটি একটি সোজা ফ্লাশ হয় তবে এটির কি এস এবং কিং উভয়ই থাকতে পারে?
  • চার ধরণের কি আছে?
  • কত ধরণের তিনটি ধরণের আছে? (দুই, এটি পুরো বাড়ি। এক, জোড়া চেক করুন)
  • কত জোড়া আছে? (দুই বা ততোধিকের সাথে, এটি দুটি জুটি one একটির সাথে যদি তিনটিও থাকে তবে এটি একটি পুরো বাড়ি, অন্যথায় এটি একটি জোড়া)
  • উপরের কিছুই (হাই কার্ড) নয়।

মূলত, যদি এইগুলির উত্তরগুলি কোনও হাত দেয়, ফলস্বরূপ "হাতের শক্তি" মানটি হাতের শক্তিতে নির্ধারণ করুন, যদি মানটি ইতিমধ্যে বেশি না হয়। উদাহরণস্বরূপ, আপনার যদি একটি পুরো বাড়ি, 9 টির শক্তি,, তবে আপনার কাছে তিন রকমের, শক্তি 4, এবং একটি জোড়, শক্তি 2ও রয়েছে।

কয়েকটি শর্টকাট এবং দ্রুত আউট আছে, কিন্তু সামগ্রিক এটা সত্যিই না যে শুধু দৌড়াবে সব চেক করতে ব্যয়বহুল।


0

আপনি একটি সাধারণ পুনরাবৃত্তি পদ্ধতির সাহায্যে তুলনামূলকভাবে সহজে জুজু হাতগুলি করতে পারেন।

প্রতিটি কার্ডের জন্য, একই মুখের সাথে আরও এক বা দুজন বা তিনজন আছে কিনা তা পরীক্ষা করে দেখুন বা একধরণের তিন / চারটি পরীক্ষা করতে পারেন।

পূর্ণ ঘরগুলি একই রকম। অথবা আপনি যদি এমন এক জোড়া এবং তিনটি একই মুখ নয় যে তিনটি দেখতে পান তবে পাওয়া যায় এমন একটি পুরো বাড়িটিকে পতাকাঙ্কিত করুন।

ফ্লাশগুলির জন্য, একই স্যুটের পাঁচটি আছে কিনা তা দেখতে প্রতিটি স্যুটটি পরীক্ষা করে দেখুন।

অকার্যকর হলেও সোজা চেক করা সহজ। প্রতিটি কার্ডের জন্য, একটি আরও আছে কিনা তা পরীক্ষা করে দেখুন এবং পাঁচটি টানা কার্ড পাওয়া না যাওয়া পর্যন্ত পুনরাবৃত্তি করুন।

রয়েল ফ্লাশ এবং স্ট্রেইট ফ্লাশগুলি স্ট্রাইটের মতো একইভাবে পাওয়া যায়। রয়্যাল ফ্লাশগুলির কিছু অতিরিক্ত শর্ত রয়েছে যা নিম্ন মূল্যবান কার্ডগুলিকে উপেক্ষা করা যায়।

হ্যাঁ, এই পদ্ধতির অকার্যকর তবে বেশিরভাগ জুজু গেমের ক্ষেত্রে এটি অপ্রাসঙ্গিক। আপনি প্রতি অর্ধ মিনিট বা তার পরে বেশ কয়েকটি ক্ষুদ্র খেলোয়াড় পরীক্ষা করছেন, প্রতি সেকেন্ডে কয়েক হাজার হাত পরীক্ষা করছেন না।

আরও ভাল পদ্ধতি বিদ্যমান তবে কোডে আরও বেশি সময় লাগতে পারে এবং অ্যালগরিদমের চালাকি এবং দক্ষতা ছাড়াও খেলোয়াড়ের দৃষ্টিভঙ্গি থেকে আরও ভাল গেমের জন্য সময় / অর্থ ব্যয় করার আপনার আরও সম্ভবত গুরুত্বপূর্ণ বিষয় রয়েছে have


0

জোড়, ডাবল জোড়া, টোকস, পূর্ণ বাড়ি, পোকার ইত্যাদি সন্ধান করার একটি সহজ উপায় নিম্নলিখিতটি:

একে একে নেস্টেড লুপে প্রতিটি কার্ড একে অপরের সাথে তুলনা করুন:

int matches=0;
for (int i=0;i<5;i++)
   for (int j=0;j<5;j++)
      if (i!=j && cardvalue(card[j])==cardvalue(card[i])) matches++;

ম্যাচগুলি নিম্নলিখিতটি ধরে রাখবে:
2 জুটির জন্য 2 এবং 2 জুটির
জন্য
6 টোকের
জন্য 8 টোক 8
একটি পোকারের জন্য ফুলহাউস 12 এর জন্য 8

এটির গতি বাড়ানোর জন্য: 5-পর্যন্ত জে-লুপ চালানোর দরকার নেই, এটি আই -1 এ চালানো যেতে পারে। তারপরে "i! = j" তুলনাটি সরানো যায়, ম্যাচের মানগুলি পরে অর্ধেক হয়ে যায় (1 = জোড়, 2 = 2 জোড়া ইত্যাদি)

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.