✅作者简介:热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:JAVA开发者成长之路
✨特色专栏:国学周更-心性养成之路
🥭本文内容:Java石头剪刀布
更多内容点击👇
Servlet与表单数据交互(如文本框、单选按钮、复选框、下拉列表等)
【本文目录】
- ⛳️ 项目需求
- ⛳️ 覆盖知识
- ⛳️ 开发步骤
- ⛳️ 代码展示
- ⛳️ 运行效果
⛳️ 项目需求
剪刀石头布的游戏
(1)定义一个计算机玩家类Computer,它有两个方法:outConNum()方法代表电脑需要出一个生成0,1,2三个数之间随机数的方法;compare(Tom t)方法代表再出一个比较电脑和tom的方法。
(2)定义一个游戏玩家类Tom,三个成员变量和四个方法:
成员变量:
finger(代表tom出得石头或剪刀或布)
winCount(赢的次数)
lossCount(输的次数)
方法:
accept()方法代表写一个用来接受Tom输入的方法
add()方法代表在写一个赢的次数增加,输的次数增加的方法
reduce()方法代表输的次数增加的方法
showInfo()方法代表展示输赢次数的方法
(3)定义一个游戏类GameTest,它有两个成员变量(computer\player),其中的成员变量分别表示两个对手,一个是计算机玩家对象,一个是游戏玩家对象。
(4)编写一个测试类,完成一次剪刀石头布的游戏。
⛳️ 覆盖知识
程序基本概念、变量 、数据类型、流程控制、顺序、选择 、循环、跳转语句、数组、变量、类、方法等
⛳️ 开发步骤
1、写一个一维数组用来接收局数:int[] times = new int[10]。
2、写一个for循环遍历数组,i代表正在进行的局数,并且展示相关的输出显示信息。
3、电脑需要出一个生成0,1,2三个数之间随机数的方法
4、再出一个比较电脑和tom的方法
⛳️ 代码展示
package cn.personal.demo08;
import java.util.Random;
import java.util.Scanner;
public class GameTest {
public static void main(String[] args) {
// 写一个一维数组用来接收局数
int[] times = new int[10];
int inNum;
Tom t = new Tom();
Computer c = new Computer();
// 写一个for循环遍历数组,i代表正在进行的局数
for (int i = 0; i < times.length; i++) {
System.out
.println("===共" + times.length + "局,第" + (i + 1) + "局===");
System.out.println("0-石头 | 1-剪刀 | 2-布");
System.out.print("请输入:");
t.accept();// 输入tom出的东西,传给tom的成员变量finger
c.compare(t);
t.showInfo();
}
System.out.println("对局结束");
}
}
class Tom {
int finger;// 代表tom出得石头或剪刀或布
int winCount;// 赢的次数
int lossCount;// 输的次数
// 写一个用来接受Tom输入的方法
public void accept() {
Scanner sc = new Scanner(System.in);
this.finger = sc.nextInt();
}
// 在写一个赢的次数增加,输的次数增加的方法
public void add() {
this.winCount++;
}
// 输的次数增加的方法
public void reduce() {
this.lossCount++;
}
// 展示输赢次数的方法
public void showInfo() {
System.out
.println("赢" + this.winCount + "局,输" + this.lossCount + "局\n");
}
}
class Computer {
// 电脑需要出一个生成0,1,2三个数之间随机数的方法
public int outConNum() {
Random r = new Random();
return r.nextInt(3);
}
// 再出一个比较电脑和tom的方法
public void compare(Tom t) {
int computerNum = outConNum();
System.out.println("电脑:" + computerNum);
if (t.finger == 0) {
if (computerNum == 1) {
t.add();
System.out.println("结果:you win");
} else if (computerNum == 2) {
t.reduce();
System.out.println("结果:you loss");
} else if (computerNum == 0) {
System.out.println("结果:平局");
}
} else if (t.finger == 1) {
if (computerNum == 2) {
t.add();
System.out.println("结果:you win");
} else if (computerNum == 0) {
t.reduce();
System.out.println("结果:you loss");
} else if (computerNum == 1) {
System.out.println("结果:平局");
}
} else if (t.finger == 2) {
if (computerNum == 0) {
t.add();
System.out.println("结果:you win");
} else if (computerNum == 1) {
t.reduce();
System.out.println("结果:you loss");
} else if (computerNum == 2) {
System.out.println("结果:平局");
}
}
}
}
⛳️ 运行效果
总共10局比赛,每一轮下来都会记录输赢的情况。
满10局后对局结束,再比较输赢各多少局。如果赢比输多,则为赢;如果赢比输少,则为输。
码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识,点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。