/**
  * 漢字テスト「生き物」
  * 
  **/

 import java.awt.*;
 import java.awt.event.*;
 import java.applet.Applet;
 import java.awt.Graphics;
 import java.awt.Image;
 import java.lang.Math;

 public class i extends Applet implements ActionListener{

   TextField tf1, tf2, tf3, tf4, tf5, name;  //ユーザの入力するTextfield
   TextArea ta1;     // 採点後コメントのでるTextArea
   Button b1;            //採点するときにユーザがおすボタン
   Label label1, label2, label3, label4, label5, label6;//正誤を表すLabel
   String Q1, Q2, Q3, Q4, Q5;   //ユーザが入力した答えを代入する
   String answer1 = "きつつき"; //1問目の答え
   String answer2 = "あひる";  //2問目の答え
   String answer3 = "みみず";  //3問目の答え
   String answer4 = "きりん";   //4問目の答え
   String answer5 = "かもしか";   //5問目の答え
   String secans = "最近肩こっててさぁ〜"; //秘密の裏技の答え
   String msg = new String ("Correct!"); //「正解」の表示
   String msg2= new String ("wrong!");//「はずれ」の表示
   int s;   //得点を代入する変数
   
         // initメソッド:アプレットの初期化を行う
   public void init(){
                  
     setLayout(null);
     setBackground(Color.white);
     //ユーザが名前を入力するtextfield
     name = new TextField("",30);
     add(name);
     name.addActionListener(this);
     name.setBounds(285,15,100,30);

     tf1 = new TextField("",10);    //一問目に使う解答用のtextfieldのコンストラクタ
     add(tf1);
     tf1.addActionListener(this);
     tf1.setBounds(200,70,125,30);
    
     tf2 = new TextField("",10);  //2問目に使う解答用のtextfieldのコンストラクタ
     add(tf2);
     tf2.addActionListener(this);
     tf2.setBounds(200, 140, 125, 30);

     tf3 = new TextField("",10);  //3問目に使う解答用のtextfieldのコンストラクタ
     add(tf3);
     tf3.addActionListener(this);
     tf3.setBounds(200, 200, 125, 30);

     tf4 = new TextField("",10);  //4問目に使う解答用のtextfieldのコンストラクタ
     add(tf4);
     tf4.addActionListener(this);
     tf4.setBounds(200, 250, 125, 30);

     tf5 = new TextField("",10);  //5問目に使う解答用のtextfieldのコンストラクタ
     add(tf5);
     tf5.addActionListener(this);
     tf5.setBounds(200, 310, 125, 30);
     
     Button b1= new Button("採点!"); //採点するときにユーザが押すボタンのコンストラクタ
     b1.setActionCommand("score"); //採点するときにボタンをおすと”score”commandが発動される
     b1.addActionListener(this);
     add(b1);
     b1.setBounds(200,340,50,30);

     ta1 = new TextArea("",120,20,TextArea.SCROLLBARS_HORIZONTAL_ONLY); //得点に対するコメントがかかれるtextarea。スクロールバーが下につく。
     add(ta1);
     ta1.setBounds(125,400,200,40);
     
     int s =0; //得点を代入する変数。初期設定は0点。
     
   }
 

   /**採点ボタンがおされたあとのActionEvent **/
   public void actionPerformed(ActionEvent e){
     System.out.println("actionP");
     setLayout(null);

     String command = e.getActionCommand(); //コマンドをとる

    
     String msg4= new String(""+name.getText()+"、出てって!もう顔もみたくない!早く出てって!");
     String msg3= new String("故人"+name.getText()+"は漢字は読めなくても、とてもやさしい子でした・・(泣)");
     String msg5= new String("秘密暴露コーナー:私、"+name.getText()+"は実は毎晩すっぽんエキスを愛飲しています。");
     String msg6= new String(""+name.getText()+"〜、あんたってほんっっと月並な人間よね");
     String msg7= new String(""+name.getText()+"君、悪いことは言わない、ムツゴロウさんになりなさい、ムツゴロウに。");
     String msg8= new String(""+name.getText()+"殿、あなたの無駄に博識振りをここに賞します。");
     String msg9= new String(""+name.getText()+"、肩ももうか?");
     
     /**採点ボタンが押されたら**/
     if(command.equals("score")){
       System.out.println("button pushed");
       

       Q1 = tf1.getText();      //各テキストフィールドにユーザが入力した文字を取る
       Q2 = tf2.getText();
       Q3 = tf3.getText();
       Q4 = tf4.getText();
       Q5 = tf5.getText();
       //得点の初期設定。最初は0点。ユーザが解答を修正後に、前に採点してえた得点にさらに加算しない役割も果たす。
       s = 0;

      
        
         /**第1問目**/
       if(Q1.equals(answer1)){   //「きつつき」と答えたばあい。
         System.out.println("1a");
         label1 = new Label(msg,Label.CENTER);//"Correct!"が表示される。
         add(label1);
         label1.setBounds(350,70,50,20);  //レイアウト
         
         s = s + 20;   //20点加算される
       }
       
       else {       //その他違う答えの場合。
         System.out.println("1wrong asw");
         
         label1 = new Label(msg2,Label.CENTER);//"wrong!"が表示される
         add(label1);
         label1.setBounds(350,70,50,20);
       }
       //以下も同型
       
       /** 第2問目 **/
       if(Q2.equals(answer2)){           //「あひる」
         System.out.println("2a");

         label2 = new Label(msg,Label.CENTER);
         add(label2);
         label2.setBounds(350,140,50,20);

         s = s + 20;
       }
       else{
         System.out.println("2wrong asw");
         label2 = new Label(msg2,Label.CENTER);
         add(label2);
         label2.setBounds(350,140,50,20);
       }
       /**第三問目**/
       if(Q3.equals(answer3)){         //「みみず」
          System.out.println("3a");
          
          label3 = new Label(msg,Label.CENTER);
          add(label3);
          label3.setBounds(350,200,50,20);
          
          s = s + 20;
        }
        else{
          System.out.println("3wrong asw");
          label3 = new Label(msg2,Label.CENTER);
          add(label3);
          label3.setBounds(350,200,50,20);
        }

       /**第4問目**/
        if(Q4.equals(answer4)){              //「きりん」
          System.out.println("4a");
          
          label4 = new Label(msg,Label.CENTER);
          add(label4);
          label4.setBounds(350,260,50,20);
          
          s = s + 20;
        }
        else{
          System.out.println("4wrong asw");
          label4 = new Label(msg2,Label.CENTER);
          add(label4);
          label4.setBounds(350,260,50,20);
        }

       /**第5問目**/
       if(Q5.equals(answer5)){              //「かもしか」
         System.out.println("5a");
         
         label5 = new Label(msg,Label.CENTER);
         add(label5);
         label5.setBounds(350,320,50,20);
         
         s = s + 20;
       }
       else if(Q5.equals(secans)){              //「秘密の答え」
         System.out.println("secret answer");
         
         label5 = new Label(msg,Label.CENTER);
         add(label5);
         label5.setBounds(350,320,50,20);
         
         s = s + 100000;
       }
       else{
         System.out.println("5wrong asw");
         
         label5 = new Label(msg2,Label.CENTER);
         add(label5);
         
         label5.setBounds(350,320,50,20);
       }

       /** 点数別のリアクション**/
        
       if(s == 0){                         //0点の場合
         System.out.println("msg0");
         ta1.setText(msg3);              //メッセージを書く
         
         setBackground(Color.gray);      //背景色を変える。グレイ
       }
       if(s == 20){
         System.out.println("msg20");  //20点の場合
         ta1.setText(msg4);
         
         setBackground(Color.pink);
       }
        if(s == 40){                      //40点の場合
         System.out.println("msg40");
         ta1.setText(msg5);
         
         setBackground(Color.white);
       }
       if(s == 60){                         //60点の場合
         System.out.println("msg60");
         ta1.setText(msg6);
         
         setBackground(Color.orange);
       }
       if(s == 80){                       //80点の場合
         System.out.println("msg80");
         ta1.setText(msg7);
         
         setBackground(Color.blue);
       }
       if(s == 100){                     //100点の場合
         System.out.println("msg100");
         ta1.setText(msg8);
         
         setBackground(Color.red);
       }
        if(s >= 100000){                  //裏技を使ったとき
         System.out.println("msg100000");
         ta1.setText(msg9);
         
         setBackground(Color.yellow);
       }
       repaint();
       
     }
   }
   
   public void paint(Graphics g){
       Font font;

     setLayout(new FlowLayout(FlowLayout.LEFT));
     g.setFont(new Font("impact",Font.ITALIC,20));
     g.drawString("あなたの下の名前",100,30);
     g.setFont(new Font("impact",Font.BOLD,30));   //質問をコンストラクト
     //g.setFont(font30);
     g.drawString("啄木鳥",100,85);
     g.drawString("家鴨",100,160);
     g.drawString("蚯蚓",100,215);
     g.drawString("麒麟",100,270);
     g.drawString("羚羊",100,325);
     g.setColor(Color.green);
     g.drawString("Your score is "+s+" !",100,390);  //点を表示
     
   }
 }