gpt4 book ai didi

java - 安卓/Java : Import text file and read out random lines from within the text file

转载 作者:行者123 更新时间:2023-12-02 08:10:18 26 4
gpt4 key购买 nike

我得到了到目前为止我一直在编写的代码,这将是我试图创建的一个游戏,它只是在两个玩家之间切换。每次切换时,它都应该写出一个问题,比如真心话大冒险。不允许将同一个问题写两次,因此应该能够查看它是否已经使用过该问题。

到目前为止,我已经运行了它,并且每次您点击“下一步”时,它都会在两个玩家之间切换。

但是我遇到了很多麻烦,是从名为 man 的 txt 文件中获取数据,这里有三行,text1、text2 和 text3。它应该能够随机读取这些内容并知道它是否已经读过。我无法让当前的InputStream工作,它说man文件是int,但它包含字符串?

这是到目前为止的代码:

package truthordare;

import java.io.FileInputStream;
import java.io.IOException;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
//import android.content.Intent;


public class truthordareActivity extends Activity

{
public int i = 0;
//public String man;
//public String woman;
TextView w;
TextView m;


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);


{
final Button buttonPlay = (Button) findViewById(R.id.buttonPlay);
buttonPlay.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
gameCode();
}
});
}
}


/*public FileInputStream openFileInput(int man) throws IOException
{
String collected = null;
try
{
FileInputStream fis = openFileInput(R.raw.man);
byte[] dataArray = new byte[fis.available()];
while (fis.read(dataArray) != -1)
{
collected = new String(dataArray);
}
fis.close();
}
catch (IOException e)
{
e.printStackTrace();
}
return null;

}
*/



public void gameCode()
{
// Perform action on click
setContentView(R.layout.game);
if(i == 0)
{
w = (TextView)findViewById(R.id.textView1);
w.setText("This is a player1");
i = 1;
final Button buttonNext = (Button) findViewById(R.id.buttonNext);
buttonNext.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
gameCode();
}
});
}
else
{
m = (TextView)findViewById(R.id.textView1);
m.setText("This is player2");
i = 0;
final Button buttonNext = (Button) findViewById(R.id.buttonNext);
buttonNext.setOnClickListener(new View.OnClickListener()
{
public void onClick(View v)
{
gameCode();
}
});
}

}

}

最佳答案

您是否考虑过使用 XML 文件来解答您的问题?从您提供的信息来看,结构应该是这样的:

<questions>
<question>
<id>1</id>
<text>This is question nr. 1</text>
</question>
<question>
<id>2</id>
<text>This is question nr. 2</text>
</question>
<question>
<id>3</id>
<text>This is question nr. 3</text>
</question>
</questions>

将所有问题作为问题对象加载到列表/数组列表中,当提出问题时 - 将其从列表中删除。如果您需要保存问题供以后使用,请不要删除它们,而是将所有提出的问题的 ID 保存在另一个列表中,并且当您尝试获取下一个问题时,请确保其 ID 不在 ID 列表中。

要获得随机问题,您只需使用随机数生成器,它为您提供 0 到 list.size() 之间的值。

这样您就不必一直花时间打开和关闭输入流,并且可以轻松地确保问题只被问一次。

关于java - 安卓/Java : Import text file and read out random lines from within the text file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7569282/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com