如何在加工中制作高尔夫模拟器程序?

How to make a golf simulator program in processing?

我正在用我的计算机科学进行高尔夫模拟 class,但我似乎无法完成以下代码:

import javax.swing.*;

int [][] golf = new int[4][9];
  void setup()
{
  JOptionPane.showMessageDialog(null, "Welcome to Golf Simulator" + '\n');
  int input = 0;
  do {
    String in = JOptionPane.showInputDialog("1. See the final results table" + '\n' + 
      "2. Enter the golf scores for Player 1 " + '\n' + "3. Enter the golf scores for Player 2" + 
      '\n' + "4. Enter the golf scores for Player 3" + '\n' + "5. Enter the golf scores for Player 4" +
      '\n' + "6. Results for holes" + '\n' + "7. Exit program", null);
    input = Integer.parseInt(in);  

    char c = in.charAt(0);

    switch(c) {
    case '1': 
      showgolf();
      break;

    case '2':
      for (int i = 0; i < golf.length; i++)
      {
        String inn = JOptionPane.showInputDialog("Please enter the golf scores for Player 1", null);
        int n = Integer.parseInt(inn);
        golf[i] = n;
      }
      break;

    case '3':
      for (int i = 0; i < golf.length; i++)
      {
        String inn = JOptionPane.showInputDialog("Please enter the golf scores for Player 2", null);
        int n = Integer.parseInt(inn);
        golf[i] = n;
      }
      break;

    case '4':
      for (int i = 0; i < golf.length; i++)
      {
        String inn = JOptionPane.showInputDialog("Please enter the golf scores for Player 3", null);
        int n = Integer.parseInt(inn);
        golf[i] = n;
      }
      break;

    case '5':
      for (int i = 0; i < golf.length; i++)
      {
        String inn = JOptionPane.showInputDialog("Please enter the golf scores for Player 4", null);
        int n = Integer.parseInt(inn);
        golf[i] = n;
      }
      break;

    case '6':
      for (int i = 0; i < golf.length; i++)
      {
        String inn = JOptionPane.showInputDialog("Please enter the hole number", null);
        int n = Interger.parseInt(inn);
         golf[i] = n;
      }
      break;

default:
    JOtionPane.showMessageDialog("Thank you for using Golf Simulator");   
    break;
}

}while(input != 7);
}

void showgin()
{
  String str = "";
  for(int i = 0; i < golf.length; i++)
  {
    str = str + win[i] + '\n';
  }
    JOptionPane.showMessageDialog(null, str);
}

正如我所说,我是初学者,所以我可能在这方面犯了无数错误。我应该使用 2D 数组,以便让 4 个不同的球员有 9 个洞。在这个模拟器上,需要有一个弹出窗口显示:

感谢您的帮助:)

当你有一个二维数组 golf[4][9] 时,golf.length 将 return 4。这是因为你基本上有一个长度为 4 的数组和长度为 9 的数组。所以 golf[0].length 会给你 9.
所以你的案例 2 - 5 应该是这样的:

for (int i = 0; i < golf[0].length; i++) {
    String inn = JOptionPane.showInputDialog("Please enter the golf scores for Player 1", null);
    int n = Integer.parseInt(inn);
    golf[0][i] = n; // use 0 for player 1, 1 for player 2, ...
}
break;

showgin 我想应该叫 showWin 必须为洞取一个数字。

void showWin(int hole){

在这里我们必须做一些逻辑来确定是两名玩家平局还是一名玩家获胜。我使用并列玩家列表来做到这一点。

int score = 0;
ArrayList<Integer> tied = new ArrayList<>();
for (int i = 0; i < golf.length; i++) {
    if(golf[i][hole] > score){ // new winnger
        score = golf[i][hole]; // adjust high score
        tied.clear(); // throw out every tied player
        tied.add(winner); // add the winner
    } else if (golf[i][hole] == score){ // we have a new tied player
        tied.add(i); // add him
    }
}

现在我们可以查看列表,如果其中有多个玩家,则平局,否则单个玩家获胜。

if(tied.size() <= 1){
    str += "Winner: " + winner + " with score: " + score;
} else {
    str += "Tied: ";
    for(int i : tied){ // add all tied player to the output
        str += i + " ";
    }
    str += "with score: " + score;
}