永发信息网

用java编一个程序,实现两个人玩“石头、剪刀、布”,要求用枚举类型定义石头、剪刀、布

答案:2  悬赏:10  手机版
解决时间 2021-03-17 02:45
  • 提问者网友:浩歌待明月
  • 2021-03-16 16:54
用java编一个程序,实现两个人玩“石头、剪刀、布”,要求用枚举类型定义石头、剪刀、布
最佳答案
  • 五星知识达人网友:長槍戰八方
  • 2021-03-16 17:36
public class Test {
public enum Hand{//猜拳枚举
ROCK,SCISSORS,PAPER;
public static Hand getHand(int index){
Hand hand = null;
switch (index) {
case 0:
hand = Hand.ROCK;
break;
case 1:
hand = Hand.SCISSORS;
break;
case 2:
hand = Hand.PAPER;
break;
default:
hand = Hand.ROCK;
break;
}
return hand;
}
}

public static void main(String[] args) {
//两个人猜拳5次
for (int i = 0; i < 5; i++) {
Hand hand1 = Hand.getHand((int)(Math.random()*3));
Hand hand2 = Hand.getHand((int)(Math.random()*3));
judge(hand1, hand2);
}

}

private static void judge(Hand hand1,Hand hand2){
if(hand1 == Hand.ROCK){
if(hand2 == Hand.ROCK){
System.out.println("第一个出拳头,第二个出拳头,平局");
}else if(hand2 == Hand.SCISSORS){
System.out.println("第一个出拳头,第二个出剪刀,第一个赢");
}else if(hand2 == Hand.PAPER){
System.out.println("第一个出拳头,第二个出布,第二个赢");
}
}else if(hand1 == Hand.SCISSORS){
if(hand2 == Hand.ROCK){
System.out.println("第一个出剪刀,第二个出拳头,第二个赢");
}else if(hand2 == Hand.SCISSORS){
System.out.println("第一个出剪刀,第二个出剪刀,平局");
}else if(hand2 == Hand.PAPER){
System.out.println("第一个出剪刀,第二个出布,第一个赢");
}
}else if(hand1 == Hand.PAPER){
if(hand2 == Hand.ROCK){
System.out.println("第一个出布,第二个出拳头,第一个赢");
}else if(hand2 == Hand.SCISSORS){
System.out.println("第一个出布,第二个出剪刀,第二个赢");
}else if(hand2 == Hand.PAPER){
System.out.println("第一个出布,第二个出布,平局");
}
}
}
}应该不是最优解决办法,先这么着把
追问大神谢谢啦可是得是从键盘输入拳头追答main函数里面写个scanner, 接收输入0:石头 1:剪刀 2布 不就行了追问对,我已经改了追答请采纳
全部回答
  • 1楼网友:北城痞子
  • 2021-03-16 18:46
package TestApp;

import java.awt.EventQueue;

public class testApp {
enum Signal {
Stones, Scissors, Cloth
}
public class TrafficLight {
Signal play = Signal.Cloth;
public String willWin() {
switch (play) {
case Cloth:
play = Signal.Stones;
break;
case Scissors:
play = Signal.Cloth;
break;
case Stones:
play = Signal.Scissors;
break;
}
return play.toString();
}
}

private JFrame frame;
String player1;
String player2;


public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
testApp window = new testApp();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}


public testApp() {
initialize();
}


private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 310);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
SpringLayout springLayout = new SpringLayout();
frame.getContentPane().setLayout(springLayout);

JLabel lblPlayer = new JLabel("player1:");
springLayout.putConstraint(SpringLayout.NORTH, lblPlayer, 70, SpringLayout.NORTH, frame.getContentPane());
springLayout.putConstraint(SpringLayout.WEST, lblPlayer, 28, SpringLayout.WEST, frame.getContentPane());
frame.getContentPane().add(lblPlayer);

final JButton btnNewButton = new JButton("Stones");
springLayout.putConstraint(SpringLayout.NORTH, btnNewButton, 6, SpringLayout.SOUTH, lblPlayer);
springLayout.putConstraint(SpringLayout.EAST, btnNewButton, 0, SpringLayout.EAST, lblPlayer);
frame.getContentPane().add(btnNewButton);

final JButton btnNewButton_1 = new JButton("Scissors");
springLayout.putConstraint(SpringLayout.SOUTH, btnNewButton_1, -119, SpringLayout.SOUTH, frame.getContentPane());
springLayout.putConstraint(SpringLayout.EAST, btnNewButton_1, 0, SpringLayout.EAST, lblPlayer);
frame.getContentPane().add(btnNewButton_1);

final JButton btnStones = new JButton("Stones");
springLayout.putConstraint(SpringLayout.EAST, btnStones, -116, SpringLayout.EAST, frame.getContentPane());
frame.getContentPane().add(btnStones);

final JButton btnScissors = new JButton("Scissors");

springLayout.putConstraint(SpringLayout.NORTH, btnScissors, 0, SpringLayout.NORTH, btnNewButton_1);
springLayout.putConstraint(SpringLayout.EAST, btnScissors, 0, SpringLayout.EAST, btnStones);
frame.getContentPane().add(btnScissors);

final JButton btnCloth_1 = new JButton("Cloth");

springLayout.putConstraint(SpringLayout.NORTH, btnCloth_1, 6, SpringLayout.SOUTH, btnScissors);
springLayout.putConstraint(SpringLayout.WEST, btnCloth_1, 0, SpringLayout.WEST, btnStones);
frame.getContentPane().add(btnCloth_1);

JLabel lblPlayer_1 = new JLabel("player2\uFF1A");
springLayout.putConstraint(SpringLayout.NORTH, btnStones, 6, SpringLayout.SOUTH, lblPlayer_1);
springLayout.putConstraint(SpringLayout.NORTH, lblPlayer_1, 0, SpringLayout.NORTH, lblPlayer);
springLayout.putConstraint(SpringLayout.EAST, lblPlayer_1, 0, SpringLayout.EAST, btnStones);
frame.getContentPane().add(lblPlayer_1);

final JButton btnPlay = new JButton("showResult");

springLayout.putConstraint(SpringLayout.WEST, btnPlay, 126, SpringLayout.WEST, frame.getContentPane());
springLayout.putConstraint(SpringLayout.SOUTH, btnPlay, -60, SpringLayout.SOUTH, frame.getContentPane());
frame.getContentPane().add(btnPlay);
btnPlay.setVisible(false);

final JButton btnCloth = new JButton("Cloth");
springLayout.putConstraint(SpringLayout.NORTH, btnCloth, 6, SpringLayout.SOUTH, btnNewButton_1);
springLayout.putConstraint(SpringLayout.WEST, btnCloth, 0, SpringLayout.WEST, lblPlayer);
frame.getContentPane().add(btnCloth);

final JLabel lblResult = new JLabel("result:");
springLayout.putConstraint(SpringLayout.NORTH, lblResult, 18, SpringLayout.SOUTH, btnPlay);
springLayout.putConstraint(SpringLayout.WEST, lblResult, 147, SpringLayout.WEST, frame.getContentPane());
springLayout.putConstraint(SpringLayout.EAST, lblResult, 0, SpringLayout.EAST, btnStones);
frame.getContentPane().add(lblResult);

JButton btnPlay_1 = new JButton("play");
springLayout.putConstraint(SpringLayout.NORTH, btnPlay_1, 28, SpringLayout.NORTH, frame.getContentPane());
springLayout.putConstraint(SpringLayout.WEST, btnPlay_1, 0, SpringLayout.WEST, btnPlay);
frame.getContentPane().add(btnPlay_1);

btnNewButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
btnNewButton.setVisible(false);
btnNewButton_1.setVisible(false);
btnCloth.setVisible(false);
player1 = btnNewButton.getText();
if (player2 != null) {
btnPlay.setVisible(true);
}
}
});
btnCloth.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
btnNewButton.setVisible(false);
btnNewButton_1.setVisible(false);
btnCloth.setVisible(false);
player1 = btnCloth.getText();
if (player2 != null) {
btnPlay.setVisible(true);
}
}
});
btnNewButton_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
btnNewButton.setVisible(false);
btnNewButton_1.setVisible(false);
btnCloth.setVisible(false);
player1 = btnNewButton_1.getText();
if (player2 != null) {
btnPlay.setVisible(true);
}
}
});

btnStones.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
btnStones.setVisible(false);
btnScissors.setVisible(false);
btnCloth_1.setVisible(false);
player2 = btnStones.getText();
if (player1 != null) {
btnPlay.setVisible(true);
}
}
});

btnScissors.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
btnStones.setVisible(false);
btnScissors.setVisible(false);
btnCloth_1.setVisible(false);
player2 = btnScissors.getText();
if (player1 != null) {
btnPlay.setVisible(true);
}
}
});

btnCloth_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
btnStones.setVisible(false);
btnScissors.setVisible(false);
btnCloth_1.setVisible(false);
player2 = btnCloth_1.getText();
if (player1 != null) {
btnPlay.setVisible(true);
}
}
});

btnPlay.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
TrafficLight trafficLight = new TrafficLight();
if(player1.equals("Stones")){
trafficLight.play = Signal.Stones;
}else if(player1.equals("Scissors")){
trafficLight.play = Signal.Scissors;
}else{
trafficLight.play = Signal.Cloth;
}
String win = trafficLight.willWin();
System.out.println(win);
if(player2.equals(win)){
lblResult.setText("result:player1 win");
}else if(player2.equals(player1)){
lblResult.setText("result:Tie");
}else{
lblResult.setText("result:player2 win");
}

}
});

btnPlay_1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
btnNewButton.setVisible(true);
btnNewButton_1.setVisible(true);
btnCloth.setVisible(true);
btnStones.setVisible(true);
btnScissors.setVisible(true);
btnCloth_1.setVisible(true);
btnPlay.setVisible(false);
player1 = null;
player2 = null;
lblResult.setText("result:");
}
});
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯