猜拳小遊戲
習題代碼
package com.newer.oop;
import java.util.InputMismatchException;
import java.util.Scanner;
/**
* author:HCQ
* date: 2018/7/26
* see: 猜拳遊戲
*/
public class GuessFist {
static int playerNumber; //玩家輸入的數字
static int computerNumber; //電腦隨機產生的數字
static String jiXu; //玩家判斷是否繼續
private static Scanner sc;
/*進行電腦出拳和判斷輸贏*/
public static void computer() {
//電腦出拳
computerNumber = (int) (Math.random()*3+1); //隨機產生數字1-3
switch(computerNumber) {
case 1: System.out.println("計算機出的是:"+"石頭");break;
case 2: System.out.println("計算機出的是:"+"剪刀");break;
case 3: System.out.println("計算機出的是:"+"布");break;
}
//判斷輸贏
if((playerNumber == 1 && computerNumber == 2) || (playerNumber == 2 && computerNumber == 3) || (playerNumber == 3 && computerNumber == 1)) {
System.out.println("你贏了");
} else {
if((playerNumber == 2 && computerNumber == 1) || (playerNumber == 3 && computerNumber == 2) || (playerNumber == 1 && computerNumber == 3)) {
System.out.println("你輸了");
} else {
System.out.println("您和計算機打平手");
}
}
}
/*main方法*/
public static void main(String[] args) {
String shiTou = "石頭"; //石頭
String jianDao = "剪刀"; //剪刀
String bu = "布"; //布
try {
sc = new Scanner(System.in);
while(true) { //無限循環,在判斷"是否繼續?(y/n)"可以跳出循環結束遊戲
System.out.print("請出拳:1:石頭,2:剪刀,3:布:");
playerNumber = sc.nextInt(); //玩家輸入數字出拳
if(playerNumber>0 && playerNumber<4) {
if(playerNumber == 1) { //玩家輸入的數字爲1,出石頭
System.out.println("您出的是:"+shiTou);
computer();
}
if(playerNumber == 2) { //玩家輸入的數字爲2,出剪刀
System.out.println("您出的是:"+jianDao);
computer();
}
if(playerNumber == 3) { //玩家輸入的數字爲3,出布
System.out.println("您出的是:"+bu);
computer();
}
} else { //玩家輸入的不是1、2、3,輸入報錯,退出遊戲
System.out.println("輸入錯誤,遊戲退出!");
break;
}
//是否繼續遊戲
System.out.println("是否繼續?(y/n)");
jiXu = sc.next();
if(jiXu.equals("y")) { //繼續遊戲,跳出本次循環,進行下輪遊戲(下次循環)
continue;
} else {
if(jiXu.equals("n")) { //退出遊戲,跳出循環
break;
} else { //輸入的不是y或n,輸入報錯,退出遊戲
System.out.println("輸入錯誤,遊戲退出!");
break;
}
}
}
} catch(InputMismatchException e) {
System.out.println("輸入錯誤,遊戲退出!");
} catch(Exception e) {
System.out.println("其他錯誤。");
e.printStackTrace();
} finally {
//提示遊戲已退出
System.out.println("程序結束!");
System.exit(0); //退出系統
}
}
}
代碼僅供參考,謝謝。
2018/8/4