2012-04-12 54 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