剪刀石头布
发布日期:2021-05-07 04:40:36 浏览次数:25 分类:精选文章

本文共 3927 字,大约阅读时间需要 13 分钟。

(一)控制台版本

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();	}}
效果图:

上一篇:Java 栈Sack和队列Queue的用法
下一篇:只有头指针的单链表逆序

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月26日 18时14分36秒