我必须做经典的Prisoner's Dilema java代码。
以下是说明:
表:
要求用户输入他们要做的事情:保持沉默或背叛。您必须使用JOptionPane下拉列表。
查找并使用Java随机数生成器来确定您的朋友将要做什么。
打印显示结果的消息。结果包括你们每个人所做的事情(保持沉默或背叛)以及每个人的判刑。该消息应该是一个句子或更多 - 没有 代码S或B,但实际的单词。
使用JOptionPane输入和输出
这是我到目前为止所做的:
self.navigationItem.title = "foo"
我知道这不是很多,但我不知道下一步该做什么
答案 0 :(得分:1)
请注意,支付表实际上是一个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);
}
}