Java Jeopardy游戏中计数器和分数变量的帮助?

Java Jeopardy游戏中计数器和分数变量的帮助?,java,Java,所以我试着做一个课程,在我的危险计划中保持分数。我的问题是如何在responsecompt方法中保持变量的持久性,以及如何增加或减少分数中的变量。下面是我到目前为止的代码 import java.util.*; import java.io.*; public class Game { public static void main(String[] args) throws java.io.IOException { menu(); String[] jeoCategory =

所以我试着做一个课程,在我的危险计划中保持分数。我的问题是如何在responsecompt方法中保持变量的持久性,以及如何增加或减少分数中的变量。下面是我到目前为止的代码

import java.util.*;
import java.io.*;
public class Game
{
public static void main(String[] args)
throws java.io.IOException
{
    menu();
    String[] jeoCategory = new String[]{"Brands", "Bands", "Lands", "Fact?", "France"};
    printCategory(jeoCategory);
    String[][] jeoBoard = new String[25][3];
    loadFile(jeoBoard);
}
public static void printCategory(String[] jeoCategory)
{
    for(int i = 0; i < 5; i++)
    {
        System.out.print("\t" + jeoCategory[i] + "\t");
        if(i > 3)
        {
            System.out.println();
        }
    }
}
public static void menu()
{
    System.out.println("Welcome to Jeopardy " + "\n" +
                       "Enter the correct answer and win 10 points" + "\n" +
                       "Enter the incorrect answer and lose 10 points" + "\n");
}
public static void loadFile(String[][] jeoBoard)
throws java.io.IOException
{
    String filName = " ";
    filName = "C:\\temp\\JeopardyValues.txt";
    Scanner input = new Scanner(new File(filName));
    for(int row = 0; row < 25; row++)
    {
        for(int col = 0; col < 3; col++)
        {
            jeoBoard[row][col] = input.nextLine();
        }
    }
    input.close();
    printBoard(jeoBoard);
}
public static void printBoard(String[][] jeoBoard)
{
    for(int r = 0; r < 25; r++)
    {
        System.out.print("\t" + jeoBoard[r][2] + "\t");
        if(r == 4 || r == 9 || r == 14 || r == 19 || r == 24)
        {
            System.out.println("\n");
        }
    }
    responsePrompt(jeoBoard);
}
public static void responsePrompt(String[][] jeoBoard)
{
    Scanner input = new Scanner(System.in);
    Scanner resp = new Scanner(System.in);
    int score = 0;
    int counter = 0;
    for(int i = 0; i < 25; i++)
    {  
        System.out.print("Pick a question: ");
        int ans = input.nextInt();

        if(ans > 25 || ans < 0)
        {
            System.out.println("Invalid selection, please choose a number on the board");
            break;
        }          
        if(jeoBoard[ans - 1][2].equals(" "))
        {
            System.out.println("That question has already been answered, please pick another");
            break;
        }
        System.out.println(jeoBoard[ans - 1][0]);
        System.out.print("Your answer: ");
        String questResponse = resp.nextLine();
        if(questResponse.equalsIgnoreCase(jeoBoard[ans - 1][1]))
        {
            score++;
            System.out.println("Correct " + "\t" + score);
            jeoBoard[ans - 1][2] = " ";
            counter++;
        }
        else
        {
            score--;
            System.out.println("Incorrect " + "\t" + score);
            jeoBoard[ans - 1][2] = " ";
            counter++;
        }
        System.out.print("\n");
        printBoard(jeoBoard);
        if(counter == 25)
        {
            break;
        }                 
    }
    System.out.println(" ");
}
import java.util.*;
导入java.io.*;
公开课游戏
{
公共静态void main(字符串[]args)
抛出java.io.IOException
{
菜单();
String[]jeocegory=新字符串[]{“品牌”、“乐队”、“土地”、“事实?”、“法国”};
印刷品类别(印刷品类别);
字符串[][]jeoBoard=新字符串[25][3];
加载文件(电路板);
}
公共静态void打印类别(字符串[]类别)
{
对于(int i=0;i<5;i++)
{
系统输出打印(“\t”+i]+“\t”);
如果(i>3)
{
System.out.println();
}
}
}
公共静态无效菜单()
{
System.out.println(“欢迎来到Jeopardy”+“\n”+
“输入正确答案并赢得10分”+“\n”+
“输入错误答案,并损失10分”+“\n”);
}
公共静态void加载文件(字符串[][]
抛出java.io.IOException
{
字符串filName=“”;
filName=“C:\\temp\\JeopardyValues.txt”;
扫描仪输入=新扫描仪(新文件(文件名));
用于(int行=0;行<25;行++)
{
for(int col=0;col<3;col++)
{
jeoBoard[row][col]=input.nextLine();
}
}
input.close();
印刷板;
}
公共静态无效打印板(字符串[][]打印板)
{
对于(int r=0;r<25;r++)
{
系统输出打印(“\t”+jeoBoard[r][2]+”\t”);
如果(r==4 | | r==9 | | r==14 | | r==19 | | r==24)
{
System.out.println(“\n”);
}
}
负责人报告(董事会);
}
公共静态void responsecompt(字符串[][]jeoBoard)
{
扫描仪输入=新扫描仪(System.in);
Scanner resp=新扫描仪(系统输入);
智力得分=0;
int计数器=0;
对于(int i=0;i<25;i++)
{  
System.out.print(“选择一个问题:”);
int ans=input.nextInt();
如果(ans>25 | | ans<0)
{
System.out.println(“选择无效,请在板上选择一个数字”);
打破
}          
如果(A[ans-1][2]。等于(“”)
{
System.out.println(“这个问题已经回答了,请选择另一个”);
打破
}
System.out.println(jeoBoard[ans-1][0]);
系统输出打印(“您的答案:”);
字符串questResponse=resp.nextLine();
if(请求响应同等信号案例(董事会[ans-1][1]))
{
分数++;
System.out.println(“正确的”+“\t”+分数);
董事会[ans-1][2]=”;
计数器++;
}
其他的
{
分数--;
System.out.println(“错误的”+“\t”+分数);
董事会[ans-1][2]=”;
计数器++;
}
系统输出打印(“\n”);
印刷板;
如果(计数器==25)
{
打破
}                 
}
System.out.println(“”);
}

}

如果您不希望每次调用
responsePrompt
时将
分数设置为0,则应将其设置为全局变量(方法之外),并且中断将退出
for
循环。我不确定您是否想这样做,我相信您正在尝试让用户输入另一个有效的数字。你应该做一个测试

  while (ans > 25 || ans < 0 || jeoBoard[ans - 1][2].equals(" "))
{
    System.out.println("Invalid selection, please choose a number on the board");
    ans = input.nextInt();
}
while(ans>25 | | ans<0 | |[ans-1][2]。等于(“”)
{
System.out.println(“选择无效,请在板上选择一个数字”);
ans=input.nextInt();
}

我希望这会有所帮助。

将您想要持久化的变量设置为
静态
。警告-我还没有看过你的代码,只是一条基于问题标题的随机建议。