定義:石頭=1、剪刀=2、布=3。規則:(用戶 - 電腦 + 3) % 3 → 0 平、1 贏、2 輸。
public class RockPaperScissors {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Random rand = new Random();
String[] gestures = {"", "石頭", "剪刀", "布"}; // 索引 1-3
while (true) {
System.out.print("請輸入 (1石頭 2剪刀 3布 0退出): ");
int user = sc.nextInt();
if (user == 0) break;
if (user < 1 || user > 3) { System.out.println("輸入錯誤"); continue; }
int cpu = rand.nextInt(3) + 1; // 1-3
System.out.println("你出: " + gestures[user] + ",電腦出: " + gestures[cpu]);
int diff = (user - cpu + 3) % 3;
if (diff == 0) System.out.println("平局");
else if (diff == 1) System.out.println("你贏了!");
else System.out.println("你輸了!");
}
}
}
public class GameActivity extends AppCompatActivity {
private TextView tvResult;
private Random rand = new Random();
private String[] g = {"", "石頭", "剪刀", "布"};
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_game);
tvResult = findViewById(R.id.tvResult);
findViewById(R.id.btnRock).setOnClickListener(v -> play(1));
findViewById(R.id.btnScissors).setOnClickListener(v -> play(2));
findViewById(R.id.btnPaper).setOnClickListener(v -> play(3));
}
private void play(int user) {
int cpu = rand.nextInt(3) + 1;
int diff = (user - cpu + 3) % 3;
String msg = "你: " + g[user] + " 電腦: " + g[cpu] + "\n";
msg += (diff == 0) ? "平局" : (diff == 1 ? "你贏了!" : "你輸了!");
tvResult.setText(msg);
}
}