编写一个和计算机交互的“石头-剪刀-布”游戏程序。当两个人玩的时候,每个人要同时选择一项(用手势表示),然后决出胜负。规则为石头赢剪刀,剪刀赢布,布赢石头。程序必须随机选取一项但不显示给玩家,然后提示用户选择。当用户选择后,程序同时显示出计算机和用户的选择并且输出游戏结果。游戏一直进行到用户退出为止,然后输出双方输赢的次数及和局的次数。
实验过程
1 . 目录结构

2. 实验代码
MainController
package tech.zger.www.controller;
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.fxml.Initializable;
import javafx.scene.Scene;
import javafx.scene.control.Alert;
import javafx.scene.control.Label;
import javafx.scene.image.Image;
import javafx.scene.image.ImageView;
import javafx.scene.layout.Pane;
import javafx.stage.Stage;
import java.io.IOException;
import java.net.URL;
import java.util.ResourceBundle;
/**
* @author zg
* @create 2021/11/16 0:45
*/
public class MainController implements Initializable {
private static final int SCISSOR = 0;
private static final int CLOTH = 1;
private static final int STONE = 2;
/**
* 电脑玩家的选择
*/
@FXML
private ImageView computer;
/**
* 玩家的选择
*/
@FXML
private ImageView people;
/**
* 平局
*/
private int draw;
private int win;
private int fail;
/**
* 完成一局游戏需要点击 再来一次 才能进行下一次游戏
*/
private boolean changeable = true;
@FXML
private void clickScissors() {
if (changeable) {
this.people.setImage(new Image(getClass().getResourceAsStream("/tech/zger/www/images/scissor.png")));
int computerInput = this.generateRandomSign();
if (computerInput == SCISSOR) {
this.draw++;
showDraw();
} else if (computerInput == CLOTH) {
this.win++;
showWin();
} else {
this.fail++;
showFail();
}
changeable = false;
}
}
@FXML
private void clickCloth() {
if (changeable) {
this.people.setImage(new Image(getClass().getResourceAsStream("/tech/zger/www/images/cloth.png")));
int computerInput = this.generateRandomSign();
if (computerInput == CLOTH) {
this.draw++;
showDraw();
} else if (computerInput == STONE) {
this.win++;
showWin();
} else {
this.fail++;
showFail();
}
changeable = false;
}
}
@FXML
private void clickStone() {
if (changeable) {
this.people.

本文介绍了如何用JavaFX实现一款计算机与玩家交互的石头剪刀布游戏,包括用户界面设计、随机选择算法和游戏结果展示。通过代码示例展示了游戏流程及胜负统计功能,适合初学者理解事件驱动编程和界面设计。
最低0.47元/天 解锁文章
372

被折叠的 条评论
为什么被折叠?



