实验课小案例,可能有些地方不规范有些冗余。
第一个类程序开始:
package RoShamBoGame; public class Main { public static void main(String[] args) { GameController gameController = new GameController(); gameController.StarGame(); } }
第二个电脑AI类
package RoShamBoGame; import java.util.Random; public class AI { public int aiScore = 0; public static int aiRand = 0; public String aiName; public int getAiScore() { return aiScore; } AI(String name) { this.aiName = name; } public void Play() { Random random = new Random(); aiRand = random.nextInt(3) + 1; } public String ReturnSPS(){ if(aiRand == 1) return "剪刀"; if(aiRand == 2) return "石头"; if(aiRand == 3) return "布"; else return ""; } }
游戏控制类:
package RoShamBoGame; import java.util.Scanner; import java.util.ArrayList; public class GameController { private static ArrayList<AI> aiArray = new ArrayList<AI>(); private static boolean bool = true; private static int aiNum = 0; private static int num = 0; private int myScore = 0; private String myName = ""; private void Initial() { aiArray.add(new AI("小姐姐")); aiArray.add(new AI("单身狗")); aiArray.add(new AI("大魔王")); System.out.println("-------------------欢迎进入IKUN猜拳游戏---------------------"); System.out.print("\n\n"); System.out.println("***********************************"); System.out.println("\t\t\t\t\t\t游戏开始"); System.out.println("***********************************"); System.out.print("\n\n"); System.out.println("出拳规则:1.剪刀 2.石头 3.布"); } private void AIOption() { Scanner input = new Scanner(System.in); while (bool) { try { aiNum = input.nextInt(); } catch (Exception ex) { System.out.println("输入错误,请正确输入!"); input = new Scanner(System.in); //重置输入流清空缓存区! } finally { switch (aiNum) { case 1: bool = false; break; case 2: bool = false; break; case 3: bool = false; break; default: System.out.println("输入错误,重新输入!"); } } } } private void SPSOption() { System.out.print("请出拳:1.剪刀 2.石头 3.布(输入相应数字):"); Scanner input = new Scanner(System.in); bool = true; while (bool) { try { num = input.nextInt(); } catch (Exception ex) { System.out.println("输入错误,请正确输入!"); input = new Scanner(System.in); //重置输入流清空缓存区! } finally { switch (num) { case 1: bool = false; System.out.println("您出拳:剪刀"); aiArray.get(aiNum - 1).Play(); System.out.println(aiArray.get(aiNum - 1).aiName + "出拳:" + aiArray.get(aiNum - 1).ReturnSPS()); if (aiArray.get(aiNum - 1).aiRand == 1) System.out.println("平局"); else if (aiArray.get(aiNum - 1).aiRand == 2) { System.out.println(aiArray.get(aiNum - 1).aiName + "得一分"); aiArray.get(aiNum - 1).aiScore++; } else if (aiArray.get(aiNum - 1).aiRand == 3) { System.out.println(myName + "得一分"); myScore++; } break; case 2: bool = false; System.out.println("您出拳:石头"); aiArray.get(aiNum - 1).Play(); System.out.println(aiArray.get(aiNum - 1).aiName + "出拳:" + aiArray.get(aiNum - 1).ReturnSPS()); if (aiArray.get(aiNum - 1).aiRand == 1) { System.out.println(myName + "得一分"); myScore++; } else if (aiArray.get(aiNum - 1).aiRand == 2) { System.out.println("平局"); } else if (aiArray.get(aiNum - 1).aiRand == 3) { System.out.println(aiArray.get(aiNum - 1).aiName + "得一分"); aiArray.get(aiNum - 1).aiScore++; } break; case 3: bool = false; System.out.println("您出拳:布"); aiArray.get(aiNum - 1).Play(); System.out.println(aiArray.get(aiNum - 1).aiName + "出拳:" + aiArray.get(aiNum - 1).ReturnSPS()); if (aiArray.get(aiNum - 1).aiRand == 1) { System.out.println(aiArray.get(aiNum - 1).aiName + "得一分"); aiArray.get(aiNum - 1).aiScore++; } else if (aiArray.get(aiNum - 1).aiRand == 2) { System.out.println(myName + "得一分"); myScore++; } else if (aiArray.get(aiNum - 1).aiRand == 3) { System.out.println("平局"); } break; default: System.out.println("小伙子想作弊?重新输入!"); } } Continue(); } } private void Continue(){ Scanner input = new Scanner(System.in); bool = true; System.out.print("是否继续?(y/n)"); while (bool) { if (input.next().equals("y")) { SPSOption(); } else{ bool = false; if(aiNum == 1){ if(aiArray.get(aiNum-1).getAiScore()<myScore){ System.out.println("小姐姐:你真厉害,但是你没房!"); }else System.out.println("小姐姐:你是个好人"); } if(aiNum == 2){ if(aiArray.get(aiNum-1).getAiScore()<myScore){ System.out.println("单身汪:这是我全部的狗粮了,永别了!"); }else System.out.println("单身汪:连单身狗都不如!"); } if(aiNum == 3){ if(aiArray.get(aiNum-1).getAiScore()<myScore){ System.out.println("大魔王:勇者你赢了,但是我什么都没有"); }else System.out.println("大魔王:有是一个可悲的勇者!"); } } } } public void StarGame() { Scanner input = new Scanner(System.in); Initial(); System.out.print("对手:<1.小姐姐 2.单身狗 3.大魔王>你的选择是:"); AIOption(); System.out.print("请输入您的姓名:"); myName = input.next(); System.out.println(myName + " 对战 " + aiArray.get(aiNum - 1).aiName); System.out.print("\n"); Continue(); } }