在数组中获取随机问题而不重复问题

时间:2018-06-01 13:21:00

标签: android arrays random

我在编程方面非常新,我试图在测验中生成随机问题。我可以管理问题是随机的,但问题仍在重复。我如何防止它们重复?我已经看过几篇文章,但我不太了解如何实现代码。

这是我的主要活动,其中存储和显示问题:

$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')
);

2 个答案:

答案 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()); }