人机猜拳互动游戏的开发主要功能
1) 选取对战角色
2) 猜拳
3) 记录分数
//抽象出电脑与玩家共同属性和行为
abstract class Player {
String name;
int score;
public Player(){
name="名字";
score=0;
}
public abstract int showFist();
}
//完成电脑类
public class Computer extends Player{
@Override
public int showFist() {
int show=(int)(Math.random()*10)%3+1;
switch (show) {
case 1:
System.out.println(name+"出拳:剪刀");
break;
case 2:
System.out.println(name+"出拳:石头");
break;
case 3:
System.out.println(name+"出拳:布");
break;
}
return show;
}
}
//实现玩家类
import java.util.Scanner;
public class Person extends Player{
public int showFist(){
@SuppressWarnings("resource")
Scanner input=new Scanner(System.in);
System.out.print("\n请出拳: 1剪刀 2石头 3布 (输入相应数字) :");
int show=input.nextInt();
switch(show){
case 1:
System.out.println("你出拳:剪刀");
break;
case 2:
System.out.println("你出拳:石头");
break;
case 3:
System.out.println("你出拳:布");
break;
}
return show;
}
}
//主要的游戏类
import java.util.Scanner;
public class Game {
Person person;
Computer computer;
int count = 0;
public void initial() {
person = new Person();
computer = new Computer();
count=0;
}
public void startGame() {
System.out.println("-------------欢迎进入游戏世界-----------------");
System.out.println("*******************************************");
System.out.println("****************猜拳,开始********************");
System.out.println("*******************************************");
System.out.println("请选择对方角色:(1:刘备,2:孙权,3:曹操)");
@SuppressWarnings("resource")
Scanner input = new Scanner(System.in);
int role = input.nextInt();
if (role == 1) {
computer.name="刘备";
}else if (role == 2) {
computer.name="孙权";
}else if (role== 3) {
computer.name="曹操";
}
System.out.println("请输入你的名字:");
@SuppressWarnings("resource")
Scanner personname = new Scanner(System.in);
String pname = personname.next();
person.name=pname;
System.out.println("要开始么?(y/n)");
@SuppressWarnings("resource")
Scanner queding = new Scanner(System.in);
String con = queding.next();
int perFist;
int compFist;
while (con.equals("y") ) {
perFist=person.showFist();
compFist=computer.showFist();
if((perFist==1&&compFist==1)||
(perFist==2&&compFist==2)||
(perFist==3&&compFist==3)){
System.out.println("结果:和局,再来一局吧!\n");
}else if((perFist==1 && compFist==3)||
(perFist==2 && compFist==1)||
(perFist==3 && compFist== 2)){
System.out.println("结果:恭喜,你赢了!");
person.score++;
}else{
System.out.println("结果:你输了!");
computer.score++;
}
count++;
System.out.print("\n是否开始下一轮(y/n):");
con=input.next();
}
showResult();
}
private void showResult() {
// TODO Auto-generated method stub
System.out.println("--------------------------------");
System.out.println(computer.name+" VS "+person.name);
System.out.println("对战次数:"+count);
System.out.println("姓名\t得分");
System.out.println(computer.name+"\t"+computer.score);
System.out.println(person.name+"\t"+person.score);
}
}
//开始游戏
public class PlayGame {
public static void main(String[] args) {
Game game = new Game();
game.initial();
game.startGame();
}
}
代码比较简单就不写详细解析了