Java 被困在囚犯迪勒马身上
我必须做经典的囚犯的Dilema java代码 以下是说明: 表:Java 被困在囚犯迪勒马身上,java,Java,我必须做经典的囚犯的Dilema java代码 以下是说明: 表: 要求用户输入他们要做的事情:保持沉默或背叛。您必须使用JOptionPane下拉列表 查找并使用Java随机数生成器来确定您的朋友将要做什么 打印显示结果的消息。结果包括你们每个人做了什么(保持沉默或被背叛)以及对每个人的判决。信息应为一句或多句–否 代码S或B,但实际单词 使用JOptionPane进行输入和输出 这就是我到目前为止所做的: import javax.swing.*; public class Rich04
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()编写逻辑用于图形之前的调试。更容易专注于逻辑而不必担心其他东西。图形很容易在以后添加。我在尝试编译编辑时遇到一系列错误:忘记导入…无需担心我添加了导入语句。现在试试。是的,我意识到我忘了它们。谢谢你的帮助。我的老师是个天才,但她没有其实我们教的不多。我们只是直接开始编码,没有太多的解释。