Java自制人机小游戏——————————剪刀、石头、布
package com.hello.test; import java.util.Scanner; public class TestGame { public static void main(String[] args) { Player p = new Player() ; //实例化玩家对象 Game g = new Game(p) ;//实例化游戏对象 g.startGame();//调用方法 } } //游戏类 class Game { private Player p ; //设置玩家 public Game(Player p) { this.p =p ; } //制定游戏规则 public int rule(String s1 ,String s2) { if(s1.equals(s2)) //先将电脑跟人出拳相同情况拿出 { return 0 ; } if(s1.equals("剪刀")) { if(s2.equals("布")) { return 1 ; } if(s2.equals("石头")) { return -1 ; } } if(s1.equals("石头")) { if(s2.equals("布")) { return -1 ; } if(s2.equals("剪刀")) { return 1 ; } } if(s1.equals("布")) { if(s2.equals("剪刀")) { return -1 ; } if(s2.equals("石头")) { return 1 ; } } return 0; } public boolean panduan(String s) { if("剪刀".equals(s)||"布".equals(s)||"石头".equals(s)||"esc".equals(s)) { return true ; } else { return false ; } } //游戏开始方法 public void startGame() { System.out.println("开始游戏"); System.out.println("请输入您的游戏昵称:"); Scanner s = new Scanner(System.in) ; String sg = s.nextLine() ; p.setName(sg); p.setScore(100); System.out.println("恭喜您注册成功,您的初始积分为100"); System.out.println(p.getName()+"进入游戏"); while(true) { String[ ] array = new String[ ] {"剪刀","石头","布"} ; System.out.println("请输入剪刀、石头或布,结束请输入esc"); Scanner sc = new Scanner(System.in) ; //提供输入窗口 String s1 = sc.nextLine() ; if(!panduan(s1)) { System.out.println("输入有误,重新输入!"); continue ; } if(s1.equals("esc")) { break ; } int a = (int)(Math.random()*3) ; //随机0,1,2作为索引 String s2 = array[a] ; int it = rule(s1,s2) ; if(it>0) { System.out.println("您出的是"+s1+"电脑出的是"+s2); System.out.println("恭喜"+p.getName()+"赢了,奖励10积分"); p.setScore(p.getScore()+10); } else if(it<0) { System.out.println("您出的是"+s1+"电脑出的是"+s2); System.out.println("对不起"+p.getName()+"您输了,扣除10积分为"); p.setScore(p.getScore()-10); } else { System.out.println("您出的是"+s1+"电脑出的是"+s2); System.out.println("打平了"); p.setScore(p.getScore()); } System.out.println(p); } System.out.println(p.getName()+"退出了游戏,当前积分为:"+p.getScore()); } } //玩家类 class Player { private String name ; //玩家姓名 private int score ; //玩家积分 //setting、getting public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } @Override public String toString() { return "玩家:" + name + ", 当前积分:" + score; } }