java - Can this code be done shortened and/or be more efficient? -
my current code:
textview question; private int qtype = -1; private int asked = 0; private void qbegin() { // todo auto-generated method stub question = (textview) findviewbyid(r.id.question); random random = new random(); int qtype = random.nextint(5); switch(qtype){ case 0: question.settext("question 1"); break; case 1: question.settext("q2"); break; case 2: question.settext("q3"); break; case 3: question.settext("q4"); break; case 4: question.settext("q5"); break; } asked++; //intlist.add(qtype); getanswers(qtype); /*if(intlist.contains(qtype) && asked <= 5){ qbegin(); } else { answercounter.settext("congratulations!!! score : "+correct); }*/ } private int answer; private void getanswers(int type) { random random = new random(); // todo auto-generated method stub switch(type){ case 1: if(random.nextint(4) == 0){ answer = 1; answer1.settext("относительно низкая температура шлаков"); answer2.settext("сложность в управлении"); answer3.settext("малая производительность"); answer4.settext("нету выделения энергии непосредственно в загрузке"); } else if (random.nextint(4) == 1){ answer = 2; answer1.settext("сложность в управлении"); answer2.settext("относительно низкая температура шлаков"); answer3.settext("малая производительность"); answer4.settext("нету выделения энергии непосредственно в загрузке"); } else if (random.nextint(4) == 2){ answer = 3; answer1.settext("сложность в управлении"); answer2.settext("малая производительность"); answer3.settext("относительно низкая температура шлаков"); answer4.settext("нету выделения энергии непосредственно в загрузке"); } else if (random.nextint(4) == 3){ answer = 4; answer1.settext("сложность в управлении"); answer2.settext("малая производительность"); answer3.settext("нету выделения энергии непосредственно в загрузке"); answer4.settext("относительно низкая температура шлаков"); } break; case 2: if(random.nextint(4) == 0){ answer = 1; answer1.settext("закрытые - плавка под слоем шихты"); answer2.settext("открытые - плавка на воздухе"); answer3.settext("вакуумные - плавка в вакууме"); answer4.settext("компрессорные - плавка под избыточным давлением"); } else if (random.nextint(4) == 1){ answer = 2; answer1.settext("открытые - плавка на воздухе"); answer2.settext("закрытые - плавка под слоем шихты"); answer3.settext("вакуумные - плавка в вакууме"); answer4.settext("компрессорные - плавка под избыточным давлением"); } else if (random.nextint(4) == 2){ answer = 3; answer1.settext("открытые - плавка на воздухе"); answer2.settext("вакуумные - плавка в вакууме"); answer3.settext("закрытые - плавка под слоем шихты"); answer4.settext("компрессорные - плавка под избыточным давлением"); } else if (random.nextint(4) == 3){ answer = 4; answer1.settext("открытые - плавка на воздухе"); answer2.settext("вакуумные - плавка в вакууме"); answer3.settext("компрессорные - плавка под избыточным давлением"); answer4.settext("закрытые - плавка под слоем шихты"); } break; case 3: if(random.nextint(4) == 0){ answer = 1; answer1.settext("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением"); answer2.settext("в которой используеться активное сопротивление в качестве шихты"); answer3.settext("в которой тепло не передаеться тепло излучением"); answer4.settext("в которой которая делиться на компрессорную печь с активным сопротивлением"); } else if (random.nextint(4) == 1){ answer = 2; answer1.settext("в которой используеться активное сопротивление в качестве шихты"); answer2.settext("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением"); answer3.settext("в которой используеться активное сопротивление в качестве шихты"); answer4.settext("в которой которая делиться на компрессорную печь с активным сопротивлением"); } else if (random.nextint(4) == 2){ answer = 3; answer1.settext("в которой используеться активное сопротивление в качестве шихты"); answer2.settext("в которой используеться активное сопротивление в качестве шихты"); answer3.settext("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением"); answer4.settext("в которой которая делиться на компрессорную печь с активным сопротивлением"); } else if (random.nextint(4) == 3){ answer = 4; answer1.settext("в которой используеться активное сопротивление в качестве шихты"); answer2.settext("в которой используеться активное сопротивление в качестве шихты"); answer3.settext("в которой которая делиться на компрессорную печь с активным сопротивлением"); answer4.settext("в которой тепло выделяется в результате прохождения тока через проводники с активным сопротивлением"); } break; case 4: if(random.nextint(4) == 0){ answer = 1; answer1.settext("correct"); answer2.settext("incorrect"); answer3.settext("incorrect"); answer4.settext("incorrect"); } else if (random.nextint(4) == 1){ answer = 2; answer1.settext("inorrect"); answer2.settext("correct"); answer3.settext("incorrect"); answer4.settext("incorrect"); } else if (random.nextint(4) == 2){ answer = 3; answer1.settext("inorrect"); answer2.settext("incorrect"); answer3.settext("correct"); answer4.settext("incorrect"); } else if (random.nextint(4) == 3){ answer = 4; answer1.settext("inorrect"); answer2.settext("incorrect"); answer3.settext("incorrect"); answer4.settext("correct"); } break; case 5: if(random.nextint(4) == 0){ answer = 1; answer1.settext("correct"); answer2.settext("incorrect"); answer3.settext("incorrect"); answer4.settext("incorrect"); } else if (random.nextint(4) == 1){ answer = 2; answer1.settext("inorrect"); answer2.settext("correct"); answer3.settext("incorrect"); answer4.settext("incorrect"); } else if (random.nextint(4) == 2){ answer = 3; answer1.settext("inorrect"); answer2.settext("incorrect"); answer3.settext("correct"); answer4.settext("incorrect"); } else if (random.nextint(4) == 3){ answer = 4; answer1.settext("inorrect"); answer2.settext("incorrect"); answer3.settext("incorrect"); answer4.settext("correct"); } break; } }
- basicly, made simple app android, picks random question you, , picks specific answers, 1 of answers correct, other's aren't.
- also after editing qbegin method, started give me questions wrong answers!!! me aswell, please.
p.s. ignore odd language!
yes, code can made shorter , nicer.
class questionwithanswers { private final string question; private final string[] answers; private final string correctanswer; public questionwithanswers( // string question, // string correctanswer, // string... wronganswers, // random rnd // ) { int n = wronganswers.length; this.question = question; this.answers = arrays.copy(wronganswers, n + 1); this.answers[n] = correctanswer; collections.shuffle(arrays.aslist(this.answers), rnd); } public boolean iscorrect(string answer) { return answer.equals(correctanswer); } public string[] getanswers() { return answers.clone(); } }
based on data structure, should pretty simple make code shorter, since don't need shuffle answers yourself.
Comments
Post a Comment