java实现的人机猜拳游戏

定义玩家类

package 猜拳游戏;

import java.util.Scanner;

public class PeoplePlayer {
	String name="马化腾";
	int defeng;
	public int play() {
		Scanner sc=new Scanner(System.in);
		System.out.println("请玩家出拳:0(石头)·1(剪刀)·2(布)");
		int num=sc.nextInt();
		while(num!=0&&num!=1&&num!=2) {
			System.out.println("**你的输入有误,请重新输入!");
			System.out.println("请玩家出拳:0(石头)·1(剪刀)·2(布)");
			num=sc.nextInt();
		}
		switch(num) {
		case 0:
			System.out.println("你选择了石头");
			break;
		case 1:
			System.out.println("你选择了剪刀");
			break;
		case 2:
			System.out.println("你选择了布");
			break;
		}
		return num;
	}
}

定义电脑类

package 猜拳游戏;

import java.util.Scanner;

public class ComputerPlayer {
	/*
	 * 石头(0)剪刀(1)布(2)
	 */
	String name="惠普";
	int defeng;
	public int play() {
		System.out.println("请电脑出拳:0(石头)·1(剪刀)·2(布)");
		int num=(int) (Math.random()*3);
		switch(num) {
		case 0:
			System.out.println("电脑选择了石头");
			break;
		case 1:
			System.out.println("电脑选择了剪刀");
			break;
		case 2:
			System.out.println("电脑选择了布");
			break;
		}
		return num;
	}
}

定义游戏类

package 猜拳游戏;

import java.util.Scanner;

public class Game {
	ComputerPlayer com;
	PeoplePlayer peo;
	int count;//计算轮数
	public Game() {
		// TODO Auto-generated constructor stub
		com=new ComputerPlayer();
		peo=new PeoplePlayer();
		count=0;
	}
	public void playgame() {
		System.out.println("*********************************");
		System.out.println("*          欢迎玩猜拳游戏                            *");
		System.out.println("*   规则:0(石头)·1(剪刀)·2(布)        *");
		System.out.println("*             祝你好运                                *");
		System.out.println("*********************************");
		System.out.println("**请设置你的游戏昵称:");
		Scanner sc=new Scanner(System.in);
	    String name=sc.nextLine();
	    peo.name=name;
	    System.out.println("**您的昵称是:"+peo.name);
	    System.out.println("**请选择你的对手:");
	    System.out.println("**0(c乔布斯)·1(c马云)·2(boss老徐)**");
	    int comname=sc.nextInt();
	    switch(comname) {
	    case 0:
	    	com.name="c乔布斯";
	    	System.out.println("**您的对手是:"+com.name);
	    	break;
	    case 1:
	    	com.name="c马云";
	    	System.out.println("您的对手是:"+com.name);
	    	break;
	    case 2:
	    	com.name="boss老徐";
	    	System.out.println("**您的对手是:"+com.name);
	    	break;
	    }
	    System.out.println("**准备好开始玩游戏了吗?y(yes)/ n(no)");
	    String c=sc.next();
	    if(c.equals("n")) {
	    	System.out.println("你这个人真的无趣唉!要不要试玩一下!y(yes)/ n(no)");
	    	c=sc.next();
	    	if(c.equals("n")) {
	    		System.out.println("好吧,确实是个无趣的人,拜拜!");
	    		return;
	    	}
	    }
	    int playnum=0;
	    int comnum=0;
	    while(c.equals("y")) {
	    	count++;
	    	playnum=peo.play();
	    	comnum=com.play();
	    	if((playnum==0&&comnum==0)||(playnum==1&&comnum==1)||
	    			(playnum==2&&comnum==2)) {
	    		System.out.println("**第"+count+"轮结果:平局,继续加油!!!");
	    	}else if((playnum==0&&comnum==1)||(playnum==1&&comnum==2)||
	    			(playnum==2&&comnum==0)) {
	    		peo.defeng++;
	    		System.out.println("**第"+count+"轮结果·玩家:"+peo.name+"赢,继续加油!!!");
	    	}else {
	    		com.defeng++;
	    		System.out.println("**第"+count+"轮结果·电脑:"+com.name+"赢,继续加油!!!");
	    	}
	    	System.out.println("**要不再来一次?y(yes)/ n(no)");
	    	c=sc.next();
	    }
	    tongjijieguo();
	}
	private void tongjijieguo() {
		// TODO Auto-generated method stub
		int peowinscore=peo.defeng;
		int comwinscore=com.defeng;
		System.out.println("##################################");
		System.out.println("**玩家:"+peo.name+"VS"+"电脑"+com.name+"总共大战"+count+"回合!");
		if(peowinscore>comwinscore) {
			System.out.println("**终极结果:玩家赢,恭喜!");
		}else if(comwinscore>peowinscore) {
			System.out.println("**终极结果:电脑赢,没事,再接再厉!");
		}else {
			System.out.println("**终极结果:平局,已经很棒啦!");
		}
		System.out.println("##################################");
	}	
}

效果展示

效果一:

在这里插入图片描述

效果二:

在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值