前言
跟着导师学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种跳出循环的语句:break 和 continue 。
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路漫漫,虽道阻且长,但行则必至!