পাইথ, 73 বাইট
eo_S+*-5l@\AN}SPMJ+NZSM.:+\AT5+-4l{eMJlM.gPkJ-sM*=T+`M}2Tc4"JQKA""hscd"=Zc
এটা বেশ ভয়ানক। কার্ডগুলি পার্সিং, মানগুলি বাছাই করা, ... সবকিছুতে এতগুলি অক্ষর লাগে। তবে পদ্ধতিটি আকর্ষণীয়।
এটি অনলাইনে ব্যবহার করে দেখুন: বিক্ষোভ বা পরীক্ষার স্যুট
ব্যাখ্যা:
আমি সমস্ত 52 টি কার্ড তৈরি করি, ইনপুটটির চারটি কার্ড সরিয়ে ফেলি, প্রতিটি কার্ডের জন্য একটি স্কোর তৈরি করি (হাতের স্কোর) এবং সর্বোচ্চ স্কোর দিয়ে কার্ডটি মুদ্রণ করি।
স্কোরটি কিছুটা বিজোড়। আমি যদি দুটি সম্পূর্ণ ভিন্ন হাতের স্কোরটি তুলনা করি তবে এটি ভুল বিজয়ীকে বেছে নিতে পারে। যেমন একটি স্ট্রেইট 4 টেক্কা মারবে। তবে এটি কাজ করে, যদি প্রথম 4 টি কার্ড দুটি হাতে একই থাকে। এবং আমার গণিত স্কোর আসলে কোনও মান নয়, তবে মানগুলির তালিকা:
- জি: প্রথম আমি র্যাংক অনুসারে 5 টি কার্ডকে গ্রুপ করব এবং দৈর্ঘ্য গ্রহণ করব:
5h 5d 6c 5s Jd
->
[3, 1, 1]
- এফ: তারপরে আমি এই তালিকায় 4 টি বিয়োগের বিবিধ সংখ্যক স্যুট সংযোজন করব।
Flush
->
3
সংযুক্ত হয়ে যায়, not flush
->
2/1/0
সংযুক্ত হয়ে যায়।
- এস: অন্য নম্বর যুক্ত করুন।
0
যদি এটি একটি সোজা নয়, 4
যদি তা সোজা হয় A2345
, অথবা 5
যদি এটি একটি উচ্চতর সোজা হয়।
4-7 সংখ্যার এই তালিকাটি ক্রমহ্রাসমান ক্রমে সাজানো হয় এবং সর্বাধিক মানযুক্ত তালিকাটি বাছাই করা হয়।
কেন এই কাজ করে? এখানে আপনি সব ধরণের জন্য সম্ভাব্য কনফিগারেশন দেখতে পাবেন। সংখ্যার পাশের চিঠিটি আপনাকে বলবে যে এই নিয়মটি কোন নিয়মের সাহায্যে উত্পন্ন হয়েছিল।
- সোজা ফ্লাশ:
[5S, 3F, 1G, 1G, 1G, 1G, 1G]
বা[4S, 3F, 1G, 1G, 1G, 1G, 1G]
- একরকম চারটে:
[4G, 1G, 0F, 0S]
- পুরো বাড়ি:
[3G, 2G, 1F, 0S]
বা[3G, 2G, 0F, 0S]
- ফ্লাশ:
[3F, 1G, 1G, 1G, 1G, 1G, 0S]
- স্ট্রেইট:
[5S, 2F, 1G, 1G, 1G, 1G, 1G]
, [5S, 1F, 1G, 1G, 1G, 1G, 1G]
, [5S, 1G, 1G, 1G, 1G, 1G, 0F]
, [4S, 2F, 1G, 1G, 1G, 1G, 1G]
, [4S, 1F, 1G, 1G, 1G, 1G, 1G]
,[4S, 1G, 1G, 1G, 1G, 1G, 0F]
- তিন প্রকারে:
[3G, 1G, 1G, 1F, 0S]
,[3G, 1G, 1G, 0F, 0S]
- দুই যুগল:
[2G, 2G, 2F, 1G, 0S]
, [2G, 2G, 1F, 1G, 0S]
,[2G, 2G, 1G, 0F, 0S]
- এক জোড়া:
[2G, 2F, 1G, 1G, 1G, 0S]
, [2G, 1G, 1G, 1G, 1F, 0S]
,[2G, 1G, 1G, 1G, 0F, 0S]
- উচ্চ কার্ড:
[2F, 1G, 1G, 1G, 1G, 1G, 0S]
, [1F, 1G, 1G, 1G, 1G, 1G, 0S]
,[1G, 1G, 1G, 1G, 1G, 0S, 0F]
পাইথ উপাদান অনুসারে তালিকার তুলনা করে। সুতরাং এটি স্পষ্টতই যে স্ট্রেট ফ্লাশ সবসময় একধরনের চারটিকে পরাজিত করবে। বেশিরভাগ সাধারণ পোকার নিয়মগুলি এই তালিকাগুলির সাথে সুস্পষ্ট। কারও কারও মনে পরস্পর বিরোধী মনে হয়।
- একটি স্ট্রেইট চার ধরণের বা পুরো বাড়ির বিরুদ্ধে জিতবে: কোনও সমস্যা নয়। আপনার যদি নদী কার্ড সহ চার ধরণের / পূর্ণ বাড়ির সুযোগ পাওয়ার সুযোগ থাকে তবে আপনি একইসাথে সরাসরি পৌঁছাতে পারবেন না (যেহেতু আপনার হাতে ইতিমধ্যে 2 বা 3 টি আলাদা স্যুট রয়েছে)।
- একটি স্ট্রেস ফ্লাশের বিরুদ্ধে জিতবে। আপনি যদি নদী কার্ডের সাহায্যে কোনও ফ্লাশ এবং কোনও সোজা পৌঁছে দিতে পারেন তবে আপনিও একটি সরাসরি ফ্লাশে পৌঁছাতে পারেন। স্ট্রেইট ফ্লাশের স্ট্রেইট এবং ফ্লাশ উভয়ের চেয়ে ভাল স্কোর রয়েছে।
- একজোড়া
[2G, 2F, 1G, 1G, 1G, 0S]
জিতবে কিছু দুজনের হাতের বিপরীতে। এছাড়াও কোন সমস্যা নেই। নদীর কার্ডের সাথে যদি আপনি দুটি জোড়া পান তবে নদীর আগে আপনার কমপক্ষে একটি জোড়া ছিল। তবে এর অর্থ, আপনি তিন ধরণের উন্নতি করতে পারেন, এটি আরও ভাল। সুতরাং একটি দুটি জুড়ি আসলে উত্তর হবে না।
- উচ্চ কার্ডটি
[2F, 1G, 1G, 1G, 1G, 1G, 0S]
এক জোড়া হাতের বিপক্ষে জিতবে। এটি যদি আপনি পৌঁছানোর সেরা স্কোর হয় তবে নদীর আগে আপনার কাছে একটি স্যুটের 3 টি কার্ড এবং আলাদা স্যুটের একটি কার্ড থাকবে। তবে তারপরে আপনি এই দুটি স্যুটটির একটির সাথে এবং ইতিমধ্যে উপস্থিত একটি মান সহ কার্ডটি চয়ন করতে পারেন এবং আপনি স্কোরটি শেষ করবেন [2F, 2G, ...]
, এটি আরও ভাল।
সুতরাং এটি সমাধানের সঠিক ধরণের পছন্দ করে। তবে আমি কীভাবে সেরা একজোড়া (৪ টি সম্ভাবনার মধ্যে) পাব, আমি কীভাবে সেরা সোজা চয়ন করব, ...? কারণ দুটি পৃথক এক-জুড়ি সমাধানে একই স্কোর থাকতে পারে।
এটা সহজ. পাইথ স্থিতিশীল বাছাইয়ের গ্যারান্টি দেয় (সর্বোচ্চ গ্রহণের সময়)। সুতরাং আমি ক্রমে কার্ডগুলি উত্পন্ন করি 2h 2s 2c 2d 3h 3s ... Ad
। সুতরাং সর্বোচ্চ মান সহ কার্ডটি স্বয়ংক্রিয়ভাবে সর্বোচ্চ।
বাস্তবায়ন বিশদ
=Zc
ইনপুট স্ট্রিংকে বিভক্ত করে এবং কার্ডের তালিকা সংরক্ষণ করে Z
।
=T+`M}2Tc4"JQKA"
র্যাঙ্কগুলির তালিকা তৈরি করে ['2', ..., '10', 'J', 'Q', 'K', 'A']
এবং এগুলিকে সংরক্ষণ করে T
। -sM*T..."hscd"Z
স্যুটগুলির সাথে র্যাঙ্কের প্রতিটি সংমিশ্রণ উত্পন্ন করে এবং এর কার্ডগুলি সরিয়ে দেয় Z
।
o...
এই বাকী কার্ডগুলি এর দ্বারা অর্ডার করুন: lM.gPkJ
র্যাঙ্কগুলির গোষ্ঠীর +-4l{eMJlM
দৈর্ঘ্য , 4 - দৈর্ঘ্য (স্যুট) +*-5l@\AN}SPMJ+NZSM.:+\AT5
সংযোজন করে, স্যুটের উপর নির্ভর করে 0/4/5 সংযোজন করে ("এ" + টি এর দৈর্ঘ্যের 5 টি প্রতিটি স্তর তৈরি করে, হাতটি পরীক্ষা করুন কিনা এর মধ্যে একটি (হাতের বাছাই এবং সমস্ত উপসর্গ বাছাই করা প্রয়োজন), কার্ডে "এ" এর সংখ্যা - 5 দিয়ে গুণ করুন), _S
তালিকাটি ক্রমশ হ্রাস করে orts
e
সর্বাধিক বাছুন এবং মুদ্রণ।