【发布时间】:2018-10-13 00:31:54
【问题描述】:
我做了一个纸牌游戏,类似于纸牌。它快完成了。我正在努力的最后一件事是打印前 5 名。每当玩家结束游戏时,它会在 score.txt 文件中写入他在桌子上剩下多少堆,比如说 4。所以在 .txt 文件中我有以下数字:1,2,3,4,5,6,7,8,9。我如何从文件的前 5 个打印,所以它是:1,2,3,4,5。
DeckOfCards class:
import java.io.*;
import java.security.SecureRandom;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;
public class DeckOfCards {
private ArrayList<Cards> deck;
private int currentCard=-1; //index of the next card to be dealt
private Scanner in;
private int i;
//ArrayList<Integer> indexesToRemove = new ArrayList();
/**
*
* Constructor to build a deck of cards
*/
public DeckOfCards() {
this.deck = new ArrayList<Cards>();
}
public void removeCard(int i) {
this.deck.remove(i);
}
public Cards getCard(int i){
return this.deck.get(i);
}
public void addCard(Cards addCards){
this.deck.add(addCards);
}
//Draws from the deck1
public void draw(DeckOfCards comingFrom){
currentCard++;
this.deck.add(comingFrom.getCard(0));
comingFrom.removeCard(0);
}
public void saveScore(){
try (PrintStream out = new PrintStream(new FileOutputStream("scores.txt"))) {
out.print(deck.size());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
卡类:
public class Cards {
private String suit;
private String value;
public Cards(String suit, String value)
{
this.suit = suit;
this.value = value;
}
public String getSuit() {
return suit;
}
public void setSuit(String suit) {
this.suit = suit;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return suit + value;
}
}
希望对您有所帮助。我摆脱了一些我认为它们没有用的方法。还有菜单,就像我说的那样,除了显示前 10 个结果之外,每个案例都有效。 1 - 打印包(这样您可以检查它是否正常播放) 2 - 随机播放 3 - 发牌 4 - 移动,将最后一堆移到前一个上 5 - 移动,将最后一堆移回两堆 6 - 中间的混合物堆(通过给出它们的数字) 7 - 在命令行打印显示的卡片 8 - 为我玩一次(如果有两个可能的移动,则进行“最远”移动) 9 - 为我演奏很多次 10 - 显示前 10 个结果
【问题讨论】:
-
这有点太模糊了。请包含一些代码并解释您遇到的具体问题。
-
能贴出你写的相关代码吗? (见stackoverflow.com/help/mcve)
-
已编辑。很抱歉含糊其辞,认为这是不必要的。
标签: java