我在布局页面做了分别代表石头,剪刀,布的三个image button,请帮我写出java页面的运行程序做一个人机猜拳游戏。
时间: 2024-03-08 13:47:53 浏览: 64
好的,首先我们需要定义三个变量来保存用户选择的猜拳手势和电脑选择的猜拳手势。
```java
int userGesture = 0; // 0表示未选择,1表示石头,2表示剪刀,3表示布
int computerGesture = 0;
```
接下来,在每个image button上添加一个点击事件,让用户选择猜拳手势。例如,当用户点击石头按钮时,我们将userGesture设置为1。
```java
ImageButton btnRock = findViewById(R.id.btn_rock);
btnRock.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
userGesture = 1;
}
});
```
当用户选择完手势后,我们需要让电脑随机选择一个手势。我们可以使用Random类来实现。
```java
Random random = new Random();
computerGesture = random.nextInt(3) + 1; // 生成1~3的随机数
```
接下来,我们需要判断用户和电脑的手势,然后输出结果。这里我们可以使用switch语句来实现。
```java
switch (userGesture) {
case 1: // 用户选择石头
switch (computerGesture) {
case 1: // 电脑选择石头
// 平局
break;
case 2: // 电脑选择剪刀
// 用户胜利
break;
case 3: // 电脑选择布
// 电脑胜利
break;
}
break;
case 2: // 用户选择剪刀
// 类似处理
break;
case 3: // 用户选择布
// 类似处理
break;
}
```
最后,我们可以使用Toast来显示结果。
```java
Toast.makeText(MainActivity.this, "你选择了" + getUserGestureName(userGesture) + ",电脑选择了" + getComputerGestureName(computerGesture) + "," + result, Toast.LENGTH_SHORT).show();
```
完整代码如下:
```java
public class MainActivity extends AppCompatActivity {
int userGesture = 0; // 0表示未选择,1表示石头,2表示剪刀,3表示布
int computerGesture = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ImageButton btnRock = findViewById(R.id.btn_rock);
btnRock.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
userGesture = 1;
play();
}
});
ImageButton btnScissors = findViewById(R.id.btn_scissors);
btnScissors.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
userGesture = 2;
play();
}
});
ImageButton btnPaper = findViewById(R.id.btn_paper);
btnPaper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
userGesture = 3;
play();
}
});
}
private void play() {
Random random = new Random();
computerGesture = random.nextInt(3) + 1;
String result = "";
switch (userGesture) {
case 1: // 用户选择石头
switch (computerGesture) {
case 1: // 电脑选择石头
result = "平局";
break;
case 2: // 电脑选择剪刀
result = "你赢了";
break;
case 3: // 电脑选择布
result = "电脑赢了";
break;
}
break;
case 2: // 用户选择剪刀
switch (computerGesture) {
case 1: // 电脑选择石头
result = "电脑赢了";
break;
case 2: // 电脑选择剪刀
result = "平局";
break;
case 3: // 电脑选择布
result = "你赢了";
break;
}
break;
case 3: // 用户选择布
switch (computerGesture) {
case 1: // 电脑选择石头
result = "你赢了";
break;
case 2: // 电脑选择剪刀
result = "电脑赢了";
break;
case 3: // 电脑选择布
result = "平局";
break;
}
break;
}
Toast.makeText(MainActivity.this, "你选择了" + getUserGestureName(userGesture) + ",电脑选择了" + getComputerGestureName(computerGesture) + "," + result, Toast.LENGTH_SHORT).show();
userGesture = 0;
computerGesture = 0;
}
private String getUserGestureName(int gesture) {
switch (gesture) {
case 1:
return "石头";
case 2:
return "剪刀";
case 3:
return "布";
default:
return "";
}
}
private String getComputerGestureName(int gesture) {
switch (gesture) {
case 1:
return "石头";
case 2:
return "剪刀";
case 3:
return "布";
default:
return "";
}
}
}
```
阅读全文