Java剪刀石頭布


package day09_test;

import java.util.Random;
import java.util.Scanner;

import day09.GamePlayer;
import day09.GameRobot;

public class GameTest {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("請輸入猜拳比賽回合數:");
int maxNumber = input.nextInt();

//回合計數器
int count = 0;
//玩家勝利數
int countP = 0;
//電腦勝利數
int countR = 0;
while(count<maxNumber) {
System.out.println("請輸入你想出的數字:(1.剪刀 2.石頭 3.布)");
int PlayNum = input.nextInt();
if (PlayNum>3 || PlayNum<=0) {
System.out.println("輸入有誤!請重新輸入:");
PlayNum =input.nextInt();
}
GamePlayer player = new GamePlayer(PlayNum);
player.say();

//機器人隨機輸入1-3
Random r = new Random();
int RobotNum = r.nextInt(3)+1;
GameRobot robot = new GameRobot(RobotNum);
robot.say();

//判斷輸贏
if (player.getNumber()==robot.getNumber()) {
count++;
System.out.println("第"+count+"局:雙方一致,請重新猜拳!");

}else if (player.getNumber()==1) {//玩家出剪刀
if (robot.getNumber()==3) {//電腦出布
count++;
countP++;
System.out.println("第"+count+"局:玩家贏,您得一分!");

}else if (robot.getNumber()==2) {//電腦出石頭
count++;
countR++;
System.out.println("第"+count+"局:電腦贏,它得一分!");

}

}else if (player.getNumber()==2) {//玩家出石頭
if (robot.getNumber()==3) {//電腦出布
count++;
countP++;
System.out.println("第"+count+"局:電腦贏,它得一分!");

}else if (robot.getNumber()==1) {//電腦出剪刀
count++;
countR++;
System.out.println("第"+count+"局:玩家贏,您得一分!");

}

}else if (player.getNumber()==3) {//玩家出布
if (robot.getNumber()==2) {//電腦出布
count++;
countP++;
System.out.println("第"+count+"局:玩家贏,您得一分!");

}else if (robot.getNumber()==1) {//電腦出剪刀
count++;
countR++;
System.out.println("第"+count+"局:電腦贏,它得一分!");

}
}
}
if (countP==countR) {
System.out.println("電腦得分:"+countR+" 玩家得分:"+countP);
System.out.println("比賽結束,平局!");
}else if (countP>countR) {
System.out.println("電腦得分:"+countR+" 玩家得分:"+countP);
System.out.println("比賽結束,玩家勝利!");
}else {
System.out.println("電腦得分:"+countR+" 玩家得分:"+countP);
System.out.println("比賽結束,電腦勝利!");
}

}

}

 

 

package day09;

public class GameRobot {
private int number;

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}

public GameRobot() {
super();
// TODO Auto-generated constructor stub
}

public GameRobot(int number) {
super();
this.number = number;
}
public void say() {
switch(this.number) {
case 1:
System.out.println("電腦出的是剪刀");
break;
case 2:
System.out.println("電腦出的是石頭");
break;
case 3:
System.out.println("電腦出的是布");
break;
}
}
}

 

 

package day09;
/**
* 今天的任務是通過控制台方式實現一個人機對戰的猜拳游戲,用戶通過輸入
(1.剪刀 2.石頭 3.布),機器隨機生成(1.剪刀 2.石頭 3.布),勝者積分,
n 局以后通過積分的多少判定勝負。
任務過程:
1. 定義機器類,以及拳頭屬性(此屬性只有三個值:剪刀,石頭,布。這里
的值可以使用數值代替)
2. 定義生成隨機數的方法(讓機器生成剪刀,石頭,布的值),賦值給第一
步的拳頭屬性
3. 定義測試類,獲取用戶輸入的剪頭石頭布的值,和隨機生成的值比較
4. 測試中,定義變量保存勝者積分
* @author 86182
*
*/
public class GamePlayer {
private int number;

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}

public GamePlayer() {
super();
// TODO Auto-generated constructor stub
}

public GamePlayer(int number) {
super();
this.number = number;
}
public void say() {
switch(this.number) {
case 1:
System.out.println("玩家出的是剪刀");
break;
case 2:
System.out.println("玩家出的是石頭");
break;
case 3:
System.out.println("玩家出的是布");
break;
}
}


}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM