আমার স্কোপা হাতের স্কোর কী?


14

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

চ্যালেঞ্জ: স্কোপা রাউন্ডে পয়েন্ট সংখ্যাটি চিহ্নিত করুন, প্লেয়ারটিকে ইনপুট হিসাবে রাউন্ডের সময় ধরে নেওয়া কার্ডগুলি দেওয়া।

স্কোপা ডেকে 40 টি কার্ড রয়েছে। আপনি যদি কোনও আন্তর্জাতিক ডেক ব্যবহার করছেন তবে আপনি 8, 9, এবং 10 সেকেন্ড সরিয়ে প্রতিটি স্যুটে এ, 2,3,4,5,6,7, কিউ, জে, কে রেখে চলেছেন। 1 দুটি খেলোয়াড় বা অংশীদারিত্ব রয়েছে এবং প্রতি রাউন্ডের পরে সমস্ত কার্ড দুটি বা একজন খেলোয়াড়ের মধ্যে একটি বা অন্য দ্বারা ক্যাপচার হয়ে যায়। স্কোর নিম্নলিখিত হিসাবে গণনা করা হয় ( এখানে আরও তথ্য ):

  • সর্বাধিক কার্ড প্লেয়ার 1 পয়েন্ট স্কোর।
  • সর্বাধিক হীরার প্লেয়ার (বা ইতালিয়ান ডেক ব্যবহার করা হলে মুদ্রা) স্কোর 1 পয়েন্ট।
  • হিটের 7 টি (বা কয়েন) সমেত প্লেয়ার , সেটেটে বেলো বা সুন্দর সাত হিসাবে পরিচিত , স্কোর 1 পয়েন্ট।
  • সর্বাধিক প্রিমিয়ার স্কোর 1 পয়েন্ট প্লেয়ার । একজন খেলোয়াড়ের প্রিমিয়ার স্কোর হ'ল খেলোয়াড় প্রতিটি স্যুটে ধরা পড়া সর্বোচ্চ-মূল্য কার্ডের স্কোরগুলির যোগফল (নীচের টেবিলটি দেখুন)। আপনার যদি প্রতিটি স্যুটে কমপক্ষে একটি কার্ড না থাকে তবে আপনি স্কোর আপনার প্রতিপক্ষের স্কোরকে ছাড়িয়ে গেলেও আপনি ডিফল্টরূপে হারাবেন। অত্যন্ত দুর্লভ ক্ষেত্রে যে কোনও খেলোয়াড়ের প্রতি স্যুটে কমপক্ষে একটি কার্ড থাকে না, প্লেয়ারের উচ্চতম প্রিমিয়ারের সাথে প্লেয়ার । 2

প্রিমিয়ার স্কোরের সারণী

| Rank  | Value |
| ----- | ----- |
| 7     | 21    |
| 6     | 18    |
| A     | 16    |
| 5     | 15    |
| 4     | 14    |
| 3     | 13    |
| 2     | 12    |
| Q,J,K | 10    |

সুতরাং কোনও খেলোয়াড় একটি রাউন্ডে সর্বাধিক 4 পয়েন্ট করতে পারে। 3 যদি কোনও টাই থাকে তবে যা কার্ড, হীরা বা প্রিমিয়ার পক্ষে সম্ভব তবে কেউই বিন্দু স্কোর করে না।

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

চ্যালেঞ্জ বিধি

ইনপুট

আপনার কোডটি স্কোপা রাউন্ডের সময় একক প্লেয়ারের ক্যাপচার করা কার্ডগুলি ইনপুট হিসাবে নেওয়া উচিত।

ইনপুট অবশ্যই স্ট্রিং ফর্ম্যাটে থাকতে হবে, যার মধ্যে একটি অক্ষর প্রতিটি কার্ডের র‌্যাঙ্ক এবং একটি অক্ষর তার স্যুট উপস্থাপন করে। এটিসরাসরি ইনপুট হিসাবে প্রিমিয়ার স্কোরগুলিপাস করার সম্ভাব্য লুফোলটি সরিয়ে দেয়। প্রিমিয়ার স্কোরগুলিতেকার্ড র‌্যাঙ্কের রূপান্তরঅবশ্যই প্রোগ্রামে করা উচিত। তবে আপনি ফাঁকা বা কমা, স্ট্রিংগুলির একটি অ্যারে বা অন্য কোনও ফর্ম্যাট দ্বারা পৃথক একক স্ট্রিং ব্যবহার করতে পারেন choose উদাহরণস্বরূপ, আপনি যেমন সঙ্কেতাক্ষরে লিখা পদমর্যাদার করা চয়ন করেন তাহলে76A5432QJKএবং স্যুট পরিহিতDCHSআপনি যেমন ইনপুট ব্যবহার করতে পারে['7D', '6H', 'QD', 'JS'] বা'7D,6H,QD,JS'

আউটপুট

0 থেকে 4 এর পূর্ণসংখ্যা খেলোয়াড়ের স্কোরকে উপস্থাপন করে।

জয়লাভ

বাইট জিতে স্বল্পতম উত্তর!

পরীক্ষার মামলা

["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "7C", "6C", "4C", "3C", "2C", "7H", "4H", "2H", "5S", "3S", "QS", "JS", "KS"]

20 কার্ডের জন্য 4 : 1 পয়েন্ট,> 5 টি হীরার জন্য 1 পয়েন্ট, হীরার 7 টির জন্য 1 পয়েন্ট এবং প্রিমিয়ারে 78 78 স্কোরের জন্য 1 পয়েন্ট (7,7,7,5 যেখানে প্রতিপক্ষের 7,6,5 রয়েছে, 64 এর জন্য কে)

["3D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "QC", "4H", "7S"]

স্কোর 0 : <= 20 কার্ড, <= 5 হীরা, 7 টি হীরার নয় এবং প্রিমিয়ারে কেবল স্কোর 69 (7,7,4,3 যেখানে প্রতিপক্ষের 7,7,6, কে 70 এর জন্য রয়েছে)

[7D", "6D", "AD", "5D", "4D", "3D", "2D", "7C", "6C", "AC", "5C", "4C", "3C", "2C", "7H", "6H", "AH", "5H", "4H", "3H", "2H"]

20 কার্ডের জন্য 3 : 1 পয়েন্ট, 5 টি হীরার জন্য 1 পয়েন্ট, হীরার 7 টির জন্য 1 পয়েন্ট। Primiera 63 (7,7,7) হতে হবে এবং প্রতিপক্ষের শুধুমাত্র স্কোর করতে পারেন 51 (7 কিউ কিউ কিউ) কিন্তু এটি ডিফল্ট দ্বারা বিন্দু হারায় যেহেতু এই হাত কোন কোদাল হয়েছে।

["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH", "QS"]

স্কোর 3 : <= 20 কার্ড,> 5 হীরার জন্য 1 পয়েন্ট, হীরার 7 টির জন্য 1 পয়েন্ট। Primiera শুধুমাত্র স্কোর 51 (7 কিউ কিউ কিউ) এবং প্রতিপক্ষের স্কোর করতে পারেন 63 (7,7,7) কিন্তু এই হাত ধিক্কার জানাই যেহেতু প্রতিপক্ষের হাতে কোন হিরে হয়েছে primiera ডিফল্টরূপে বিন্দু।

["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "7C", "7H"]

স্কোর 3 : <= 20 কার্ড,> 5 হীরার জন্য 1 পয়েন্ট, হীরার 7 টির জন্য 1 পয়েন্ট। যদিও এই হাতে কোনও কোদাল নেই, তবুও এটি 63৩ থেকে 57 57 (,,7,7 বনাম ,,6,,) এর স্কোর দিয়ে প্রিমিয়ার জিতেছে কারণ প্রতিপক্ষের হাতে কোনও হীরা নেই।

["7D", "6D", "AD", "5D", "4D", "3D", "2D", "QD", "JD", "KD", "QC", "QH"]

স্কোর 2 : <= 20 কার্ড,> 5 হীরার জন্য 1 পয়েন্ট, হীরার 7 টির জন্য 1 পয়েন্ট। এই হাতে কোনও কোদাল নেই, এবং প্রতিপক্ষের হাতে কোনও হীরা নেই। প্রতিপক্ষ 63৩ থেকে ৪১ (,,7,7 বনাম,, কিউ, কিউ) এর স্কোর দিয়ে প্রিমিয়ার জিতল।

[] (খালি অ্যারে)

স্কোর 0


1: কমপক্ষে আমাদের পরিবারে, জ্যাক স্কোপাতে রানিকে ছাড়িয়ে গেছে তবে এটি স্কোর করার জন্য অপ্রাসঙ্গিক।

2: আমি শৈশবকাল থেকেই এই গেমটি খেলছি এবং এর আগে কখনও এমনটি ঘটেনি! তবে আপনার কোডটি সেই কেসটি হ্যান্ডেল করতে সক্ষম হতে পারে!

3: রাউন্ড চলাকালীন "সুইপ" এর জন্য বোনাস পয়েন্ট রয়েছে যা আমি এই চ্যালেঞ্জের উদ্দেশ্যে অগ্রাহ্য করছি।


1
প্রতিটি পদমর্যাদাকে কি আলাদা স্বতন্ত্র চরিত্রের দ্বারা প্রতিনিধিত্ব করতে হবে?
ডুরকনবব

@ ডুরকনব অগত্যা নয়, তবে আমি যে সমাধানটি নিয়ে কাজ করছি তা অন্তত আমি পরীক্ষার সমস্ত ক্ষেত্রে সঠিকভাবে পেতে প্রতিটি র‌্যাঙ্কের জন্য একটি অনন্য চরিত্রের প্রয়োজন বলে মনে করেছি।
qdread

@ গ্রিমি ভাল ক্যাচ ধন্যবাদ
qdread

উত্তর:


6

রুবি, 156 153 বাইট

->a{b='';([a[40],a.scan(/.d/)[5],a=~/;d/,'dchs'.gsub(/./){l=a.scan /.(?=#$&)/;l.size<10&&b+=(';865432'.tr(l*'','')+?0)[0];l.max}.sum>b.sum||p]-[p]).size}

এটি অনলাইন চেষ্টা করুন!

->a{
b='';                # stores primiera of other player
([                   # this array stores all checks
a[40],               # check if >20 cards (>40 characters)
a.scan(/.d/)[5],     # check if >5 diamonds
a=~/;d/,             # check if 7 of diamonds
'dchs'.gsub(/./){    # for each suit, build a string with...
l=a.scan /.(?=#$&)/; # find all cards with this suit
l.size<10&&          # if there are less than 10, the other person has some, so
b+=                  # append to their score string the following:
(';865432'           #   start with all the cards
.tr(l*'','')         #   remove the ones we have
+?0)                 #   add back the JQK at the end
[0];                 #   take the highest
l.max}               # return the highest card that we have
.sum                 # take the sum of the codepoints
>b.sum               # check if it's greater than the other player's sum
||p                  # if not, evaluate to nil
]-[p])               # remove all nils
.size}               # count how many are left

এটি ;865432000প্রতিনিধিত্ব করতে ব্যবহার করে76A5432QJK যথাক্রমে এবং স্যুটগুলি ছোট হাতের অক্ষরে থাকে। (অক্ষরের পছন্দটি হ'ল কারণ প্রতিটি থেকে 38 টি বিয়োগ করা তাদের প্রিমিয়ার মান দেয় তবে আমরা কেবল কখনও তা করতে পারি না কারণ কেবলমাত্র আপেক্ষিক পার্থক্যের বিষয়টি গুরুত্বপূর্ণ matters)

উভয় খেলোয়াড়ের মামলা অনুপস্থিত কিনা তা আমরা খতিয়ে দেখি না কারণ এটি অপ্রয়োজনীয় - যেহেতু সমস্ত কার্ড 38 টি হিসাবে গণনা করা হয় তবে তাদের আসল মান হিসাবে যদি কেউ স্যুট অনুপস্থিত থাকে তবে তারা সর্বোচ্চ স্কোর পেতে পারে (21 + 38) * 3 = 177, যা (10 + 38) * 3 + 21 + 38 = 203 এর চেয়ে কম, অন্য খেলোয়াড় সবচেয়ে কম স্কোর পেতে পারে। আমরা দুজন খেলোয়াড়ের একটি অসম ননজারো সংখ্যক স্যুট মিস করতে পারি না, কারণ কোনও খেলোয়াড় কেবল 0, 1, বা 2 স্যুট অনুপস্থিত হতে পারে এবং যদি কেউ 2 স্যুট অনুপস্থিত থাকে তবে তাদের কাছে অন্য 2 স্যুটের সমস্ত কার্ড রয়েছে।


4

আর, 320 298 265 238 229 224 211 209 179 বাইট

এটি বেশিরভাগ ফাংশনের আকারে @ ডিজাইমএল এর কারণে একটি সমাধান।

এটি অনলাইন চেষ্টা করুন!

function(h,S=sum,A=apply,l=99+c(11,8,5:2,6,!1:3)%o%!!1:4)S(S(p<-outer(c(7:2,'A','K','J','Q'),c('D','C','H','S'),paste0)%in%h)>20,S(p[1:10])>5,p[1],S(A(l*p,2,max)-A(l*!p,2,max))>0)

নীচে আমার পুরানো মধ্যম চেষ্টা 209 বাইট জন্য সেরা।

সম্পাদনা করুন: কিছু ক্রিয়াকলাপ aliasing করে গল্ফ ডাউন, তারপরে স্যুটগুলি পরীক্ষা করার পরিবর্তে স্কোরকে ধ্রুবক যুক্ত করার জন্য ডোরকনব এর ধারণা গ্রহণ করে।

পরবর্তী সম্পাদনা: কিছু অপ্রয়োজনীয়তা থেকে মুক্তি পেয়ে জিয়াস্পে থেকে কিছু উন্নতি সংহত করে

পরবর্তী সম্পাদনা: -2 বাইট বাই ডিগ্রোমেলকে ধন্যবাদ

আমি এতে ভয়াবহ, সুতরাং আমি নিশ্চিত কেউ যদি সময়োপযোগী যত্ন নেয় তবে এ বিষয়ে কেউ উন্নতি করতে পারবেন। আমার মতো মনে হয় sapplyএবং functionএটি অনেক দীর্ঘ এবং এগুলি থেকে মুক্তি পেতে পারে তবে কীভাবে তা আমি বুঝতে পারি না। ইনপুটগুলি আদর্শ স্বরলিপিটিতে দ্বি-চরিত্রের স্ট্রিং।

function(h,s=sum,l=c(11,8,5:2,6,!1:3)+99)s(length(h)>20,s(grepl('D',h))>5,'7D'%in%h,s(sapply(c('D','C','H','S'),function(i,r=c(7:2,'A','K','J','Q')%in%substr(h[grep(i,h)],1,1))s(l[r][1],-l[!r][1],na.rm=T)))>0)

1
আপনি আর গল্ফ চ্যাটরুমে সহায়তা পেতে সক্ষম হতে পারেন , ডিগএমএল এমনকি একজন সহকর্মী ইতালিয়ানও!
জিউসেপ

1
কিছু পরামর্শ তবে আপনি যদি একটি নতুন লাইন (যা আর-এ বাইট বলে মনে হয়) কেবল একটি আধা-কোলন অদলবদল করতে পারেন, এটি একটি নিখরচায় অদলবদ যা আপনার উত্তরটিকে আরও পঠনযোগ্য করে তোলে। এছাড়াও, এটি চেষ্টা করুন অনলাইনে যা আপনার যদি না থাকে তবে একটি অনলাইন কোড রানার check প্রয়োজন হয় না, তবে আবার, ব্যবহার করা ভাল। এটি
সিজিসিসি

1
253 বাইট - আমি পুরোপুরি নিশ্চিত নই যে এটি কার্যকর হবে, যেহেতু আমি বেশিরভাগ গল্ফগুলির সেট করতে চেষ্টা করছিলাম তবে বিনা দ্বিধায় পরীক্ষা করে আমাকে জানাতে পারি।
জিউসেপে



2

জাভাস্ক্রিপ্ট (ES6),  171  163 বাইট

কার্ডের সেট হিসাবে তাদের স্ট্যান্ডার্ড উপস্থাপনা ব্যবহার করে ইনপুট নেয়।

c=>(c.size>20)+((g=o=>[..."CHSD"].map(s=>[..."JQK2345A67"].map((v,i)=>(S=o^c.has(v+s))?m="111345679"[++n,i]||12:0,n=m=0)|(n?0:T=1,t-=m),T=t=4)|t*T)(1)>g``)+S+(n>5)

এটি অনলাইন চেষ্টা করুন!

মন্তব্য

c =>                                // c = set of cards
  (c.size > 20) + (                 // +1 point if we have more than 20 cards
    ( g = o =>                      // g is a function taking the flag o (for 'opponent')
      [..."CHSD"].map(s =>          // for each suit s, ending with diamonds:
        [..."JQK2345A67"]           //   for each rank v at position i, sorted from
        .map((v, i) =>              //   lowest to highest primiera score:
          (S = o ^ c.has(v + s)) ?  //     if the player owns this card, set S to 1 and:
            m = "111345679"[++n, i] //       increment n; update m to the score of this
                || 12               //       rank (we use the official score - 9)
          :                         //     else:
            0,                      //       do nothing
          n = m = 0                 //     start with n = m = 0
        ) |                         //   end of inner map()
        ( n ? 0 : T = 1,            //   if n = 0, set T to 1
          t -= m ),                 //   subtract m from t
        T = t = 4                   //   start with T = t = 4
      ) | t * T                     // end of outer map(); yield t * T
    )(1) > g``                      // +1 point if g(1) is greater than g(0)
  ) +                               // (we test this way because the scores are negative)
  S +                               // +1 point if we own the 7 of diamonds
  (n > 5)                           // +1 point if we own more than 5 diamonds

2

05 এ বি 1 ই , 41 বাইট

39ÝsK‚εg9y@Oy0å•Dδ¿m(/d•₆вy.γT÷}è€àO)}`›O

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস পরীক্ষা করুন

স্যুট DCHSযথাক্রমে প্রতিনিধিত্ব করে 0123। স্থানগুলি 7A65432KJQযথাক্রমে প্রতিনিধিত্ব করে0123456789 । এগুলি স্ট্রিং হিসাবে নেওয়া হয়, চ্যালেঞ্জের দ্বারা প্রয়োজনীয় হিসাবে পূর্ণসংখ্যার হিসাবে নয় (তবে তারপরে 05AB1E যে কোনওভাবে প্রয়োজন হলে এগুলি পূর্ণসংখ্যায় রূপান্তর করে)।

অন্যান্য সমাধানগুলির মতো, আমরা অনুপস্থিত মামলাগুলির চেক অপ্রয়োজনীয় করতে প্রতিটি প্রিমিয়ার স্কোরের জন্য একটি বৃহত ধ্রুবক (14) যুক্ত করি।

39Ý                      # range 0..39 (the list of all cards in the game)
   sK                    # remove all elements that appear in the input
      ‚                  # pair with the input: [player's hand, opponent's hand]

ε                     }  # map each hand to a list of its 4 subscores:
 g                       #  first subscore: length (number of cards)
 9y@O                    #  second subscore: count elements <= 9 (diamonds)
 y0å                     #  third subscore: is 0 (representing 7D) in the list
            y.γT÷}       #  group the hand by suit
 •Dδ¿m(/d•₆в      è      #  map each rank to its primiera score
                   ۈ    #  maximum primiera score in each suit
                     O   #  fourth subscore: the sum of those

`›                       # for each subscore: is player's > opponent's?
  O                      # sum
```

2

এমএস এসকিউএল সার্ভার 2017 , 525 বাইট

CREATE FUNCTION f(@ NVARCHAR(MAX))RETURNS TABLE RETURN
SELECT q/21+IIF(d>6,2,IIF(d=6,1,0))+IIF(m=0,IIF(n=0 AND a>b,1,0),IIF(n=0 OR a>b,1,0))p
FROM(SELECT SUM(q)q,MAX(IIF(s='D',q,0))d,SUM(a)a,MIN(q)m,SUM(b)b,MIN(10-q)n
FROM(SELECT s,COUNT(k)q,MAX(IIF(r=k,v,0))a,MAX(IIF(r=k,0,v))b
FROM(SELECT LEFT(value,1)r,s,ASCII(RIGHT(value,1))-38 v
FROM STRING_SPLIT('7;,68,A6,5,4,3,2,Q0,J0,K0',','),(VALUES('D'),('C'),('H'),('S'))s(s))d
LEFT JOIN(SELECT LEFT(value,1)k,RIGHT(value,1)u FROM STRING_SPLIT(@,','))a
ON r+s=k+u GROUP BY s)t)t

এটি ডিবি <> ফিডেলে চেষ্টা করুন ।


1

রেটিনা 0.8.2 , 334 বাইট

$
 ¶234567JQKA
r`.\G
$&C $&D $&H $&S 
+`((\w\w).*¶.*)\2 
$1
T`67AJQK`8960
%O$`(\w)(\w)
$2$1
m`^(?=(...)*)(.C )*(.D )*(.H )*(.S )*
$3;$#1 $#2 $#3 $#4 $#5;${2}${3}${4}$5
m`^(?=(9D))?...;
$#1;
(;(?!.*10).* 0.*;).*
$1
\d[C-S] 
1$&
19\w 
21$*@
\d+(\w )?
$*@
(@)?;(@*) @* (@*).*;(@*)¶@?;((?!\2))?@* @* ((?!\3))?.*;((?!\4))?.*
$#1$#5$#6$#7
1

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা:

$
 ¶234567JQKA
r`.\G
$&C $&D $&H $&S 

সমস্ত 40 কার্ডের একটি তালিকা তৈরি করুন।

+`((\w\w).*¶.*)\2 
$1

প্লেয়ারের থাকা কার্ডগুলি সরান।

T`67AJQK`8960

প্রতিটি র‌্যাঙ্কটি তার ক্রম অনুসারে প্রতিস্থাপন করুন, এটি 9 এর জন্য is 7 টির এবং অন্য কার্ডগুলির জন্য এর মানের চেয়ে 10 টি কম।

%O$`(\w)(\w)
$2$1

মামলা এবং র‌্যাঙ্ক অনুসারে কার্ডগুলি বাছাই করুন।

m`^(?=(...)*)(.C )*(.D )*(.H )*(.S )*
$3;$#1 $#2 $#3 $#4 $#5;${2}${3}${4}$5

প্রতিটি স্যুটে কার্ডের সংখ্যা গণনা করুন এবং দু'বার সর্বোচ্চ হীরা ক্যাপচার করে প্রতিটি স্যুটে সর্বোচ্চ র‌্যাঙ্কড কার্ডও ক্যাপচার করুন।

m`^(?=(9D))?...;
$#1;

সর্বোচ্চ হীরাটি 7 টি ছিল কিনা তা পরীক্ষা করুন।

(;(?!.*10).* 0.*;).*
$1

স্যুটগুলির মধ্যে একটিতে কার্ড না থাকলে সর্বোচ্চ কার্ডগুলি মুছুন।

\d[C-S] 
1$&
19\w 
21$*@
\d+(\w )?
$*@

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

(@)?;(@*) @* (@*).*;(@*)¶@?;((?!\2))?@* @* ((?!\3))?.*;((?!\4))?.*
$#1$#5$#6$#7

মোট, হীরা বা প্রিমিয়ার বেশি হলে স্কোর পয়েন্ট।

1

মোট স্কোর।



1

এডাব্লুকে , 235 বাইট

{s[9]=35;s[8]=32;s[7]=30;s[6]=29;s[5]=28;s[4]=27;s[3]=26;s[2]=s[1]=s[0]=24;a[$1 $2]=s[$1]}END{while(i++<4){D=0;for(j=0;j<10;j++){if(a[j i]<1){B[i]=s[j];D++}if(A[i]<a[j i])A[i]=a[j i]}x+=A[i];y+=B[i]}print(20<NR)+(D<5)+(1<a[9 4])+(y<x)}

এটি অনলাইন চেষ্টা করুন!

স্যুট মানচিত্র 1234 (4 হীরা হয়), মানচিত্রটিকে 0123456789 তে মান দেয় This এই প্রোগ্রামটি পরীক্ষার কেসগুলিকে স্বীকৃত বিন্যাসে রূপান্তরিত করে:

BEGIN{RS=", ";FS="";t[7]=9;t[6]=8;t["A"]=7;t[5]=6;t[4]=5;t[3]=4;t[2]=3;t["Q"]=2;t["J"]=1;t["K"]=0;u["D"]=4;u["C"]=1;u["H"]=2;u["S"]=3}{gsub("[\\[\"\\]]","",$0);print t[$1],u[$2]}

আমার লক্ষ্য ছিল কেবলমাত্র পাইথন বাস্তবায়নকে পরাস্ত করার জন্য: ডি


1

পাইথন 3 , 249 245 239 238 বাইট

-4 বাইট @ ওওএসকে ধন্যবাদ

-মোভ্যাটিকা -6 বাইট ধন্যবাদ

lambda C:sum([len(C)>20,'7D'in C,len([c for c in C if'E'>c[1]])>5,p(C)>p({n+s for n in'9876543210'for s in S}-C)])
p=lambda C:[not S.strip(''.join(C)),sum(max([(c[1]==s)*int('9gcdefil99'[int(c[0])],22)for c in C]+[0])for s in S)]
S='DcHS'

এটি অনলাইন চেষ্টা করুন!


1
2 বাইট কম int('0734569c00'[int(x[0])],13)এবং এর সাথে if x[1]<'E'লেখা যেতে পারেif'E'>x[1]
ovs

all(s in''.join(C)for s in S)not S.strip(''.join(C))6 বাইট সাশ্রয় করে সংক্ষিপ্ত করা যায়
মুভিটিকা
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.