定义玩家类
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 {
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() {
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() {
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("##################################");
}
}
效果展示
效果一:
效果二: