package game;
import java.util.Scanner;
/*
實現功能:玩家在自己選擇出石頭,剪刀或布,電腦隨機給出一個選擇並輸出提示,然後比較輸贏3
*/
public class shitoujiandaobu {
public static void main(String[] args) {
shitoujiandaobu hello=new shitoujiandaobu();
Scanner input =new Scanner(System.in);
System.out.println("請玩家輸入:0,1或2;0=剪刀,1=石頭,2=布");
int player =input.nextInt();
int computer;
if(player==0){
System.out.println("您選擇的是剪刀");
}
else if(player==1){
System.out.println("您選擇的是石頭");
}
else if(player==2){
System.out.println("您選擇的是布");
}
else{
System.out.println("輸入有誤,請您重入0,1或2;0=剪刀,1=石頭,2=布;");
}
computer=(int)(Math.random()*3);
if(player==0){
System.out.println("電腦選擇的是剪刀");
}
else if(computer==1){
System.out.println("電腦選擇的是石頭");
}
else if(computer==2){
System.out.println("電腦選擇的是布");
}
hello.compare(player, computer);
}
public void compare(int a,int b)
{
if(a==b)
{
System.out.println("我們平了");
}
else if(a==0&&b==2||a==1&&b==0||a==2&b==1){
System.out.println("你贏了");
}
else{
System.out.println("你輸了");
}
}
}
手頭沒有eclipse做測試,我就說說發現的問題,首先沒有重復的輸入,假如輸入的數字不是0~2之間的一個那麼你的程序只是提示請重新輸入,
沒有一個循環控制到再次輸入. 其次就是判斷的部分,如果這是你直接粘過來的,那麼按照比較順序從前往後的優先級, 而且最後 a == 2 & b == 1 可能是 打錯
了把,這裡變成 與 運算了. 建議把 每一對 條件用括號括起來 判斷. 其次判斷出平局依舊沒有返回到重新輸入的代碼.
大體上可以while循環控制,如果輸入不合法, 或者比較平局 就再次進入本循環重新輸入, 出現結果了就break跳出.