A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

写一个简单的猜拳游戏 游戏规则如下:            游戏有3个选择 石头0,剪刀1,布2;          玩家自己猜一个数据(只能是0,1,2其中一个)          电脑会随机生成一个 0-2之间的整数          拿电脑生成的和玩家自己输入的进行比较          规则:             玩家是石头 电脑是剪刀 则玩家胜             玩家是剪刀 电脑是布   则玩家胜                    玩家是布   电脑是石头 则玩家胜             如果玩家和电脑猜测的相同则表示平局             其他情况表示电脑胜
package cn.itcast.day07.test02;

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

public class Game {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();

        list.add("石头");
        list.add("剪刀");
        list.add("布");

        while (true) {
            System.out.println("=============================");

            System.out.println("猜拳游戏开始!");

            System.out.print("玩家有三个选择:石头0,剪刀1,布2:");

            Scanner sc = new Scanner(System.in);
            int chose = sc.nextInt();

            if (chose < 0 || chose > 2) {
                System.out.println("选择错误,请重试");
                continue;
            } else {
                System.out.println("玩家出的:" + list.get(chose));
                System.out.print("我要出啦!");
                Random ra = new Random();
                int cp = ra.nextInt(3);
                System.out.println("电脑出的:" + list.get(cp));
                if (cp == chose) {
                    System.out.println("平局!");
                } else if (cp == 1 && chose == 0) {
                    System.out.println("恭喜你! 你赢了");
                } else if (cp == 0 && chose == 2) {
                    System.out.println("恭喜你! 你赢了");
                } else if (cp == 2 && chose == 1) {
                    System.out.println("恭喜你! 你赢了");
                } else if (cp == 2 && chose == 0) {
                    System.out.println("真可惜,你输了");
                } else if (cp == 1 && chose == 2) {
                    System.out.println("真可惜,你输了");
                } else if (cp == 0 && chose == 1) {
                    System.out.println("真可惜,你输了");
                } else {
                    System.out.println("真可惜,你输了");
                }
                System.out.print("继续/结束?(任意键继续/输入结束退出): ");
                Scanner sc1 = new Scanner(System.in);
                String s = sc1.next();
                if (s.equals("结束")) {
                    break;
                }

            }
        }
    }
}
对于这种题目 咱们可以一步步来
首先 咱们可以根据题目要求  先把整个规则写出来
比如我们要出 剪刀石头布  可以用Scanner类来键盘录入
然后电脑出石头剪刀布 可以用Random随机数来输出
然后我们定义好这俩个东西之后 可以开始写规则
对于这种规则咱们可以用if else来写
    if (cp == chose) {
                    System.out.println("平局!");
                } else if (cp == 1 && chose == 0) {
                    System.out.println("恭喜你! 你赢了");
                } else if (cp == 0 && chose == 2) {
                    System.out.println("恭喜你! 你赢了");
                } else if (cp == 2 && chose == 1) {
                    System.out.println("恭喜你! 你赢了");
                } else if (cp == 2 && chose == 0) {
                    System.out.println("真可惜,你输了");
                } else if (cp == 1 && chose == 2) {
                    System.out.println("真可惜,你输了");
                } else if (cp == 0 && chose == 1) {
                    System.out.println("真可惜,你输了");
                } else {
                    System.out.println("真可惜,你输了");
                }
然后我们可以开始优化代码了
这样子的代码咱们只能运行一次
如果我们想重复多次这个游戏
我们可以在外面套个循环
套一个死循环
然后用特定的语句来操作他们
continue;跳过
break;退出
跳完之后再最后写一个结束的语句
可以按任意键继续
可以按结束键结束
用equals方法来判断输入
最后我们可以创建一个集合
来保存 剪刀 石头 布
让控制台显示的内容不是0 1 2
而是 剪刀石头布
下面是运行结果
=============================
猜拳游戏开始!
玩家有三个选择:石头0,剪刀1,布2:1
玩家出的:剪刀
我要出啦!电脑出的:石头
真可惜,你输了
继续/结束?(任意键继续/输入结束退出): 结束

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马