2012-04-12 4 views
0

나는 actionscript를 사용하여 퀴즈를 만들었습니다. 나는 안드로이드 (완전한 초보자)에서 퀴즈에 대한 작업을 시작했고, 논리를 중심으로 내 머리를 쓰지 않는 액션 스크립트를 따라 갔다.안드로이드 퀴즈 논리/코딩

나는 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); 

모든 안내를 받으실 수 있습니다. 미리 감사드립니다.


여기 내 안드로이드 코드입니다!

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

오 마이! 당신은 항상 그런 식으로 코드를 작성합니까? 줄 바꿈과 들여 쓰기는 어떻습니까? –

+0

죄송합니다. 몇 가지 사항을 변경했습니다. 바라기를 그렇게 읽는 것이 조금 쉬워집니다. 모든 것을 복사하기가 어려웠습니다. – ManWithNoName

답변

0

나는 (내가 전혀 논리적 인 순서로, 가서 내가이 답변으로 그들을 편집 할 수 있습니다) 당신에게 몇 점을 줄 것이다.

  • 당신이 당신의 개인 rnd의 정의

    는 회원 TextView[]에 질문을 설정합니다. 이 방법을 사용하면 많은 사람들이 findViewById()을 호출하는 방법을 알지 못하며 java에서 enhanced for-loop을 알게되면 많은 코드가 저장됩니다.

  • shade1.addEventListener(MouseEvent.CLICK, ButtonAction2);setVisibilty()getVisibility(), 당신은 단순히 다른 요소에 온 클릭 이벤트를 사용하지 않으려면 당신을 이동하는 데 도움이 setEnabled(true | false)

희망을 사용할 수 있습니다 발견

shade1.setOnClickListener(new OnClickListener() { 
    public void onClick(View view) { 
     buttonAction2(); 
    } 
}; 
  • 될 것입니다 을 따라서.

  • +0

    감사합니다. 샘 내가 코드 작업을 다시 시작했습니다. 나는 주된 질문에서 내가 한 것을 곧 게시 할 것이다. 감사합니다. – ManWithNoName