前言
前期已经复习完了C的知识点,现在进入到了java部分的学习,学完了API的lang包,做个小的游戏巩固一下知识点的学习。
一、填写诗词诗词游戏的思路
先定义一首诗词,用split()以“,”劈开放在一个一维的数组中,数组中有4个元素,分别在每一句中都随机的扣一个字,用“?”来替换,最后生成四个选项,但只有一个是正确的。
下来看看具体的代码:
二、代码
1.Run类
代码如下:
import java.util.Random;
import java.util.Scanner;
public class CZYX {
public static void main(String[] args) {
String ts = "白日依山尽,黄河入海流,欲穷千里目,更上一层楼";
String[] tss = ts.split(",");
char[] da = new char[4];
String[] das = new String[4];
//扣字
Random random = new Random();
for (int i = 0; i < tss.length; i++) {
int wz = random.nextInt(5);
da[i] = tss[i].charAt(wz);
}
//替换
for(int i = 0; i < tss.length; i++) {
tss[i] = tss[i].replace(da[i], '?');
}
for (int i = 0; i < tss.length; i++) {
System.out.println(tss[i]);
}
//生成正确答案
String zqda = "" + da[0] + da[1] + da[2] + da[3];
int zqwz = random.nextInt(4);
das[zqwz] = zqda;
for (int i = 0; i < das.length; i++) {
if(i == zqwz) {
continue;
}
DLSX.dl(da);
das[i] = "" + da[0] + da[1] + da[2] + da[3];
}
for(int i = 0; i < das.length; i++) {
System.out.println((i + 1) + " 、" + das[i]);
}
System.out.println("请输入正确答案:");
Scanner sc = new Scanner(System.in);
int jg =sc.nextInt();
if(jg == (zqwz + 1)) {
System.out.println("恭喜你答对了");
} else {
System.out.println("请在想想");
}
}
}
2.DLSX类
代码如下:
import java.util.Random;
public class DLSX {
public static void dl(char[] da) {
for (int i = 0; i < 10; i++) {
Random random = new Random();
int wz1 = random.nextInt(4);
int wz2 = random.nextInt(4);
char ls = 'l';
ls = da[wz1];
da[wz1] = da[wz2];
da[wz2] = ls;
}
}
}
三、运行截图
总结
通过阶段性学习,巩固一下自己的所学的知识。作为初学者,有不足之处还请大佬们指正。