我在编程方面非常新,我试图在测验中生成随机问题。我可以管理问题是随机的,但问题仍在重复。我如何防止它们重复?我已经看过几篇文章,但我不太了解如何实现代码。
这是我的主要活动,其中存储和显示问题:
$list = for ($i=0; $i -lt $obj.sid.Length; $i++)
{
[PsCustomObject]@{
SID = $obj.sid[$i]
Accounts = $obj.Accounts[$i]
}
}
$selected = $list | Out-Gridview -PassThru
Write-Host ('You selected {0} - {1}' -f $selected.Accounts, $selected.SID)
这是我的构造函数:
class App extends React.Component {
state = {
val: '',
description: null,
};
handleChange = (e) => {
this.setState({ val: e.target.value });
}
OddEven(num) {
const number = parseInt(num);
let {description} = this.state;
if (Number.isInteger(number)) {
if (number % 2 == 0) {
description = <strong>even</strong>;
} else {
description = <i>odd</i>;
}
this.setState({description: description});
} else {
this.setState({description: null});
}
}
render() {
return (
<div>
<input type='text' onChange={this.handleChange} />
<button onClick={() =>this.OddEven(this.state.val) }>
Odd Even Check?
</button>
{this.state.description}
</div>
);
}
}
ReactDOM.render(
<App />,
document.getElementById('root')
);
答案 0 :(得分:0)
您可以定义一个List
来保存您的事实,确保将此列表而不是您的数组洗牌,最后,每次使用时删除1个事实。
这样的事情:
List<Facts> factsList = Arrays.asList(factArray);
public void randomFacts (){
shuffelFacts (); //shuffles the list instead of the array
if (factsList.isEmpty()) return; //make sure there're more items
Facts facts = factsList.remove(0);
textView.setText(facts);
aBoolean = facts.ismAnswers();
}
答案 1 :(得分:0)
public void randomFacts (){
shuffelFacts ();
for (Facts facts : factArray) {
if (!facts.isAnswered()){
textView.setText(facts.getmFacts());
facts.setisAnswered(true);
return;
}
}
}
问题解答后,您设置为setisAnswered(true)
当你随机播放列表并选择另一个答案时,你只会选择那些当前没有回答的答案
if (!facts.isAnswered()){
textView.setText(facts.getmFacts());
}