(一)控制台版本
import java.util.Random;
import java.util.Scanner;
public class Test{
public static void main(String[] args)
{
Random r = new Random(); //建筑随机器
Scanner c = new Scanner(System.in);
Scanner s = new Scanner(System.in);
System.out.println("start game? y/n");
System.out.println("0:剪刀 1:石头 2:布 ");
String ch = c.next();
if(ch.equals("n")) {System.out.println("over");return;}
int cho = 0;
int cho_m;
while(ch.equals("y"))
{
System.out.println("make a choice.!");
cho = s.nextInt();
if(cho>=3) {System.out.println("请好好选择!");continue;}
//用户选择
System.out.print("u are: ");
if(cho==0) {System.out.print("剪刀");}
if(cho==1) {System.out.print("石头");}
if(cho==2) {System.out.print("布");}
System.out.println();
//电脑选择
cho_m = r.nextInt(3); //产生随机数
System.out.print("computer are: ");
if(cho_m==0) {System.out.print("剪刀");}
if(cho_m==1) {System.out.print("石头");}
if(cho_m==2) {System.out.print("布");}
System.out.println();
//判断
if(cho == cho_m) {System.out.print("打平");}
else if(cho==0&&cho_m==1 || cho==1&&cho_m==2 || cho==2&&cho_m==0 ){System.out.print("u lose");}
else if(cho==0&&cho_m==2 || cho==1&&cho_m==0 || cho==2&&cho_m==1){System.out.print("u win");}
System.out.println();
System.out.println();
System.out.println("start game? y/s");
ch = c.next();
}
}
}
(二)GUI版本
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import java.util.Scanner;
public class FrameTest {
Random random = new Random(3); //建立随机数
int com_Do;
int user_Do;
Frame f = new Frame("剪刀石头布");
Panel p_user = new Panel(); //用户部分
Panel p_com = new Panel(); //电脑部分
Panel p_result = new Panel(); //显示结果部分
Panel p_end = new Panel(); //开始按钮
//TestField
TextField t1 = new TextField(8); //用户部分文本框
TextField t2 = new TextField(8); //电脑部分文本框
TextField t3 = new TextField(8); //结果
public void layout_Init()
{
p_user.add(t1);
p_com.add(t2);
p_result.add(t3);
Button_init();
f.add(p_user,BorderLayout.WEST);
f.add(p_com,BorderLayout.EAST);
f.add(p_result,BorderLayout.CENTER);
f.add(p_end,BorderLayout.NORTH);
f.pack();
f.setVisible(true); //显示图像,有这句后,程序不会运行完就自动结束
}
public void Button_init()
{
Button bu1 = new Button("剪刀");
Button bu2 = new Button("石头");
Button bu3 = new Button("布");
Button restart = new Button("结束");
bu1.addActionListener(new Scissor());
bu2.addActionListener(new Rock());
bu3.addActionListener(new Paper());
restart.addActionListener(new Start());
//add the Buttons to the Panel
p_user.add(bu1);
p_user.add(bu2);
p_user.add(bu3);
p_end.add(restart);
}
//computer choice
public void Computer_choice()
{
com_Do = random.nextInt(3);
System.out.print("com:"+com_Do);
if(com_Do == 0)
t2.setText("剪刀");
if(com_Do == 1)
t2.setText("石头");
if(com_Do == 2)
t2.setText("布");
judge();
}
//judge win or lose
public void judge()
{
if(com_Do == user_Do)
t3.setText("打平");
if(com_Do==0 && user_Do==1 || com_Do==1 && user_Do==2 ||com_Do==2&&user_Do==0)
t3.setText("你赢了!");
if(com_Do==0 && user_Do==2 || com_Do==1 && user_Do==0 ||com_Do==2&&user_Do==1)
t3.setText("你输了!");
}
//define Events Listener
class Scissor implements ActionListener
{
public void actionPerformed(ActionEvent e) {
t1.setText("剪刀");
user_Do = 0;
System.out.print("user:"+user_Do);
Computer_choice();
}
}
class Rock implements ActionListener
{
public void actionPerformed(ActionEvent e) {
t1.setText("石头");
user_Do = 1;
System.out.print("user:"+user_Do);
Computer_choice();
}
}
class Paper implements ActionListener
{
public void actionPerformed(ActionEvent e) {
t1.setText("布");
user_Do = 2;
System.out.print("user:"+user_Do);
Computer_choice();
}
}
class Start implements ActionListener
{
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
}
public static void main(String[] args)
{
new FrameTest().layout_Init();
}
}
效果图: