这里写采用面向对象的方式,编写程序模拟人和电脑玩剪刀石头布的游戏。人通过输入方式确定是出“剪刀”或“石头”或者“布”,电脑通过随机方式出,在main方式里面模拟人和电脑出拳,并判断人和电脑谁胜出.
要求
采用面向对象的方式,编写程序模拟人和电脑玩剪刀石头布的游戏。人通过输入方式确定是出“剪刀”或“石头”或者“布”,电脑通过随机方式出,在main方式里面模拟人和电脑出拳,并判断人和电脑谁胜出.
代码
import java.util.*;
/*
1 石头 2 剪刀 3 布
user computer score
x = x 0
1 2 1
1 3 -1
2 1 -1
2 3 1
3 1 1
3 2 -1
*/
public class finger_guessing
{
static int time=1;
int user;
int computer;
static int userScore=0;
static int computerScore=0;
public void setInit()//初始化界面
{
System.out.println("现在开始剪刀石头布");
System.out.println("1--石头 2--剪刀 3--布");
System.out.println("第"+time+"次游戏开始");
System.out.println("请输入1/2/3开始游戏。");
time++;
}
public void showUser()//显示玩家的选项
{
Scanner se= new Scanner (System.in);
user=se.nextInt();
while(user!=1&&user!=2&&user!=3)
{
System.out.println("输入错误,请重新输入");
user=se.nextInt();
}
if(user==3)
System.out.println("您选择出布");
else if(user == 1)
System.out.println("您选择出石头");
else if(user == 2)
System.out.println("您选择出剪刀");
}
public void showComputer()//显示电脑的选项
{
computer =(int)(Math.random()*10)%3 + 1;//随机 1 2 3
if(computer==3)
System.out.println("电脑选择出布");
else if(computer == 1)
System.out.println("电脑选择出石头");
else if(computer == 2)
System.out.println("电脑选择出剪刀");
}
public int compare()//和电脑比较
{
if(user==computer)
return 0;
else if(user==1)
{
if(computer==2)
return 1;
return -1;
}
else if(user==2)
{
if(computer==1)
return -1;
return 1;
}
else if(user==3)
{
if(computer==1)
return 1;
return -1;
}
return 10;
}
public void accumuscore(int f)//判断猜拳结果并记录分数
{
if(f==0) {
System.out.println("平局\n");
System.out.println("当前分数为:\n电脑:"+computerScore+"选手"+userScore);
}
else if(f==1){
System.out.println("获胜");
userScore++;
System.out.println("当前分数为:\n电脑:"+computerScore+"选手"+userScore);
}
else if (f==-1){
System.out.println("失败");
computerScore++;
System.out.println("当前分数为:\n电脑:"+computerScore+" 选手:"+userScore);
}
System.out.println("————————————————————————————————————————————————————————————————————————————————————————");
}
public void comparescore()//比较分数
{
System.out.println("电脑:选手 = "+computerScore+":"+userScore);
if(userScore > computerScore)
System.out.println("恭喜您获胜");
else if(userScore<computerScore)
System.out.println("您输给了电脑");
else if (userScore == computerScore)
System.out.println("平局");
}
public void Start()
{
System.out.println("是否开始游戏(y/n):");
Scanner se = new Scanner(System.in);
String choice=se.next();
while(choice.equals("y"))
{
setInit();
showUser();
showComputer();
int f=compare();
accumuscore(f);
System.out.print("\n是否开始下一轮(y/n): ");
choice=se.next();
}
System.out.println("游戏结束");
comparescore();
}
public static void main(String[] args) {
finger_guessing a;
a=new finger_guessing();
a.Start();
}
}