Java做一个简单的猜拳小游戏

文章目录

前言

1.游戏架构流程

1.1循环结构介绍

2.小游戏完整代码实例

小结



前言

        跟着导师学Java,今天学完循环和判断语句后来做一个猜拳小游戏,也就是石头剪子布。

1.游戏架构流程

        首先我们来设计一下游戏规则和玩法,游戏规则也很简单:石头剪子布,石头吃剪刀,剪刀吃布,布包石头。程序运行后,玩家要选择出拳,随后程序自动出拳进行比较,赢家会得到1分,率先得到5分的一方胜利,玩家可以随时退出游戏。

1.1循环结构介绍

        首先我们在这个小游戏中用到的知识点有:循环和判断,先详细来了解一下java循环语句及用法。

        一、for循环

        for循环结构很简单,语法格式是【   for(初始值;循环条件;表达式)    】如图:

         其中括号里面的三个表达式用分号隔开,也可以省略,写在for结构外面或者里面,如果都没有,那就会成为死循环。for循环一般用来做确定次数的程序,比如输入指定个数的数字,求其中最大值并输出。

        

         二、while循环和do while循环

        while循环结构也很简单,语法格式是【   while(布尔表达式)    】,当括号里面的表达式为真时,会一直执行循环体,而do while循环和while循环几乎一模一样,但是do while是先执行循环体再判断条件,如图:

         while循环和do while循环适用于不清楚要执行次数的程序,但可以通过设定条件来中断循环,while和do while循环可以互相转换。

         三、跳出循环体语句

        之前我们知道了三种循环语句,基本都是通过括号里面的表达式来控制循环体是否继续,但是在实际设计中,很多时候我们并不需要程序完全跑完。比如我要查找100以内27的最小倍数,可以用for循环从27开始遍历,依次来除以27,第一个能整除27的就是要找的数,此刻我的需求已经完成了,但是循环还在继续遍历到100才会停止,这会造成计算机资源的浪费。所以Java里面提供了2种跳出循环的语句:breakcontinue

        break:跳出并中断当前循环体,一般配合条件表达式和多层循环使用。

        continue:跳出当前循环,进入到下次循环。

以下为两个语句实例:

 

2.小游戏完整代码实例

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

public class MethodBlogs {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("\"石头剪刀布,电脑已就绪!游戏规则如下:和电脑猜拳\n" + " 1【石头】;2【剪刀】;3【布】\n");
        int comIntegral, plaIntegral;
        plaIntegral = comIntegral = 0;

        while (plaIntegral<5 | plaIntegral<5) {
            Random r = new Random();
            int comPuter = (int) (Math.random() * 3 + 1);
            System.out.println("请输入数字猜拳");
            int player = scan.nextInt();
            if (player==886){
                System.out.println("下次再见咯~");
                break;
            }

            if ((player > 0) & (player < 4)) {
                System.out.println("你的选择为:" + player);
                if (comPuter != player) {
                    if ((player - comPuter == -1) | (player - comPuter == 2)) {
                        plaIntegral += 1;
                        System.out.println("不错不错,竟然真的赢了!本次游戏,电脑出" + comPuter + "你出" + player);
                        System.out.println("目前战况为: 电脑:" + comIntegral + " 分" + ",玩家 " + plaIntegral + " 分");
                        System.out.println("退出游戏请输入886,输入其他数字继续");
                        System.out.println("----------------------------------------\n");
                    } else {
                        comIntegral += 1;
                        System.out.println("还好我技高一筹,你败了!本次游戏,电脑出" + comPuter + "你出" + player);
                        System.out.println("目前战况为: 电脑:" + comIntegral + " 分" + ",玩家 " + plaIntegral + " 分");
                        System.out.println();
                        System.out.println("退出游戏请输入886,输入其他数字继续");
                        System.out.println("----------------------------------------\n");

                    }

                }else if (comPuter == player) {
                    System.out.println("真是太有默契了,电脑出 " + comPuter + "你出" + player);
                    System.out.println("目前战况为: 电脑:" + comIntegral + " 分" + ",玩家 " + plaIntegral + " 分");
                    System.out.println("退出游戏请输入886,输入其他数字继续");
                    System.out.println("----------------------------------------\n");
                }
            }
            else {
                System.out.println("你输入的数字不合法,重新输入吧~");
                System.out.println();
                System.out.println("----------------------------------------\n");
            }

        }

        }

    }

运行结果如下:

大家多看几遍就懂了 

小结

        除此之外,Java循环体还有一个foreach循环,后面我们再学。最后:

        Java路漫漫,虽道阻且长,但行则必至!

猜你喜欢

转载自blog.csdn.net/qq_51294997/article/details/130777655