2012-04-12 66 views
0

我已经使用动作进行了测验。我已经开始在android(完全新手)中进行测验,跟着动作脚本,而不是让我的头脑转向逻辑。Android测验逻辑/编码

我不知道如何处理change_question函数,特别是这第一个块。下面。

function change_question(){ 
    if(tick.visible){ 
    right_answers++; 
    } 
    if(cross.visible){ 
    wrong_answers++; 
    } 
    if(qno==questions.length){ 
     gotoAndPlay(2); 
    }else{ 
    tick.visible=false; 
    cross.visible=false; 
    rnd1=Math.ceil(Math.random()*3); 
    rnd2=Math.ceil(Math.random()*questions.length)-1; 
    q.text=questions[rnd2]; 
    if(questions[rnd2]=="x"){ 
    change_question(); 
    } 
    questions[rnd2]="x"; 
    enable_disable(1); 

任何指导将不胜感激。提前致谢。


这是我的android代码到目前为止!

package ks3.mathsapp.project; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class MathsMultiplicationActivity extends Activity { 


TextView quesnum; 
TextView ques; 
TextView anst; 
TextView ans1; 
TextView ans2; 
TextView ans3; 
TextView ans4; 
ImageView cross; 
ImageView tick; 


    int qno = 0; 
    int right_answers = 0; 
    int wrong_answers = 0; 
    int rnd1; 
    int rnd2; 

    String [] questions = {"How much mph does the F-Duct add to the car?", 
       "What car part is considered the biggest performance variable?", 
       "What car part is designed to speed up air flow at the car rear?", 
       "In seconds, how long does it take for a F1 car to stop when travelling at 300km/h?", 
       "How many litres of air does an F1 car consume per second?", 
       "What car part can heavily influence oversteer and understeer?", 
       "A third of the cars downforce can come from what?", 
       "Around how much race fuel would be consumed per 100km?","The first high nose cone was introduced when?", 
       "An increase in what, has led to the length of exhaust pipes being shortened drastically?"}; 

    String [] [] answers = {{"3","5","8","9"}, 
    {"Tyres","Front Wing","F-Duct","Engine"}, 
    {"Diffuser","Suspension","Tyres","Exhaust"}, 
    {"4","6","8","10"}, 
    {"650","10","75","450"}, 
    {"Suspension","Tyres","Cockpit","Chassis"}, 
    {"Rear Wing","Nose Cone","Chassis","Engine"}, 
    {"75 Litres","100 Litres","50 Litres","25 Litres"}, 
    {"1990","1989","1993","1992"}, 
    {"Engine RPM","Nose Cone Lengths","Tyre Size","Number of Races"}}; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.multiplechoice); 


    // Importing all assets like buttons, text fields 
    quesnum = (TextView) findViewById(R.id.questionNum); 
    ques = (TextView) findViewById(R.id.question); 
    anst = (TextView) findViewById(R.id.answertit); 
    ans1 = (TextView) findViewById(R.id.answer1); 
    ans2 = (TextView) findViewById(R.id.answer2); 
    ans3 = (TextView) findViewById(R.id.answer3); 
    ans4 = (TextView) findViewById(R.id.answer4); 
    cross = (ImageView) findViewById(R.id.cross); 
    tick = (ImageView) findViewById(R.id.tick); 

    cross.setVisibility(View.GONE); 
    tick.setVisibility(View.GONE); 



     if(rnd1==1){ 
      TextView quesAns1 = (TextView) findViewById(R.id.answer1); 
      quesAns1.setText("1) " + answers[0]) ;    

      TextView quesAns2 = (TextView) findViewById(R.id.answer2); 
      quesAns2.setText("2) " + answers[1]) ; 

      TextView quesAns3 = (TextView) findViewById(R.id.answer3); 
      quesAns3.setText("3) " + answers[2]) ; 

      TextView quesAns4 = (TextView) findViewById(R.id.answer4); 
      quesAns4.setText("4) " + answers[3]) ; 
     } 

     if(rnd1==2){ 
      TextView quesAns1 = (TextView) findViewById(R.id.answer1); 
      quesAns1.setText("1) " + answers[2]) ;    

      TextView quesAns2 = (TextView) findViewById(R.id.answer2); 
      quesAns2.setText("2) " + answers[0]) ; 

      TextView quesAns3 = (TextView) findViewById(R.id.answer3); 
      quesAns3.setText("3) " + answers[1]) ; 

      TextView quesAns4 = (TextView) findViewById(R.id.answer4); 
      quesAns4.setText("4) " + answers[3]) ; 
     } 
     if(rnd1==3){ 
      TextView quesAns1 = (TextView) findViewById(R.id.answer1); 
      quesAns1.setText("1) " + answers[1]) ;    

      TextView quesAns2 = (TextView) findViewById(R.id.answer2); 
      quesAns2.setText("2) " + answers[2]) ; 

      TextView quesAns3 = (TextView) findViewById(R.id.answer3); 
      quesAns3.setText("3) " + answers[0]) ; 

      TextView quesAns4 = (TextView) findViewById(R.id.answer4); 
      quesAns4.setText("4) " + answers[3]) ; 
     } 


    } 


    } 

这是我一直在使用,以帮助逻辑的动作脚本模型。

var qno=0;var rnd1; var rnd2; 
    tick.visible=false;cross.visible=false; 
    var right_answers=0;var wrong_answers=0; 

    function change_question(){ 
    if(tick.visible){ 
    right_answers++; 
    } 
    if(cross.visible){ 
    wrong_answers++; 
    } 
    if(qno==questions.length){ 
     gotoAndPlay(2); 
    }else{ 
    tick.visible=false; 
    cross.visible=false; 
    rnd1=Math.ceil(Math.random()*3); 
    rnd2=Math.ceil(Math.random()*questions.length)-1; 
    q.text=questions[rnd2]; 
    if(questions[rnd2]=="x"){ 
    change_question(); 
    } 
    questions[rnd2]="x"; 
    enable_disable(1); 

    if(rnd1==1){opt1.text=answers[rnd2][0];opt2.text=answers[rnd2][1];opt3.text=answers[rnd2][2];opt4.text=answers[rnd2][3];} 
    if(rnd1==2){opt1.text=answers[rnd2][2];opt2.text=answers[rnd2][0];opt3.text=answers[rnd2][1];opt4.text=answers[rnd2][3];} 
    if(rnd1==3){opt1.text=answers[rnd2][1];opt2.text=answers[rnd2][2];opt3.text=answers[rnd2][0];opt4.text=answers[rnd2][3];} }} 

    function enable_disable(a){ 
    if(a==0) {shade1.mouseEnabled=false;shade2.mouseEnabled=false;shade3.mouseEnabled=false;shade4.mouseEnabled=false;} 
    if(a==1){shade1.mouseEnabled=true;shade2.mouseEnabled=true;shade3.mouseEnabled=true;shade4.mouseEnabled=true;}} 

change_question(); 

next_b.addEventListener(MouseEvent.CLICK, ButtonAction1); 
function ButtonAction1(eventObject:MouseEvent) {qno++;change_question();} 

shade1.addEventListener(MouseEvent.CLICK, ButtonAction2); 
shade2.addEventListener(MouseEvent.CLICK, ButtonAction3); 
shade3.addEventListener(MouseEvent.CLICK, ButtonAction4); 
shade4.addEventListener(MouseEvent.CLICK, ButtonAction5); 

function ButtonAction2(eventObject:MouseEvent){enable_disable(0);if(rnd1==1){  tick.visible=true;tick.y=shade1.y}else{cross.visible=true;cross.y=shade1.y}} 
function ButtonAction3(eventObject:MouseEvent){enable_disable(0);if(rnd1==2){tick.visible=true;tick.y=shade2.y}else{cross.visible=true;cross.y=shade2.y}} 
function ButtonAction4(eventObject:MouseEvent){enable_disable(0);if(rnd1==3){tick.visible=true;tick.y=shade3.y}else{cross.visible=true;cross.y=shade3.y}} 
function ButtonAction5(eventObject:MouseEvent){enable_disable(0);if(rnd1==4){tick.visible=true;tick.y=shade4.y}else{cross.visible=true;cross.y=shade4.y}} 


stop(); 
+0

哦,我的!你总是写这样的代码吗?如何换行和缩进? – 2012-04-12 16:38:17

+0

对不起,我做了一些改动。希望这使得它更容易阅读。难以全部复制。 – ManWithNoName 2012-04-12 16:46:59

回答

0

我给你几点(我会在绝对没有逻辑顺序的情况下将它们编辑到这个答案中)。

  • 当你定义自己的rnd秒,在成员TextView[]设置你的问题。这样你就不会有那么多的电话打到findViewById(),如果在java中知道enhanced for-loop,这会为你节省很多代码。

  • shade1.addEventListener(MouseEvent.CLICK, ButtonAction2);将成为

    shade1.setOnClickListener(new OnClickListener() { 
        public void onClick(View view) { 
         buttonAction2(); 
        } 
    }; 
    
  • 你找到了setVisibilty()getVisibility(),如果你只是想禁用其他元素的onclick事件,您可以使用setEnabled(true | false)

希望帮助打动你沿。

+0

谢谢sam,我已经开始重新编写代码。我将尽快发布我在主要问题上所做的工作。 谢谢! – ManWithNoName 2012-04-13 10:04:22