今日做了人机猜拳小游戏,则应该分为四个类,人猜拳,电脑猜拳,三局两胜判断输赢,调用函数输出结果。四个类一定要在同一个包下
首先是人猜拳,有三种出拳:石头,剪刀,布。定义一个比分score,方便后面判断输赢。
package com.gam;
import java.util.Arrays;
import java.util.Scanner;
public class Person {
private String name;
private int score;
String fist;
int n;
public Person(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
public void addScore() {
this.score++;
}
public String fist() {
Scanner scan = new Scanner(System.in);
Scanner scan1 = new Scanner(System.in);
System.out.println("请输入出的招数:石头,剪刀,布");
String str = scan1.nextLine();
return str;
}
}
2.电脑出拳,此时电脑出拳是随机出的,所以要用到random,引入switch case来判断出石头,剪刀,布。
package com.gam;
import java.util.Random;
public class Compuetr {
private String name;
private int score;
public Compuetr(String name) {
this.name = name;
}
public String getName() {
return name;
}
public int getScore() {
return score;
}
public void addScore() {
this.score++;
}
public String fist() {
String str=null;
Random random = new Random();
int n = random.nextInt(3) + 1;
switch (n) {
case 1:
System.out.println("出布");
str = "布";
break;
case 2:
str = "石头";
break;
case 3:
str = "剪刀";
break;
}
return str;
}
}
3.玩游戏类,三句两胜,判断在什么情况下人获胜,在什么情况下电脑获胜,什么情况下平局,然后得到结果
package com.gam;
import java.util.Scanner;
public class game {
Person person;
Compuetr computer;
public game(){
person = new Person("zhangsan");
computer = new Compuetr("alpha");
}
public void playThreeTime() {
int count = 0;
while(count < 3) {
String pFist = person.fist();
String cFist = computer.fist();
if(pFist.equals("石头") && cFist.equals("剪刀")
||pFist.equals("剪刀") && cFist.equals("布") ||
pFist.equals("布") && cFist.equals("石头")) {
System.out.println(person.getName()+" 此局获胜");
person.addScore();
}else if(pFist.equals(cFist)) {
System.out.println("此局平局");
}else{
System.out.println("alpha获胜");
computer.addScore();
}
count++;
}
}
public void getResult(){
int pScore = person.getScore();
int cScore = computer.getScore();
if(pScore > cScore) {
System.out.println(person.getName() + ":最终结果赢了");
}else if(pScore == cScore){
System.out.println("平局");
}else{
System.out.println(computer.getName() + ":最终结果赢了");
}
System.out.println(person.getName()+":"+computer.getName()+
"===>"+person.getScore()+":"+computer.getScore());
}
public void start(){
while(true){
playThreeTime();
getResult();
System.out.println("是否继续?");
Scanner scan=new Scanner(System.in);
String str=scan.next();
if(str.equals("是")) {
continue;
}
else{
break;
}
}
}
}
4.制作一个界面,实现进入的过程,开始游戏
package com.gam;
import javax.swing.*;
import java.awt.*;
public class Framedemo {
public static void main(String[] args){
//创建窗体对象
Frame f=new Frame();
//设置窗体标题
f.setTitle("GameFist");
//设置窗口大小
f.show();
f.setBounds(400,200,400,300);
f.setVisible(true); //设置可见
game gam=new game();
JOptionPane.showMessageDialog(null,"=========欢迎来到猜拳游戏=====");
JOptionPane.showMessageDialog(null,"\"游戏规则:三局两胜,每局统计分数,判断\"+'\\n'+\"哪一方获胜,三局过后,得到最终胜利玩家\"+'\\n'+\"最后可以选择继续和结束游戏\"");
gam.start();
}
}
运行结果
进入游戏
共勉。