用java完成唐诗测试游戏:从每句随机去掉一个字_代替,然后将去掉的字组合为4种选项,让用户选择正确答案。

用java完成唐诗测试游戏:从每句随机去掉一个字_代替,然后将去掉的字组合为4种选项,让用户选择正确答案。,第1张

Java程序:

import java.util.Random

public class Test0201 {

public static void main(String[] args) {

String[] poem = new String[]{"赠孟浩然",

"吾爱孟夫子", "风流天下闻",

"红颜弃轩冕", "白首卧松云",

"醉月频中圣", "迷花不事君",

"高山安可仰", "徒此揖清芬"}

String[] keys = new String[poem.length-1] //存储每句中抽出的单字

String[] items = new String[4] //存储4种备选答案选项

String correctItem

int i

drawKey(poem, keys)

correctItem = generateItems(keys, items)

System.out.println("以下唐诗的每一句都少一个字,请选择顷肢合适的选项,将各选项饥乎野中的字接顺序填充后,形成完整的唐烂喊诗:\n")

System.out.println(poem[0])

for(i=1i<poem.lengthi++){

System.out.println(poem[i] + (i%2==1 ?"," : "。"))

}

System.out.println()

for(i=0i<items.lengthi++){

System.out.println(items[i])

}

System.out.print("\n正确答案:" + correctItem)

}

//从各句唐诗中抽取一个字并存储,将该字用“_”代替

public static void drawKey(String[] poem, String[] keys){

int i, pos

Random rand = new Random()

for(i=1i<poem.lengthi++){

pos=rand.nextInt(poem[i].length())

keys[i-1] = poem[i].substring(pos, pos+1)

poem[i] = poem[i].substring(0, pos) + "_" + poem[i].substring(pos+1)

}

}

//组成备选答案选项,返回正确答案

public static String generateItems(String[] keys, String[] items){

Random rand = new Random()

int[] arr

int n = keys.length

int pos = rand.nextInt(4) //正确答案的位置

int i, j

StringBuffer buff = new StringBuffer()

for(i=0i<ni++){

buff.append(keys[i])

}

items[pos] = (char)('A' + pos) + ". " + buff.toString()

buff.delete(0, n)

for(i=0i<4i++){

if(i == pos){

continue

}

arr = generateArray(n)

for(j=0j<nj++){

buff.append(keys[arr[j]])

}

items[i] =(char)('A' + i) + ". " + buff.toString()

buff.delete(0, n)

}

return items[pos]

}

//生成由n个数字[0, n-1]组成的随机数数组

private static int[] generateArray(int n){

int[] arr = new int[n]

Random rand = new Random()

int i

for(i=0i<n){

arr[i] = rand.nextInt(n)

if(isExistFigure(arr, i, arr[i])){

continue

}

i++

}

return arr

}

//判断某数字在数组中是否存在

private static boolean isExistFigure(int[] arr, int n, int key){

for(int i=0i<ni++){

if(arr[i] == key){

return true

}

}

return false

}

}

运行测试:

第一次测试:

以下唐诗的每一句都少一个字,请选择合适的选项,将各选项中的字接顺序填充后,形成完整的唐诗:

赠孟浩然

吾_孟夫子,

_流天下闻。

红颜弃轩_,

白首卧松_。

醉月频中_,

迷花不事_。

高山安_仰,

_此揖清芬。

A. 爱徒君风可云冕圣

B. 云徒君风冕圣爱可

C. 君冕圣可风云徒爱

D. 爱风冕云圣君可徒

正确答案:D. 爱风冕云圣君可徒

第二次测试:

以下唐诗的每一句都少一个字,请选择合适的选项,将各选项中的字接顺序填充后,形成完整的唐诗:

赠孟浩然

吾爱孟夫_,

风流天下_。

红颜弃_冕,

_首卧松云。

醉月频_圣,

迷花_事君。

高山_可仰,

徒此揖_芬。

A. 不白闻子中轩清安

B. 子闻轩白中不安清

C. 白不闻轩清安子中

D. 清子不白中安轩闻

正确答案:B. 子闻轩白中不安清

//下面是用一维数组写的

public class Test {

public static void main(String[] args) {

String shi="锄禾日当午,汗滴禾下土,谁知盘中餐,粒粒皆辛苦"

String[] shis=shi.split(",")

for(int j=0j<5j++){

for(int i=shis.length-1i>=0i--){

System.out.print(shis[i].charAt(j)+"蠢察 ")

}

System.out.println()

}

}

}

//下面是用2维数组写的

public class Test {

public static void main(String[] args) {

String[][] shi={{"锄","禾","日","当","午"},{"汗","滴"神棚,"禾","下带瞎茄","土"},

{"谁","知","盘","中","餐"},{"粒","粒","皆","辛","苦"}}

for(int j=0j<5j++){

for(int i=shi.length-1i>=0i--){

System.out.print(shi[i][j]+" ")

}

System.out.println()

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12221934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存