猜拳游戏

1. 需求分析:

  • 参与游戏的角色
    • 玩家
      • 手动出拳
    • 电脑
      • 随机出拳
  • 判断输赢
    • 玩家获胜
      | 玩家 | 电脑 |
      |:—:|:—:|
      | 石头 | 剪刀 |
      | 剪刀 | 布 |
      | 布 | 石头 |
    • 平局
      • 玩家出拳 和 电脑出拳相同
    • 电脑获胜

2. 随机做法

2.1 导入random模块

1
import 模块名

2.2 使用random模块中的随机整数功能

1
random.randint(开始,结束)

3. 参考代码(python代码实现)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import random

# 定义一个玩家变量,玩家输入0,1,2分别代表石头,剪刀,布
player = int(input("请出拳:0--石头,1--剪刀,2--布:"))

# 定义一个电脑变量,电脑使用随机数随机生成0-2之间的数出拳
computer = random.randint(0, 2)

"""
使用if语句判断
玩家 and 电脑
石头 and 剪刀 ==> 玩家获胜
剪刀 and 布 ==> 玩家获胜
布 and 石头 ==> 玩家获胜
"""
if ((player == 0) and (computer == 1)) or ((player == 1) and (computer == 2)) or ((player == 2) and (computer == 0)):
print("玩家获胜")

# 平局的情况
elif player == computer:
print("平局,再来一把")

# 玩家获胜和平局情况都列举出来,剩下的就是电脑获胜
else:
print("电脑获胜")

4. 附录(Java代码实现)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
package cn.777nx;

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

public class Test {
public static void main(String[] args) {
// 定义一个扫描器对象
Scanner sc = new Scanner(System.in);

// 提示玩家出拳
System.out.println("请出拳:0--石头,1--剪刀,2--布:");

// 接玩家输入的数据
int player = sc.nextInt();

// 定义一个电脑对象使用随机数随机出拳
Random r = new Random();
int computer = r.nextInt(3); // 随机生成 0-2 之间的随机数

/**
* 使用if语句判断
* 玩家 and 电脑
* 石头 and 剪刀 ==> 玩家获胜
* 剪刀 and 布 ==> 玩家获胜
* 布 and 石头 ==> 玩家获胜
*/
if ((player == 0) && (computer == 1) || (player == 1) && (computer == 2) || (player == 2) && (computer == 0)) {
System.out.println("玩家获胜");
} else if (player == computer) {
// 平局的情况
System.out.println("平局,再来一把");
} else {
// 玩家获胜和平局情况都列举出来,剩下的就是电脑获胜
System.out.println("电脑获胜");
}
}
}