검색어 입력폼

Five-card poker game

저작시기 2006.06 |등록일 2010.01.15 한글파일한글 (hwp) | 10페이지 | 가격 900원

소개글

[문제해석]

Modify the program in Figs. 8.25–-8.27 of C++ How to Program: Fifth Edition so that the card-dealing function deals a
five-card poker hand. Then write functions to accomplish each of the following tasks:
a) Determine if the hand contains a pair.
b) Determine if the hand contains two pairs.
c) Determine if the hand contains three of a kind (e.g., three jacks).
d) Determine if the hand contains four of a kind (e.g., four aces).
e) Determine if the hand contains a flush (i.e., all five cards of the same suit).
f) Determine if the hand contains a straight (i.e., five cards of consecutive face values).
Hints:

.�. Allow class DeckOfCards to store a 5 card hand in a 5-by-2 array (five ranks and five suits). Implement the functions as member functions of class DeckOfCards.
�.�. To determine if two (or more) cards are of the same rank, create an array of 13 elements—-one for each rank—-and initialize its elements to 0. Iterate through the hand, incrementing the appropriate rank within your array. Finally, loop through the resulting array, checking for elements greater than or equal to 2 (or 3 or 4).
�.�. Similarly, check for a flush by creating a four-element array, where each element represents a different suit.
�.�. Check for a straight by using the insertion sort.

목차

1.문제해석
2. 알고리즘
3. 입력과 출력의 정의
4.주석과 소스

본문내용

2. 알고리즘

- DeckOfCards 클래스 지정
- 모양 4개, 숫자 13가지의 총 52장의 카드를 섞는다
- 그 중 다섯 장을 임의로 뽑아 배열 hand[][]에 저장한다.
- 뽑힌 카드를 출력
- 카드의 같은 숫자의 개수, 같은 모양의 개수에 따른 결과값을 출력한다.

3. 입력과 출력의 정의

- 입력 : 없음

- 출력 : 선택 된 카드가 저장되어 있는 배열, 숫자, 모양

4.주석과 소스

<<soa.cpp>>
#include<iostream>
#include<iomanip>
#include<cstdlib>
#include<ctime>
using namespace std;
#include "soa.h"

DeckOfCards::DeckOfCards()// 배열을 초기화 시킨다.
{
for(int row=0; row<=3; row++)// 4개의 모양 배열
{
for(int column = 0; column<=12; column++)// 13개의 숫자 배열
{
deck[row][column]=0;// 모양 * 숫자 배열을 `0`으로 초기화 시킨다.
}
}
}

void DeckOfCards::shuffle()// 카드 섞는 함수
{
int row;// 변수 row에 열을 지정
int column;// 변수 colum에 행을 지정
srand((unsigned)time(NULL));// 난수 발생

for(int card=1; card<=52; card++)// 52장의 카드생성
{
do
{
row=rand()%4;// row에는 4가지 경우 지정
column = rand()%13;// colum에는 13가지의 경우 지정
}while(deck[row][column]!=0);//배열 deck[row][column]!=0일 경우 실행
다운로드 맨위로