gpt4 book ai didi

java - 每个程序运行时实现一个静态计数器

转载 作者:行者123 更新时间:2023-12-02 03:15:51 24 4
gpt4 key购买 nike

我正在做一个简单的幸运 9 纸牌游戏,我希望计数器递增,以便我可以记录每个玩家的获胜次数,我已经将 winCount 声明为静态,但每次我点击运行程序时计数器都会增加输出 1 或 0;

import java.util.Random;

public class Tester {

static int p1WinCount;
static int p2WinCount;

public static void main(String[] args) {
Random rand = new Random();
Tester test = new Tester();

String player1 = "PLAYER 1";
int p1r1 = rand.nextInt(13)+1;
int p1s1 = rand.nextInt(4)+1;
int p1r2 = rand.nextInt(13)+1;
int p1s2 = rand.nextInt(4)+1;
int p1total = test.total(test.convRank1(p1r1), test.convRank2(p1r2));

System.out.println(player1);
System.out.printf("Card 1: %s of %s\n", test.getRank(p1r1), test.getSuit(p1s1));
System.out.printf("Card 2: %s of %s\n", test.getRank(p1r2), test.getSuit(p1s2));
System.out.printf("Card Total: %d\n", p1total);

System.out.println();

String player2 = "PLAYER 2";
int p2r1 = rand.nextInt(13)+1;
int p2s1 = rand.nextInt(4)+1;
int p2r2 = rand.nextInt(13)+1;
int p2s2 = rand.nextInt(4)+1;
int p2total = test.total(test.convRank1(p2r1), test.convRank2(p2r2));

System.out.println(player2);
System.out.printf("Card 1: %s of %s\n", test.getRank(p2r1), test.getSuit(p2s1));
System.out.printf("Card 2: %s of %s\n", test.getRank(p2r2), test.getSuit(p2s2));
System.out.printf("Card Total: %d\n", p2total);

System.out.println();

if(p1total > p2total) {
System.out.println("PLAYER 1 IS THE WINNER");
p1WinCount++;
} else {
System.out.println("PLAYER 2 IS THE WINNER");
p2WinCount++;
}

System.out.println();
System.out.printf("Player 1 wins %d times / Player 2 wins %d times", p1WinCount, p2WinCount);
}

public String getRank(int x) {
switch(x) {
case 1:
return "ACE";
case 2:
return "TWO";
case 3:
return "THREE";
case 4:
return "FOUR";
case 5:
return "FIVE";
case 6:
return "SIX";
case 7:
return "SEVEN";
case 8:
return "EIGHT";
case 9:
return "NINE";
case 10:
return "TEN";
case 11:
return "JACK";
case 12:
return "QUEEN";
case 13:
return "KING";
} return null;
}

public String getSuit(int x) {
switch(x) {
case 1:
return "DIAMOND";
case 2:
return "CLUBS";
case 3:
return "HEARTS";
case 4:
return "SPADE";
} return null;
}

public int convRank1(int x) {
if(x > 9) {
return x - 9;
} else {
return x;
}
}

public int convRank2(int x) {
if(x > 9) {
return x - 9;
} else {
return x;
}
}

public int total(int x, int y) {
if(x + y > 9) {
return x + y - 9;
} else {
return x + y;
}
}

}

这是输出:

PLAYER 1
Card 1: FIVE of SPADE
Card 2: QUEEN of SPADE
Card Total: 8

PLAYER 2
Card 1: FOUR of SPADE
Card 2: ACE of CLUBS
Card Total: 5

PLAYER 1 IS THE WINNER

Player 1 wins 1 times / Player 2 wins 0 times

最佳答案

您需要将计数存储/保留到文件或数据库(磁盘内存),仅声明静态计数器不会在多次运行中保留数据

静态计数器(实际上是所有程序变量)仅在程序执行(运行)期间位于主存储器(RAM)中,并且在程序运行终止后将不可用。因此,当您再次启动程序时,这将是一次全新的运行,您无法获取之前运行的数据。

关于java - 每个程序运行时实现一个静态计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40323485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com