Java 被困在囚犯迪勒马身上

Java 被困在囚犯迪勒马身上,java,Java,我必须做经典的囚犯的Dilema java代码 以下是说明: 表: 要求用户输入他们要做的事情:保持沉默或背叛。您必须使用JOptionPane下拉列表 查找并使用Java随机数生成器来确定您的朋友将要做什么 打印显示结果的消息。结果包括你们每个人做了什么(保持沉默或被背叛)以及对每个人的判决。信息应为一句或多句–否 代码S或B,但实际单词 使用JOptionPane进行输入和输出 这就是我到目前为止所做的: import javax.swing.*; public class Rich04

我必须做经典的囚犯的Dilema java代码

以下是说明:

表:

  • 要求用户输入他们要做的事情:保持沉默或背叛。您必须使用JOptionPane下拉列表

  • 查找并使用Java随机数生成器来确定您的朋友将要做什么

  • 打印显示结果的消息。结果包括你们每个人做了什么(保持沉默或被背叛)以及对每个人的判决。信息应为一句或多句–否 代码S或B,但实际单词

  • 使用JOptionPane进行输入和输出

  • 这就是我到目前为止所做的:

    import javax.swing.*;
    
    public class Rich04
    {
    
    
    public static void main (String[] args)  
      {
    
        String[] ddList = {"Betray", "Stay silent"}; 
        Object selectedValue;  
        int code;
    
        selectedValue = JOptionPane.showInputDialog(
                    null,
                    "Choose one",  
                    "Prisoner's Dilema",                 
                          JOptionPane.QUESTION_MESSAGE,  
                          null,                 
                          ddList,                
                    ddList[1]);             
    
        for (int i=0; i<ddList.length; i++)
            if (ddList[i].equals(selectedValue))
    
                JOptionPane.showMessageDialog(
                    null,
                    "The user selected " + ddList[i],
                    "Decision",
                    JOptionPane.INFORMATION_MESSAGE);
    
     }
    
    } 
    
    import javax.swing.*;
    公共课Rich04
    {
    公共静态void main(字符串[]args)
    {
    字符串[]ddList={“背叛”,“保持沉默”};
    对象选择值;
    int代码;
    selectedValue=JOptionPane.showInputDialog(
    无效的
    “选择一个”,
    “囚犯的困境”,
    JOptionPane.QUESTION\u消息,
    无效的
    达利斯特,
    ddList[1]);
    
    对于(int i=0;i请注意,支付表实际上是一个2x2数组。因此,将游戏结果存储在每个单元格中。然后将用户的选择和朋友的选择检索为0(静默)或1(背叛)。这些是2x2数组中的索引。最后,使用这些索引获得结果:

    import java.util.Random;
    import javax.swing.*;
    
    public class Rich04
    {
        public static void main (String[] args)  
        {
    
            String[] ddList = {"Silent", "Betray"}; 
            String[][] sentenceMatrix = { 
                    {"Both players chose to remain silent. Both get 1 year", "You stayed silent. Your friend betrayed. 5 for you; 0 for friend"},
                    {"You betrayed. Your friend stayed silent. 0 for you; 5 for friend", "Both players betrayed. Both get 3 years"}
            };  
    
            //get user's choice
            Object selectedValue = JOptionPane.showInputDialog(
                    null,
                    "Choose one",  
                    "Prisoner's Dilema",                 
                    JOptionPane.QUESTION_MESSAGE,  
                    null,                 
                    ddList,                
                    ddList[1]);
            int myChoiceNum = 0;
            if (((String)selectedValue).equalsIgnoreCase("Silent"))
                myChoiceNum = 0;
            else
                myChoiceNum = 1;
    
            //get friend's choice
            Random rand = new Random();
            int friendChoiceNum = rand.nextInt(2);
            String sentence = sentenceMatrix[myChoiceNum][friendChoiceNum];
    
            //output result
            JOptionPane.showMessageDialog(
                    null,
                    sentence,
                    "Decision",
                    JOptionPane.INFORMATION_MESSAGE);
        }
    } 
    

    。我只理解逻辑,而不是代码Josh,这可能是使用布尔逻辑的好时机。和(
    &&
    ),而不是(
    )或(
    |
    ),XOR(
    ^
    )可能很有用。另外,一般提示:我首先使用System.out.println()编写逻辑用于图形之前的调试。更容易专注于逻辑而不必担心其他东西。图形很容易在以后添加。我在尝试编译编辑时遇到一系列错误:忘记导入…无需担心我添加了导入语句。现在试试。是的,我意识到我忘了它们。谢谢你的帮助。我的老师是个天才,但她没有其实我们教的不多。我们只是直接开始编码,没有太多的解释。