< 시스템 SW 실습 3 > Project #1 Poker Seven Poker 게임을진행하고최종적으로가장많은돆을가진사람이승리합니다. # 공통 rule - Main 함수의순서대로진행 - AI 의 class condition User 가 AI 를참조하는경우 AI 의 ta

Similar documents
C 언어 프로그래밊 과제 풀이

Blackjack Game [Project #1] Multiplayer Blackjack Game 블랙잭은 21을넘지않는한도내에서딜러와겨루어숫자가높으면이기는게임 1 딜러 (House) 가자신을포함한참가자전원에게카드두장을나누어주는데, 딜러의카드한장은참가자들에게보이지않는다

PowerPoint 프레젠테이션

슬라이드 1

SW

1 SW

Microsoft PowerPoint - Java7.pptx

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

슬라이드 1

슬라이드 1

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션

슬라이드 1

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

Spanning Tree Protocol (STP) 1

Microsoft Word - FunctionCall

Index 1. VLAN VLAN 이란? VLAN 의역핛 VLAN 번호 VLAN 과 IP Address Trunking DTP 설정 VT

시스코 무선랜 설치운영 매뉴얼(AP1200s_v1.1)

1. 안드로이드개발환경설정 안드로이드개발을위해선툴체인을비롯한다양한소프트웨어패키지가필요합니다 툴체인 (Cross-Compiler) 설치 안드로이드 2.2 프로요부터는소스에기본툴체인이 prebuilt 라는이름으로포함되어있지만, 리눅스 나부트로더 (U-boot)

Java ...

수험번호 성 명 2013 다음커뮤니케이션직무능력테스트 감독관서명 < 본문서는외부비공개문서입니다. 무단배포시법적인챀임을물을수있습니다 > 1

C++ Programming

JAVA PROGRAMMING 실습 08.다형성

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

EDS Academic for Dublin

슬라이드 1

UI TASK & KEY EVENT

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

슬라이드 1

<4D F736F F F696E74202D B3E22032C7D0B1E220C0A9B5B5BFECB0D4C0D3C7C1B7CEB1D7B7A1B9D620C1A638B0AD202D20C7C1B7B9C0D320BCD3B5B5C0C720C1B6C0FD>

TEST BANK & SOLUTION

Poison null byte Excuse the ads! We need some help to keep our site up. List 1 Conditions 2 Exploit plan 2.1 chunksize(p)!= prev_size (next_chunk(p) 3

Microsoft PowerPoint - gnu-w10-c-chap11


Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

Lab 3. 실습문제 (Single linked list)_해답.hwp

Structure and Interpretation of Computer Programs: Assignment 3 Seung-Hoon Na October 4, George (아래 3개의 문제에 대한 구현이 모두 포함된 george.rkt파일을 제출하시오.

커알못의 커널 탐방기 이 세상의 모든 커알못을 위해서

설계란 무엇인가?

@OneToOne(cascade = = "addr_id") private Addr addr; public Emp(String ename, Addr addr) { this.ename = ename; this.a

12 강. 문자출력 Direct3D 에서는문자를출력하기위해서 LPD3DXFONT 객체를사용한다 LPD3DXFONT 객체생성과초기화 LPD3DXFONT 객체를생성하고초기화하는함수로 D3DXCreateFont() 가있다. HRESULT D3DXCreateFont

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

제 5강 리만적분

Design

벤처연구사업(전동휠체어) 평가

Chapter 4. LISTS

레이아웃 1

슬라이드 1

BY-FDP-4-70.hwp

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

IoT FND8 7-SEGMENT api

설계란 무엇인가?


슬라이드 1

Microsoft PowerPoint 웹 연동 기술.pptx

쉽게 풀어쓴 C 프로그래밍

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C4C656D70656C2D5A69762E637070>

쉽게 풀어쓴 C 프로그래밍

레이아웃 1

0. 표지에이름과학번을적으시오. (6) 1. 변수 x, y 가 integer type 이라가정하고다음빈칸에 x 와 y 의계산결과값을적으시오. (5) x = (3 + 7) * 6; x = 60 x = (12 + 6) / 2 * 3; x = 27 x = 3 * (8 / 4

8. 클래스 D는클래스 A, 클래스 B, 클래스 C로부터상속받아맊들고싶다. 아래빈칸을채우시오. ( 대소문자주의하시오 ) class D { ; Student s; 11. 다음프로그램의실행결과는? 9. 다음프로그램의실행결과는? class A{ A(){cout << " 생성

Tablespace On-Offline 테이블스페이스 온라인/오프라인

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

PowerPoint 프레젠테이션

중간고사

PowerPoint Template

5장.key

4. 도박과 매춘, 명멸하는 망상

강의 개요

Contributors: Myung Su Seok and SeokJae Yoo Last Update: 09/25/ Introduction 2015년 8월현재전자기학분야에서가장많이쓰이고있는 simulation software는다음과같은알고리즘을사용하고있다.

new_biz

new_biz

*지급결제제도 01_차례

Basics of Electrochemical Impedance Spectroscopy - I Impedance Plots Overview 핚번의실험을시행핛때각측정된주파수에서데이터는다음요소들로구성된다. The real component of voltage (E ) Th

슬라이드 1

KT AI MAKERS KIT 사용설명서 (Node JS 편).indd

쉽게 풀어쓴 C 프로그래밍

gnu-lee-oop-kor-lec06-3-chap7

윈도우즈프로그래밍(1)

JAVA PROGRAMMING 실습 02. 표준 입출력

Orcad Capture 9.x

Microsoft PowerPoint - chap06-2pointer.ppt

28 THE ASIAN JOURNAL OF TEX [2] ko.tex [5]

JMF2_심빈구.PDF

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

레이아웃 1

레이아웃 1

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

Secure Programming Lecture1 : Introduction

유니티 변수-함수.key

PowerPoint Presentation

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

PowerPoint 프레젠테이션

내가 생애 최초로 외국인 저명인사를 인터뷰한 것은 무모하게도 입사 3년차에 미숙약관의 나이 25살이던 1961 년 대만에서 후시( 胡 適 ) 작사를 만난 것이다. 그는 철학자로 중국의 백화문( 白 話 問 =구어체)운동을 지도한 근대 화의 선구자요 대표적인 지식인이었다.

Microsoft PowerPoint - [2009] 02.pptx

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

Microsoft PowerPoint - 3ÀÏ°_º¯¼ö¿Í »ó¼ö.ppt

<BFACBDC0B9AEC1A6C7AEC0CC5F F E687770>

PowerPoint 프레젠테이션

Transcription:

< 시스템 SW 실습 3 > Project #1 Poker Seven Poker 게임을진행하고최종적으로가장많은돆을가진사람이승리합니다. # 공통 rule - Main 함수의순서대로진행 - AI 의 class condition User 가 AI 를참조하는경우 AI 의 table 상태를확인핛때 (AI 조합정보가이미 table 에정리되어있음 ) 최종결과를출력핛때 AI 의 condition table 변수정보 Name : 조합번호 Num : 조합에서가장큰숫자 Full house 의경우에는 3 장인카드의번호 Straight 는가장작은숫자 Shape : 조합에따라모양결정 Flush 의경우해당 shape 이외에경우, 위의 num 에해당하는카드의 shape Pair : Two pair 의경우, 작은숫자 pair 에해당하는숫자 Two pair 의경우에만사용핛필요존재 이외의변수는참조필요없음 (user 가필요핚경우에사용하는변수 )

조합에따라 num 혹은 shape 이필요하지않은경우, AI 도 user 의정보를일 부만참조 Four card 의경우, shape 이무의미 Royal straight flush 의경우, num 이무의미 AI 도 user table 의 name, num, shape, pair 만을참조합니다. - 조합 같은조합일경우, 숫자혹은모양을비교 높은숫자일수록상위 / Spade, Diamond, Heart, Clover 순으로상위 같은조합일경우, 가지고있는최대숫자를비교하고최대숫자가같을경 우최대숫자의모양을비교 두 player 가동일하게 9, 3pair 인경우 9 pair 중에서 spade 를가진사람 이승리 Flush 를비교하는경우, 최대숫자를비교하고최대숫자가같을경우에 는모양을비교 Straight 를비교하는경우, 최대숫자를비교하고최대숫자가같을경 우에는모양을비교 Straight 중, (A 2 3 4 5) 의조합은배제하고 (10 J Q K A) 의조합은사용 - Straight 의경우, condition 의 num 에는가장작은숫자를대입 - 처음 3 장을받은후, 1 장을반드시받고 100 원을적립 (1 set 필참 ) 2 set 부터 die 가능 - 죽는순서는 user 가가장먼저 Player 모두가죽는경우는배제 - 중갂에게임이끝난경우, 현재까지의카드와조합을출력 # 유의사항

- 구현방법 Poker.cpp 만을작성하고필요에따라서 poker.h 의주석부분에변수추가가능 - 판돆 Set 1, 2, 3, 4 에서진행핛때마다 100 원, 200 원, 400 원, 800 원씩 bank 에적립 Go 로결정핚경우바로적립 결과확인후에누적된금액을승자가획득 Player 의돆이 여도계속참여, 진행가능 - User 와 AI 공통으로, player 의죽음은 name 변수를 -1 로표시 AI vector 에는항상 3 명의 AI 가들어있으며, AI 의 name 변수가 -1 일경우, 현재 게임에서죽은상태로인식 # poker.h - 모듞조합은 poker.h 의숫자대로관리 - 각문양을 define 으로정리 SPADE = 4 / DIAMOND = 3 / HEART = 2 / CLOVER = 1 - Class Card 번호는 2~14 (2~A), 모양은위의 define 을사용 - Class Condition 조합의상태를표시 Name = 조합번호 정의되어있는변수들외에필요에따라추가선언및사용가능 - Class Player User 의정보 Name 은 0 으로고정, money 는시작핛때 10000 원지급

Mine, my_cards 는본인시점 / table, my_table_cards 는타인시점으로사용 String table_cards 는출력을위핚용도로자유롭게사용 정의되어있는변수들외에필요에따라추가선언및사용가능 - Class Player_AI AI 의정보 기본정보는 user 와마찬가지 User 는의사결정을위해 AI.table 에접근가능 Class 내의 get_mine() 을통해서 AI 의젂체카드열람가능 반드시 show_result() 내에서만사용 - Class Poker Card deck 제공 판돆을저장해놓을변수 bank 제공 핚게임이끝날때까지의누적판돆이며, 매게임마다 0 으로 reset 게임을위핚함수제공 # main.cpp - Player( 자싞 ) 와 AI 3 명을초기화 - 정상적으로출력되었을시, 게임과정과결과가도출 ( 최종카드, 돆 ) - 젂체진행상황 초기화 -> 카드섞기 -> 3 장씩분배 -> Table 카드상태확인 -> 1 장씩분배 -> Table 카드상태확인 -> 게임진행의사결정 -> 게임완료확인 -> 반복 게임완료확인은 player 가혺자남은경우를확인 # main_iter.cpp - 게임을여러번실행

각 player 의돆은초기화하지않으니누적되도록구현 - 결과를갂략하게출력 # poker.cpp Shuffle_deck - 0 ~ 51 까지의숫자를 random 으로획득 ( 순서 ) Rand() 에서 0 을받은경우, Ace 로인식 Rand() 에서 20 을받은경우, 8 로인식 AI 는 Ace 를 14 번으로인식 (2 ~ K : 2 ~ 13) - 받는순서대로 push_back() 함수로 deck 에넣고, back() 함수로차례대로사용 First_draw - 3 장씩받고, 뒤집어놓을 top card 를결정 - 나눠주는순서는 player 0 부터 3 장, player 1 에게 3 장 순서 - First_draw_AI() 에서는각 AI 가알아서 3 장씩획득 Show_table - Table 상태를출력 ( 자싞의카드만출력 ) - Show_table_AI() 에서는 AI 의 table card 출력 Verify_cards - 자싞의카드상태확인 Table 에있는자싞의카드상태 update 필요 (Player.table) 이후 AI 가 Player.table 을참조하여의사결정 실제자싞의카드상태 update 시점은자유 - Verify_cards_AI() 에서는각 AI 가자싞의 table card 상태를 update

Draw - 카드를 1 장씩분배 Table 에서가장높은조합을가진사람부터반시계방향으로분배 0->1->2->3, 2->3->0->1 과같은순서 AI 의조합을확인하기위해 AI.table 참조가능 - Draw_AI() 에서는 AI 가핚장의 card 를획득 Ex) AI 2 번이 top player 인경우, draw_ai(ai2) / draw_ai(ai3) / user 알고리즘 / draw_ai(ai1) 순서로함수호출 Draw_AI() 함수가남은 AI 수만큼호출필요 Go_or_die - User 의알고리즘에따라게임을진행핛지말지결정 - Go_or_die_AI() 에서는 AI 가자싞의카드상태와 table 상태를비교하여의사결정 Show_result - 최종 table 상태를출력함과동시에결과도출 죽은 player 는출력하지않음 승자와승자가가지고있던조합을출력 승자를판별하고돆을지급 승자를판별하기위해 AI 의젂체카드열람가능 Get_mine() 함수 최종출력은모듞카드가보이도록출력 - Show_result_AI() 에서는남은 AI 들의카드를젂부오픈

# 출력결과 - Main.cpp

- Main_iter.cpp (3 번실행핚경우 )

# 제출 - 작성핚코드에주석작성 가독성, 모듞경우가포함되었는지판단 - Poker.cpp / poker.h 파일만을압축 - 학번.tar.gz 형식으로조교에게제출 2016710580.tar.gz 을조교메일로젂송 ( 두명모두에게보내주시길바랍니다.) # g++-4.8 downgrade g++ --version 으로현재 g++ version 확인가능 sudo apt-get install g++-4.8 sudo apt-get install aptitude sudo aptitude install g++-4.8

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 800 sudo update-alternatives --config g++