Java:只显示两名玩家的数字游戏

Java:只显示两名玩家的数字游戏,java,Java,我创建了一个数字猜测游戏。该程序允许您玩任意多轮游戏,最后它将显示每轮的猜测次数。然而,我的程序只为两个玩家提供输出。。。代码如下: import javax.swing.*; import java.io.*; import java.util.Arrays; import java.util.LinkedList; import java.util.List; public class Hil0 { public static void main(String[]args) thr

我创建了一个数字猜测游戏。该程序允许您玩任意多轮游戏,最后它将显示每轮的猜测次数。然而,我的程序只为两个玩家提供输出。。。代码如下:

import javax.swing.*;
import java.io.*;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

public class Hil0 {
    public static void main(String[]args) throws IOException {   

    List<String> highscore = new LinkedList<String>(Arrays.asList());

    while(true) {

     String namn = JOptionPane.showInputDialog(null, "Välj namn");
     int a = Integer.parseInt(JOptionPane.showInputDialog(null, "Mellan       0 och vilket tal vill du gissa?"));         

     int slumptal = 1 + (int)(Math.random()*a);
     int counter = 0;
     int count = 0;

     count++;
     String output = "";

     while(true) {         
     counter++;   

        String inputStr = JOptionPane.showInputDialog(null, "Gissa vilket tal (0-" + a +")");
        int input = Integer.parseInt(inputStr);

        if(input < slumptal) {
        JOptionPane.showMessageDialog(null, "Talet: " + input + " är för litet");      
        }
        else if(input > slumptal) {
        JOptionPane.showMessageDialog(null, "Talet: " + input + " är för stort");    
        }
        else if(input == slumptal) {
           highscore.add(namn + " " + counter + " gissningar" + " (0-" + a + ")");

           JOptionPane.showMessageDialog(null, "Rätt!" + "\n" + 
                                               "Antal gissningar: " + 
                                               counter);                                                                                                 

           String janej = JOptionPane.showInputDialog(null, "Vill du spela igen?");

           if(janej.equalsIgnoreCase("ja")) {
              break;               
           }
           else if(janej.equalsIgnoreCase("nej")) {
              for(int i = 0; i <= count; i++) { 
              output += highscore.get(i) + "\n";
              }
              JOptionPane.showMessageDialog(null,"Resultat:" + "\n\n" + output);
              System.exit(0);              
           }                                                                                              
        }
      }
    }    
  }  //Main
}  //Class
import javax.swing.*;
导入java.io.*;
导入java.util.array;
导入java.util.LinkedList;
导入java.util.List;
公共类Hil0{
公共静态void main(字符串[]args)引发IOException{
List highscore=newlinkedlist(Arrays.asList());
while(true){
字符串namn=JOptionPane.showInputDialog(null,“Välj namn”);
int a=Integer.parseInt(JOptionPane.showInputDialog(null,“Mellan 0 och vilket tal vill du gissa?”);
int=1+(int)(Math.random()*a);
int计数器=0;
整数计数=0;
计数++;
字符串输出=”;
虽然(正确){
计数器++;
字符串inputStr=JOptionPane.showInputDialog(null,“Gissa vilket tal(0-“+a+”));
int input=Integer.parseInt(inputStr);
如果(输入<总计){
showMessageDialog(null,“Talet:+input+”är för litet“);
}
否则如果(输入>总){
showMessageDialog(null,“Talet:+input+”är för stort“);
}
else if(输入==L){
高分。添加(namn+“”+计数器+“gissningar”+“(0-“+a+”));
showMessageDialog(null,“Rätt!”+“\n”+
“安塔尔·吉斯宁加:”+
计数器);
字符串janej=JOptionPane.showInputDialog(null,“Vill du spela igen?”);
if(janej.同等信号案例(“ja”)){
打破
}
else if(janej.equalsIgnoreCase(“nej”)){

对于(int i=0;i可能是因为每个循环中的变量
count
将等于1。请尝试在循环时将其替换为范围外的

看起来是这样的:

import javax.swing.*;
import java.io.*;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;

public class Hil0 {
    public static void main(String[]args) throws IOException {   

    List<String> highscore = new LinkedList<String>(Arrays.asList());
    int count = 0; // put it here instead 

    while(true) {

     String namn = JOptionPane.showInputDialog(null, "Välj namn");
       int a = Integer.parseInt(JOptionPane.showInputDialog(null, "Mellan       0 och vilket tal vill du gissa?"));         

     int slumptal = 1 + (int)(Math.random()*a);
     int counter = 0; 
    // int count = 0; move it out of while

     count++;
     String output = "";

     while(true) {         
     counter++;   

        String inputStr = JOptionPane.showInputDialog(null, "Gissa vilket tal (0-" + a +")");
        int input = Integer.parseInt(inputStr);

        if(input < slumptal) {
        JOptionPane.showMessageDialog(null, "Talet: " + input + " är för litet");      
        }
        else if(input > slumptal) {
        JOptionPane.showMessageDialog(null, "Talet: " + input + " är för stort");    
        }
        else if(input == slumptal) {
           highscore.add(namn + " " + counter + " gissningar" + " (0-" + a + ")");

           JOptionPane.showMessageDialog(null, "Rätt!" + "\n" + 
                                               "Antal gissningar: " + 
                                               counter);                                                                                                 

           String janej = JOptionPane.showInputDialog(null, "Vill du spela igen?");

           if(janej.equalsIgnoreCase("ja")) {
              break;               
           }
           else if(janej.equalsIgnoreCase("nej")) {
              for(int i = 0; i < count; i++) { // use < insetad of <= because you count from 0
              output += highscore.get(i) + "\n";
              }
              JOptionPane.showMessageDialog(null,"Resultat:" + "\n\n" + output);
              System.exit(0);              
           }                                                                                              
        }
     }
  }    
 } 
}
import javax.swing.*;
导入java.io.*;
导入java.util.array;
导入java.util.LinkedList;
导入java.util.List;
公共类Hil0{
公共静态void main(字符串[]args)引发IOException{
List highscore=newlinkedlist(Arrays.asList());
int count=0;//改为放在这里
while(true){
字符串namn=JOptionPane.showInputDialog(null,“Välj namn”);
int a=Integer.parseInt(JOptionPane.showInputDialog(null,“Mellan 0 och vilket tal vill du gissa?”);
int=1+(int)(Math.random()*a);
int计数器=0;
//int count=0;将其移出while
计数++;
字符串输出=”;
虽然(正确){
计数器++;
字符串inputStr=JOptionPane.showInputDialog(null,“Gissa vilket tal(0-“+a+”));
int input=Integer.parseInt(inputStr);
如果(输入<总计){
showMessageDialog(null,“Talet:+input+”är för litet“);
}
否则如果(输入>总){
showMessageDialog(null,“Talet:+input+”är för stort“);
}
else if(输入==L){
高分。添加(namn+“”+计数器+“gissningar”+“(0-“+a+”));
showMessageDialog(null,“Rätt!”+“\n”+
“安塔尔·吉斯宁加:”+
计数器);
字符串janej=JOptionPane.showInputDialog(null,“Vill du spela igen?”);
if(janej.同等信号案例(“ja”)){
打破
}
else if(janej.equalsIgnoreCase(“nej”)){

对于(int i=0;i