Biz bilan bog'lanish

By 08.09.2021 08.09.2021

Rahmat. Biz sizning so'rovingizni oldik va darhol javob beramiz.

Bizga Qo'shiling!

  • Boshqa a'zolar bilan gaplashing


  • Sizning xabarlaringizga javoblar haqida xabardor bo'ling
  • Kalit so'z qidirish


  • Sevimli forumlaringizga bir marta bosish orqali kirish


  • Sizning xabarlaringizda avtomatik imzolar
  • Eng yaxshisi, bu bepul!

Yuborish bo'yicha ko'rsatmalar

Targ'ibot, sotish, yollash, kurs ishi va tezislarni joylashtirish taqiqlanadi.

Poker qo'llarini aniqlash uchun massivlardan foydalanish muammosi!

  • Forum
  • Qidirmoq
  • Tez -tez beriladigan savollar
  • Havolalar
  • MVPlar

Poker qo'llarini aniqlash uchun massivlardan foydalanish muammosi!

Poker qo'llarini aniqlash uchun massivlardan foydalanish muammosi!

Mening kollej sinfim loyihani amalga oshirmoqda, unda biz kartalar to'plamini yaratadigan, ularni aralashtiradigan (srand ()) va beshta kartani chiqaradigan dastur yozishimiz kerak. Shundan so'ng biz ularning juft, tekis, tekis, tekis, uch xil, to'rt xil yoki to'la uy yoki yo'qligini tekshiramiz. Men yozgan kodning ko'p qismi bor. Men to'g'ri chiziqni pastdan (masalan, ace, 2, 3, 4, 5) va yuqoridan (ace king queen jack 10) ishlatilgan asni o'z ichiga olish uchun tekislashim kerak, shuningdek menda to'g'ri yuvish yo'q, 4 turdagi yoki to'liq uy. Men hozirgacha bo'lgan kodni ko'rsatmayman. Bu ishlarning eng yaxshi usuli bo'yicha har qanday takliflar ko'p yordam beradi. Yordam beradigan har bir kishiga rahmat.

#include

#include

#include

#include

nomlar maydoni yordamida std;

// kartalari tartiblangan, lekin yagona

(i = 0; i
<

pastki [i] = i;

>

// pastki qismni aralashtiring:

for (i = 0; i
<

// i indeksidagi kartani almashtirish uchun tasodifiy indeks hosil qiling.

int j = rand () % 52;

int temp = pastki [i];

pastki [i] = pastki [j];

pastki [j] = temp;

>



// barcha kartalarni chop eting

(i = 0; i
<

int suitnumber = deck [i] / 13; // 0 - 3

int daraja = pastki [i] % 13;

cout
>

// Ace

cout
for (i = 0; i
<

int acerank = 0;

int currentCardRank = pastki [i]%13;

if (currentCardRank == acerank)

<

cout
>

>

//

int R [5] ning birinchi 5 ta kartalari unvonini oling ; // = ; // birinchi 5 ta kartaning reytingi

int S [5];

uchun (i = 0; i
<

R [i] = pastki [i]%13;

S [i] = pastki [i]/13;

>

//

Saralanganlar qatori bool swapped = false;

do

<

// qabariq tartibining 1 ta o'tishi

almashildi = noto'g'ri;

uchun (int i = 0; i
<

if (R [i]>R [i+1])

<

int temp = R [i];

R [i] = R [i+1];

R [i+1] = harorat;

almashildi = rost;

>

>

>

Esa (almashdilar == rost);

//

(i = 0; i
<

cout
>

// To'g'ridan to'g'ri tekshiring:

agar (R [1] == R [0] +1 && R [2] == R [1] +1 && R [3] == R [2] +1 va& R [ 4] == R [3] +1)

<

cout
>

else

<

cout
>

// Har qanday juftlik uchun birinchi 5 ta kartani tekshiring,

agar (R [0] == R [1] || R [1] == R [2] || R [2] == R [3] || R [3 ] == R [4])

<

cout
>

else

<

cout
>

//

Agar (S [0] == S [1] && S [1] == S [2] && S [2] == S [3] && S [3] ] == S [4])

<

cout
>

else

<

cout
>

// To'g'ridan -to'g'ri oqishini tekshiring

// 4 turdagi tekshiring

// To'liq uyni tekshiring

RE: Poker o'yinlari poker qo'llarini aniqlash uchun massivlardan foydalanishda muammo!

Siz 3 turdagi va 2 juftlik holatlarini unutdingiz.

Siz testlarni 2, 3, 4 turdagi, to'g'ri va o'z vazifalariga o'tkazishingiz kerak:

To'liq uy uchun sizda juftlik va 3 turdagi tur mavjudligini tekshiring.

Straight Flush uchun sizda Flush & Straight borligini tekshiring.

Agar sizda to'g'ri yuvish bo'lsa, siz R [0] ning Ace & R [4] ning qirol ekanligini tekshirishingiz mumkin, bu holda sizda Royal Flush bor.

Bundan tashqari, siz "To'g'ri" ni tekshirganingizda holatini tekshirmayapsiz.

RE: Poker o'yinlari poker qo'llarini aniqlash uchun massivlardan foydalanishda muammo!

Sizning muammoingizga haqiqiy javob emas, lekin bu erda qo'llarni aniqlash uchun oddiy (tez) kod.

Men buni texas holdem qo'lidagi martabali hisoblarni bajarish uchun yozganman .. lekin funksionallik u erda.

Agar biror narsa qilish qiyin bo'lsa, bunga arzimaydi - Homer Simpson

RE: Poker o'yinlari poker qo'llarini aniqlash uchun massivlardan foydalanishda muammo!

RE: Poker o'yinlari poker qo'llarini aniqlash uchun massivlardan foydalanishda muammo!

bool HaveFlush (int s1,

int s2,

int s3,

int s4,

int s5)

<

//

if (s1 == s2 && s2 == s3 && s3 == s4 && s4 = = s5)

<

haqiqiy qaytish;

>

else

<

return false;

>

>

RE: Poker o'yinlari poker qo'llarini aniqlash uchun massivlardan foydalanishda muammo!

bu dasturda xato bor. kodning bu qismida:

// qabariq tartibining 1 ta o'tish

almashtirildi = noto'g'ri;

uchun (int i = 0; i
<

if (R [i]>R [i+1])

<

int temp = R [i];

R [i] = R [i+1];

R [i+1] = harorat;

almashildi = rost;

>

>

Siz faqat kartalar darajasini saralaysiz, lekin kostyumni emas. Va ikkita bir xil kartani olish mumkin. siz ham kostyumni almashtirishingiz kerak. bu kod muammoni hal qilishi mumkin:

for (int i = 0; i
<

if (R [i]>R [i+1])

<

int temp = R [i];

R [i] = R [i+1];

R [i+1] = harorat;

almashildi = rost;

int temp2 = S [i];

S [i] = S [i+1];

S [i+1] = temp2;

almashildi = rost;

Qizil bayroq topshirildi

Tek-Maslahatlar Forumini noo'rin postlardan tozalashda yordam berganingiz uchun tashakkur.

Tek-Tips xodimlari buni tekshiradi va tegishli choralarni ko'radi.

Bu mavzuga javob

"Tek-Tips" forumlarida e'lonlar faqat a'zolarga tegishli.

Tek-Maslahatlarga qo'shilishva boshqa a'zolar bilan gaplashish uchun shu erni bosing! Allaqachon a'zo bo'lganmisiz? Kirish