저는 초보자이며 기본적으로 1 인 5 드로우 게임을 모방 한 2 클래스 프로그램 "VideoPoker"를 만들었습니다. 이 게임에서는 카드 덱을 섞은 다음 상위 5 장의 카드를 사용하여 5 장의 무승부를 기록합니다. 사용자는 카드를 처리 할 때 부여받은 5 장의 카드 중 일부 또는 전부를 제거 할 수 있습니다. 사용자가 카드를 제거하면 카드가 제거되어 다음 상단 카드로 바뀝니다. 나는 사용자가 카드를 제거하기로 결정한 지점에 갇혀있다. 내 프로그램에서 누군가가 카드 또는 때로는 일부 카드 2 (색인 1)과 카드 4 (색인 3)의 모든 카드를 다음 핸드 (5 장) 인쇄물에 항상 남겨 두었습니다.갑판 하단의 카드 교체
Deck.java : 내 시도는 아래 코드 영상에
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Random;
public class Deck {
// Constructing a deck from two arrays
String[] suit = { "C", "D", "H", "S" };
String[] rank = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
ArrayList<String> deck = new ArrayList<String>(suit.length * rank.length);
int currentCard = 0;
// Storing public variables
int suits = suit.length;
int ranks = rank.length;
int deckSize = deck.size();
// Constructs a deck with 52 cards
public Deck(){
for(int i = 0; i < suits; i ++){
for(int j = 0; j < ranks; j++){
String temp = rank[j] + suit[i];
deck.add(temp);
}
}
}
public String toString(){
return Arrays.deepToString(deck.toArray());
}
// Fisher-Yates Shuffle
public ArrayList<String> shuffle(){
Collections.shuffle(deck);
return deck;
}
public String deal(){
return deck.get(currentCard++);
}
public String remove(int i){
return deck.remove(i);
}
public String get(int i){
return deck.get(i);
}
public ArrayList<String> getList(){
return deck;
}
}
Dealer.java (테스터 프로그램) :
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Dealer {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
Deck testDeck = new Deck();
System.out.println(testDeck);
testDeck.shuffle();
System.out.println(testDeck);
for (int i = 0; i < 5; i ++){
System.out.print(testDeck.deal() + " ");
}
String choice;
for (int i = 0; i < 5; i++){
System.out.print("\nWould you like to remove card " + (i + 1) + "? ");
choice = in.next();
if (choice.equals("Y")){
testDeck.remove(i);
}
}
for (int i = 0; i < 5; i++){
System.out.print(testDeck.get(i) + " ");
}
}
}
출력 :
심미적 인 메모와 마찬가지로,'10'을'T'로 바꾸면 순위가 모두 하나의 문자가되도록 할 수 있습니다. – AJMansfield
@AJMansfield 감사합니다. – mshades
카드 1을 여러 번 제거하거나 각 카드를 제거한 후에 손을 표시해보십시오. 그것은 일어나는 일에 대한 공정한 아이디어를 줄 것입니다. – BevynQ