我的任务是创建一个名为Taboo的游戏。它由一个主要词和3个禁止词组成。游戏的目的是在屏幕上显示单词,然后用户必须在不使用单词本身或禁止单词的情况下描述主单词。
到目前为止,我已经能够读取我存储在CSV中的数据了,并且当我选择输出BannedWords时,它会这样做。现在的问题是,当它输出MainWord或BannedWord1等时......它输出CSV中每条记录的数据。
以下是我的CSV中的数据(这只是一个记录很少的测试,所以当它工作时我可以介绍其余的。)
树,棕色,绿色,自然
淀,蓝,水,湿
苹果,绿,水果,健康
如果我选择输出MainWord,这是第一个单词,它输出如下:
树
湖
苹果
我需要以某种方式将正在读取的数据从单独存储到集合中,以便在我需要使用它们时,它们输出正确并且它们以我可以显示的方式输出他们稍后在GUI JLabel中。
注意我使用NetBeans也很有用,所以我也可以使用任何内置函数。
public class Card
{
private String sMainWord;
private String sBannedWord1;
private String sBannedWord2;
private String sBannedWord3;
public Card(String sMW, String sBW1, String sBW2,String sBW3)
{
sMainWord = sMW;
sBannedWord1 = sBW1;
sBannedWord2 = sBW2;
sBannedWord3 = sBW3;
}
public void setsMainWord(String sMW)
{
sMainWord = sMW;
}
public String getsMainWord()
{
return sMainWord;
}
public void setsBannedWord1(String sBW1)
{
sBannedWord1 = sBW1;
}
public String getsBannedWord1()
{
return sBannedWord1;
}
public void setsBannedWord2(String sBW2)
{
sBannedWord2 = sBW2;
}
public String getsBannedWord2()
{
return sBannedWord2;
}
public void setsBannedWord3(String sBW3)
{
sBannedWord3 = sBW3;
}
public String getsBannedWord3()
{
return sBannedWord3;
}
public static void main(String[] args) throws FileNotFoundException
{
String fileNameDefined = "/Users/student/NetBeansProjects/TabooGameComplete/CSData.csv";
File file = new File(fileNameDefined);
try
{
Scanner inputStream = new Scanner(file);
while(inputStream.hasNext() != false)
{
String TabooCardWords = inputStream.nextLine();
String[] information = TabooCardWords.split(",");
String MainWord = information[0];
String BannedWord1 = information[1];
String BannedWord2 = information[2];
String BannedWord3 = information[3];
Card TBC = new Card (MainWord, BannedWord1, BannedWord2, BannedWord3);
System.out.println("*" + BannedWord1 + "*");
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
您正在生成In [191]: t
Out[191]: array(['2016-07-28', '2016-08-25', '2016-09-29', '2016-10-27', '2016-11-17'], dtype='datetime64[D]')
In [192]: (t[:,None] + np.arange(-1,2)).ravel()
Out[192]:
array(['2016-07-27', '2016-07-28', '2016-07-29', '2016-08-24',
'2016-08-25', '2016-08-26', '2016-09-28', '2016-09-29',
'2016-09-30', '2016-10-26', '2016-10-27', '2016-10-28',
'2016-11-16', '2016-11-17', '2016-11-18'], dtype='datetime64[D]')
In [193]: (t[:,None] + [-1,0,1]).ravel()
Out[193]:
array(['2016-07-27', '2016-07-28', '2016-07-29', '2016-08-24',
'2016-08-25', '2016-08-26', '2016-09-28', '2016-09-29',
'2016-09-30', '2016-10-26', '2016-10-27', '2016-10-28',
'2016-11-16', '2016-11-17', '2016-11-18'], dtype='datetime64[D]')
的循环中执行输出语句,这样每次创建卡时,您都会输出其Card
。当你一个接一个地创造它们时,它们将一个接一个地输出。
即
BannedWord1
如果要输出一个//For each line in file
while(inputStream.hasNext() != false)
{
//Create Card
//Output BannedWord1 used to create Card
}
的一个元素,则需要保持您创建的Card
个对象在循环外使用: -
Card
附加点
按照惯例,java变量以小写字母和带大写的类开头,因此这可能会令人困惑
Card[] cards = new Cards[3];
int i=0;
//For each line in file
while(inputStream.hasNext() != false)
{
//Create Card
cards[i++] = newlyCreatedCardObject; //Store card object for later
//Output BannedWord1 used to create Card
}
//Output BannedWord1 from the Card created from the second line
System.out.println(cards[1].getsBannedWord1());