java拼字游戏(1组10个字母中至少2个原音字母,可重复字母)拼对得分 拼错换人..

要求你写一个Java的程序 下面是游戏的一些特点和在Java程序里面需要应用到的东西。
1) 这个游戏是由2个玩家玩的。
2) 每个玩家在10个单词中轮流的形成有用的词。
这10个单词对于每一个选手是随机挑选的,并且是分配给每一个的玩家。从这10个单词里面,这个电脑的程序必须确定下来里面至少2个是元音(元音字母有:A、E、I、O、U)。一个单词也可以出现2次以上。
3) 对于每一个单词的形成,这个电脑的程序必须;
【1】 检查每个单词都是有效的。
【2】 检查这些所形成的单词们仅仅是玩家所分配到设计的。
【3】 如果这个单词所形成是无效的,那么请展示出单词无效的原因。
【4】 如果这个单词是无效的,这个玩家将会被允许对它进行修改 直到它正确的时候。
4) 检查那个词是否有效,这个电脑的程序必须读和储存处一列的有效的词从一个文本文件。这个Java的编码去读词从一个文本文件深入到数列,这个数列是我们已经给了你的 在那个dictionary.jar 里面。这个电脑 程序将会用它去比较从各个玩家手中所组成的词语。
5) 当一个有效的词所形成之后,这个电脑单词就会计算这个词的笔画,每个词在这个游戏里面是被赋予一个特定的值,就像那个拼字游戏一样 这个笔画对于这个单词仅仅只是计算每一个单词的笔画的总和,这个每一个单词是从命令里面来的。
【1】 这个电脑程序将会展示出从每一个玩家中有效单词笔画。
【2】 同时,这个电脑程序将会展示出从每一个玩家中有效单词笔画总和。
6) 每个玩家也要轮流去组织一个有效的单词直到一个玩家通过他的那个部分。如果一个玩家过了他的那个部分,就到了另外一个玩家的部分了。
【1】 如果一个玩家过关了,他/她就会得到0在那一轮。
7) 这个电脑的程序将会计算每一个玩家的词的笔画直到这个程序停止,对于怎么判断这个程序停止,就是需要每个玩家决定的了 ,他/她说出是否quit,即停止。
8) 当这个程序停止的时候,它将会展现出每个玩家的分数以及宣布哪一个玩家赢了。

例子:
Letters of player 1 : a c f h i n p r s w
Enter your word (or ‘@’ to pass or ‘!’ to quit) : saw
Total score for word : 6
Total score for game : 6

Letters of player 2 : b c e g n n o t x z
Enter your word (or ‘@’ to pass or ‘!’ to quit): bench
Error : A valid word is formed but one or more letter(s) used are not yours
Enter your word (or ‘@’ to pass or ‘!’ to quit): benc
Error : An invalid word is formed
Enter your word (or ‘@’ to pass or ‘!’ to quit): bet
Total score for word : 5
Total score for game : 5

Letters of player 1 : c e f g h i n p r t
Enter your word (or ‘@’ to pass or ‘!’ to quit): @
Total score for word : 0
Total score for game : 6

Letters of player 2 : a c i g n n o v x z
Enter your word (or ‘@’ to pass or ‘!’ to quit): gain
Total score for word : 5
Total score for game : 10

Letters of player 1 : c e f g h i n p r t
Enter your word (or ‘@’ to pass or ‘!’ to quit): !

Total score for player 1: 6
Total score for player 2: 10
Player 2 won!

ps-小问题是有看到一个叫chris大人写的code 可是有个bug, 就是当玩家按到"@" pass后 等到第二轮的时候还应该出现的是上次的那组字母 等这次还拼不出来按@后 第三轮的时候初始问题才会换。。。

= =请大侠按照菜鸟java初学者看的懂的写 或者标注下巴。。. 急求啊 大哥
最新回答
仰天长啸我也要穿越

2024-11-04 15:53:55

可能不符合要求,自己看吧
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;

public class Words {
private static char[] consonant={'B','C','D','F','G','H','J','K','L','M','N','P','Q',
'R','S','T','V','W','X','Y','Z'};
private static char[] vowel={'A','E','I','O','U'};
private static ArrayList<String> dict = new ArrayList<String>();

public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
getResource();
int score1 = 0;
int score2 = 0;
Scanner userInput = new Scanner(System.in);
String A= null;
int count = 0;
boolean flag = false;//true 为Player1, FALSE为Player2
do{
String random = randomString();
System.out.println(random);
if(flag)
{
System.out.println("Player1 input a word: (or ‘@’ to pass or ‘!’ to quit)");
A=userInput.nextLine();
if(A.equals("@") )
{
flag =!flag;
System.out.println("Player2 input a word: (or ‘@’ to pass or ‘!’ to quit)");
A =userInput.nextLine();
}
}
else
{
System.out.println("Player2 input a word: (or ‘@’ to pass or ‘!’ to quit)");
A=userInput.nextLine();
if(A.equals("@") )
{
flag = !flag;
System.out.println("Player1 input a word: (or ‘@’ to pass or ‘!’ to quit)");
A =userInput.nextLine();
}
}
if(A.equals("@"))
{
System.out.println("反复切换,系统退出");
return;
}
else
{
String temp = null;
if(flag)
{
//String random = randomString();
temp = match(random,A);
if(find(temp,dict))
score1+=2;
System.out.println(" Player1 get "+score1+" points");
}
else
{
//String random = randomString();
temp = match(random,A);
if(find(temp,dict))
score2+=2;;
System.out.println(" Player2 get "+score2+" points");
}

}

count++;

}while(count <10&&(!A.equals("!")));

System.out.println("游戏结束!");
System.out.println("Player1 get"+score1+"points");
System.out.println("Player2 get"+score2+"points");
if(A.equals("!") )
System.out.println("exit");

}

public static String randomString()//产生随机字符串
{
Random generator = new Random();
String temp = new String();
for(int i = 0;i<8;i++)
temp += consonant[generator.nextInt(20)+1];
temp+=vowel[generator.nextInt(4)+1];
temp+=vowel[generator.nextInt(4)+1];
return temp;
}

public static String match(String str1,String str2)//
{
if(str1.contains(str2))
{
System.out.println("Bingo,you get it!");
return str2;
}
else
{
String temp = new String();
L1: for(int i = 0;i<str2.length();i++)
{
for(int j = 0;j<str1.length();j++)
if(str2.charAt(i)==str1.charAt(j))
{
temp += str2.charAt(i);
continue L1;
}
}
return temp;
}
}
public static boolean find(String str,ArrayList<String> soure)//从读取的信息中查找输入的字符串
{
for(int i = 0;i <soure.size();i++)
{
if(soure.get(i).equals(str))
{
System.out.println("Find It ! You can get two points");
return true;
}
}
return false;
}
public static void getResource() throws IOException//读取words.txt文件
{
FileReader fin = new FileReader("words.txt");
BufferedReader bin = new BufferedReader(fin);
String str = null;
do{
str = bin.readLine();
if(str!=null)
dict.add(str);
}while(str!=null);
bin.close();
fin.close();
}

}
盏茶作酒

2024-11-04 10:02:44

1