皮基米诺游戏(2+玩家) 我正在用java创建一个叫Pickomino的游戏。这段代码对于一个玩家来说很好,并且运行正常 public static void main(String[] args) { Player player1 = new Player(); // Dhmiourgeia enws paikth Player player2 = new Player(); Board board1 = new Board(); // Dhmiourgeia tou board /** Crazy Tests ( gia 2 gurous sunexomenous o idios paikths) */ //for (int z = 0; z < 2; z++) { // Ripsh twn zariwn while ((player1.isPlayOn()) && (remainingRolls(ROLLS,counterOfDice) > 0)) { System.out.print("Oi zaries sou einai: "); for (int i = 0; i < remainingRolls(ROLLS,counterOfDice); i++) { rolls[i] = randomRoll(); System.out.print(rolls[i] + " "); } if (noMoreRolls(rolls,pickedDice)) break; // Telos gurou tou paikth, se periptwsh pou den epitrepetai na shkwsei alla zaria apo to trapezi System.out.print("\nDialekse ena zari / paketo omoiwn zariwn apo ta parapanw: "); int choice = input.nextInt(); // Elegxos viable kinhshs tou paikth while (player1.isPicked(choice, pickedDice)) { System.out.println("To exeis hdh auto."); System.out.print("Dialekse ena allo zari / paketo omoiwn zariwn apo ta parapanw: "); choice = input.nextInt(); } // Topothethsh zariwn epiloghs sthn stiva tou paikth for (int i = 0; i < rolls.length; i++) { if (choice == rolls[i]) { pickedDice[counterOfDice] = rolls[i]; counterOfDice++; } rolls[i] = 0; } System.out.println(Arrays.toString(pickedDice)); // Prosthesh zariwn sumOfDice = currentSumOfDice(pickedDice); System.out.println("Mexri stigmh to athrisma einai " + sumOfDice); // Termatismos gurou gia ton current paikth if ((sumOfDice > 20) && (remainingRolls(ROLLS,counterOfDice) > 0) && (player1.canIPick(pickedDice))) { System.out.print("Sunexizoume? "); choice = input.nextInt(); player1.isEndOfYourTurn(choice); } } // Emfanish apotelesmatos //System.out.println("sum = " + sumOfDice); // Check pontwn me pontous sto trapezi **PREPEI NA ALLAKSEI** if (player1.canIPick(pickedDice)) { board1.removeAWorm(sumOfDice); player1.setPoints( (sumOfDice - 17) / 4 ); } System.out.println("kartes = " + board1.getRemainingWorms()); System.out.println("\nSe auton ton guro phres: " + player1.getPoints() + " skoulikia."); /** Crazy Tests*/ //resetRolls(); //for (int i = 0; i < pickedDice.length; i++) { //pickedDice[i] = 0; //} //player1.setPlayOn(); //} }

皮基米诺游戏(2+玩家) 我正在用java创建一个叫Pickomino的游戏。这段代码对于一个玩家来说很好,并且运行正常 public static void main(String[] args) { Player player1 = new Player(); // Dhmiourgeia enws paikth Player player2 = new Player(); Board board1 = new Board(); // Dhmiourgeia tou board /** Crazy Tests ( gia 2 gurous sunexomenous o idios paikths) */ //for (int z = 0; z < 2; z++) { // Ripsh twn zariwn while ((player1.isPlayOn()) && (remainingRolls(ROLLS,counterOfDice) > 0)) { System.out.print("Oi zaries sou einai: "); for (int i = 0; i < remainingRolls(ROLLS,counterOfDice); i++) { rolls[i] = randomRoll(); System.out.print(rolls[i] + " "); } if (noMoreRolls(rolls,pickedDice)) break; // Telos gurou tou paikth, se periptwsh pou den epitrepetai na shkwsei alla zaria apo to trapezi System.out.print("\nDialekse ena zari / paketo omoiwn zariwn apo ta parapanw: "); int choice = input.nextInt(); // Elegxos viable kinhshs tou paikth while (player1.isPicked(choice, pickedDice)) { System.out.println("To exeis hdh auto."); System.out.print("Dialekse ena allo zari / paketo omoiwn zariwn apo ta parapanw: "); choice = input.nextInt(); } // Topothethsh zariwn epiloghs sthn stiva tou paikth for (int i = 0; i < rolls.length; i++) { if (choice == rolls[i]) { pickedDice[counterOfDice] = rolls[i]; counterOfDice++; } rolls[i] = 0; } System.out.println(Arrays.toString(pickedDice)); // Prosthesh zariwn sumOfDice = currentSumOfDice(pickedDice); System.out.println("Mexri stigmh to athrisma einai " + sumOfDice); // Termatismos gurou gia ton current paikth if ((sumOfDice > 20) && (remainingRolls(ROLLS,counterOfDice) > 0) && (player1.canIPick(pickedDice))) { System.out.print("Sunexizoume? "); choice = input.nextInt(); player1.isEndOfYourTurn(choice); } } // Emfanish apotelesmatos //System.out.println("sum = " + sumOfDice); // Check pontwn me pontous sto trapezi **PREPEI NA ALLAKSEI** if (player1.canIPick(pickedDice)) { board1.removeAWorm(sumOfDice); player1.setPoints( (sumOfDice - 17) / 4 ); } System.out.println("kartes = " + board1.getRemainingWorms()); System.out.println("\nSe auton ton guro phres: " + player1.getPoints() + " skoulikia."); /** Crazy Tests*/ //resetRolls(); //for (int i = 0; i < pickedDice.length; i++) { //pickedDice[i] = 0; //} //player1.setPlayOn(); //} },java,Java,我的问题是:如果我需要再引进2名球员,我该怎么办?我知道,我可以c/p代码2次以上,并发挥开关,但我发现这是一种愚蠢的。 我的问题是,我有检查e.x.while player1.isPickedchoice,为player1挑选的选项,只有您可以看到。有没有办法重新编写我的主代码,每次都打开活动播放器?我需要导入一个新方法还是什么?我建议您有一个保存播放器对象的数据结构。如果这是一个基于回合的游戏,ArrayList将很好地工作,带有一个变量,该变量是轮到它的玩家的索引。当玩家完成他的回合时,增

我的问题是:如果我需要再引进2名球员,我该怎么办?我知道,我可以c/p代码2次以上,并发挥开关,但我发现这是一种愚蠢的。
我的问题是,我有检查e.x.while player1.isPickedchoice,为player1挑选的选项,只有您可以看到。有没有办法重新编写我的主代码,每次都打开活动播放器?我需要导入一个新方法还是什么?

我建议您有一个保存播放器对象的数据结构。如果这是一个基于回合的游戏,ArrayList将很好地工作,带有一个变量,该变量是轮到它的玩家的索引。当玩家完成他的回合时,增加索引,然后检查是否需要返回到零

如果游戏不基于回合,那么某种地图可以很好地获得正确的玩家对象。当我编写多人实时在线游戏时,我通常使用ConcurrentHashMap


作为一般规则,如果你认为一个游戏需要多人而不是单人,你需要在开始实施它之前考虑到这一点,即使你先实施单人游戏

在实施之前,你为什么不考虑一下设计??。。重新设计/重组所需的时间将超过您实际编写代码所需的时间。。。相信我,它会有很多bug…因为我是新的@programming,我认为如果它只为一个玩家播放,那么从更多玩家那里播放就不难了。无论如何,我都会重新编写代码,因为我会为Android创建它,因为我确信它首先在Java中工作。您是否有什么建议可以让我的代码更加通用,而不仅仅适用于player1?我应该创建一个玩家列表吗?嗯。。。做坏事没有好办法。。。保留一份球员名单,在所有球员身上打一个for循环。将您所有的逻辑放在一个函数中,并在for循环中调用它。。准备好面对很多错误…我会试试这个。如果我想再为多人游戏写一次我应该想到什么?你应该想到的第一件事是-你的结构以后不会改变。想出一个能有效处理多个玩家的设计。。了解并设计不同玩家的互动方式。。。想一想你可能面临的所有问题,并确保你有一个解决方案或解决方法。你好。谢谢你的回答。是的,这是一款基于回合的游戏,我会像你说的那样尝试ArrayList。谢谢你的回答。