import java.util.Random;
import java.util.Scanner;
public class CaiQuan {
private String userName;//存儲用戶名
private String cName;//存儲對手
private int cNameNum;//存儲玩家選擇的對手代號
private String userInfo;//用戶出拳信息
private String cInfo;//電腦出拳信息
private int uNum;//接收用戶輸入的數
private int cNum;//接受電腦產生的數
private Scanner sc;
private static final String Army01 = "張飛";
private static final String Army02 = "關羽";
private static final String Army03 ="劉備";
private static boolean flag ;//平局和電腦勝爲true,玩家贏爲fasle
private int selectInfo;//玩家是否繼續遊戲,1表示繼續,0表示結束
private int score = 0;//分數
public static void main(String[] args) {
CaiQuan cq = new CaiQuan();
cq.gameInfo();
do{
cq.selectArmy();
cq.userInput();
cq.cOutput();
cq.compareCaiQuan();
cq.gameOver();
}while(flag);
}
public CaiQuan(){
}
//打印遊戲信息
public void gameInfo(){
System.out.println("歡迎進行猜拳小遊戲!");
System.out.println("1.表示石頭 2.表示剪刀 3.表示布");
sc = new Scanner(System.in);
if(userName==null){
System.out.println("玩家請輸入用戶名:");
System.out.println("=============================================");
userName = sc.next();
}
}
//選擇對手
public void selectArmy(){
System.out.println("=============================================");
System.out.println("對手選擇列表:");
System.out.println("1:"+Army01+" 2:"+Army02+" 3:"+Army03);
System.out.println(userName+"請輸入對手:");
System.out.println("=============================================");
test01();
System.out.println(userName+",您選擇的對手爲"+cName);
System.out.println("=============================================");
}
//判斷對手
public void test01(){
cNameNum = sc.nextInt();
if(cNameNum==1){
cName = Army01;
}else if(cNameNum==2){
cName = Army02;
}else if(cNameNum==3){
cName = Army03;
}else{
System.out.println("對手選擇錯誤,請重新選擇!");
test01();
}
}
//開始遊戲
public void userInput(){
System.out.println(userName+"請出拳:");
System.out.println("1.表示石頭 2.表示剪刀 3.表示布");
System.out.println("=============================================");
test();
System.out.println("=============================================");
System.out.println(userName+"的出拳爲:"+userInfo);
}
//判斷輸入的數是否錯誤
public void test(){
uNum = sc.nextInt();
if(uNum==1){
userInfo = "石頭";
}else if(uNum==2){
userInfo = "剪刀";
}else if(uNum==3){
userInfo = "布";
}else{
System.out.println("輸入錯誤,請請重新輸入");
test();
}
}
//電腦出拳
public void cOutput(){
Random random = new Random();
cNum = random.nextInt(3)+1;
if(cNum==1){
cInfo = "石頭";
}else if(cNum==2){
cInfo = "剪刀";
}else if(cNum==3){
cInfo = "布";
}
System.out.println(cName+"出拳爲:"+cInfo);
}
//比較大小
public void compareCaiQuan(){
String msg = null;
if(uNum == 1){
if(cNum == 1){
msg="此時平局";
flag = true;
}else if(cNum == 2){
score += 1;
msg="此時"+userName+"勝出";
flag = false;
}else {
score -= 1;
msg="此時"+cName+"勝出";
flag = true;
}
return;
}else if(uNum == 2){
if(cNum == 1){
score -= 1;
msg="此時"+cName+"勝出";
flag = true;
}else if(cNum == 2){
msg="此時平局";
flag = true;
}else {
score += 1;
msg="此時"+userName+"勝出";
flag = false;
}
}else {
if(cNum == 1){
score += 1;
msg="此時"+userName+"勝出";
flag = false;
}else if(cNum == 2){
score -= 1;
msg="此時"+cName+"勝出";
flag = true;
}else {
msg=" 此時平局";
flag = true;
}
}
System.out.println(msg);
}
//遊戲結束信息
public void gameOver(){
System.out.println("=============================================");
if(flag==true){
System.out.println(userName+",您沒有戰勝電腦,不要灰心,請繼續遊戲!");
System.out.println("=============================================");
System.out.println("繼續遊戲請輸入:1 結束遊戲請輸入:2");
test02();
}else if(flag==false){
System.out.println(userName+",您太厲害了,竟然戰勝了"+cName+",遊戲結束!");
System.out.println("=============================================");
System.out.println("繼續遊戲請輸入:1 結束遊戲請輸入:2");
test02();
}
}
//判斷玩家是否繼續遊戲
public void test02(){
selectInfo = sc.nextInt();
if(selectInfo==1){
flag = true;
}else if(selectInfo==2){
System.out.println(userName+",您的遊戲分數爲:"+score);
System.exit(0);
}else{
System.out.println(userName+",您輸入錯誤,請重新輸入!");
test02();
}
}
}
JAVASE猜拳小遊戲源代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.