☆코딩개발

자바게임 만들기 영어공부하기게임

과라나 2012. 12. 4. 11:30
반응형

영어공부하기 게임입니다. 자바 강의시간에 과제물로 만들었던 것 입니다.

게임 설명으로는 틀리면 생명이 깍이고, 맞으면 미션볼이 깍입니다. 미션볼을 모두 제거하면 클리어 하게 됩니다.

원래 소스파일을 통째로 올렸었는데, 의미 없는 것 같아 수정했습니다. awt기반으로 만들었습니다. 감사합니다.

 

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class Gam extends Applet implements ActionListener, Runnable {
 Font font;
 Thread t1;
 int n = 0, m = 0, width = 70, height = 30, cnt = 0;
 int x = 30, y = 30, num = 5, num2 = 10;
 Button[] btn = new Button[10];
 Button ok;
 Vector v;
 Label lbl1, lbl2, lbl3, lbl4;
 boolean end = false;

 public void init() {
  setLayout(null);
  resize(400, 400);
  font = new Font("Serif", Font.BOLD, 30);
  t1 = new Thread(this);
  v = new Vector();
  lbl1 = new Label("안녕하세요");
  lbl1.setBounds(155, 9, 90, 20);
  lbl2 = new Label("영어공부!.. 단어를 맞추세요!");
  lbl2.setBounds(150, 150, 200, 20);
  lbl3 = new Label("생명");
  lbl3.setBounds(1, 250, 30, 20);
  lbl4 = new Label("미션");
  lbl4.setBounds(1, 275, 30, 20);
  ok = new Button("시작");
  ok.setBounds(155, 200, width, height);
  ok.addActionListener(this);
  cnt = (int) (Math.random() * 10);

  v.addElement("CAT");
  v.addElement("BEAR");
  v.addElement("TIGER");
  v.addElement("DOG");
  v.addElement("ELEPHANT");
  v.addElement("GIRAFFE");
  v.addElement("WHALE");
  v.addElement("DEER");
  v.addElement("RABBIT");
  v.addElement("MONKEY");
  v.addElement("고양이");
  v.addElement("곰");
  v.addElement("호랑이");
  v.addElement("강아지");
  v.addElement("코끼리");
  v.addElement("기린");
  v.addElement("돌고래");
  v.addElement("사슴");
  v.addElement("토끼");
  v.addElement("원숭이");

  for (int i = 0; i < 10; i++) {
   btn[i] = new Button("");
   btn[i].setLabel(v.elementAt(i).toString());
   btn[i].addActionListener(this);
  }
  btn[0].setBounds(15, 30, width, height);
  btn[1].setBounds(85, 30, width, height);
  btn[2].setBounds(155, 30, width, height);
  btn[3].setBounds(225, 30, width, height);
  btn[4].setBounds(295, 30, width, height);
  btn[5].setBounds(15, 60, width, height);
  btn[6].setBounds(85, 60, width, height);
  btn[7].setBounds(155, 60, width, height);
  btn[8].setBounds(225, 60, width, height);
  btn[9].setBounds(295, 60, width, height);
  add(lbl1);
  add(lbl2);
  add(lbl3);
  add(lbl4);
  add(btn[0]);
  add(btn[1]);
  add(btn[2]);
  add(btn[3]);
  add(btn[4]);
  add(btn[5]);
  add(btn[6]);
  add(btn[7]);
  add(btn[8]);
  add(btn[9]);
  add(ok);
 }

 public void paint(Graphics g) {
  if (n == 60) {
   m++;
   n = 0;
  }
  if (!end) {
   g.setFont(font);
   g.drawString(Integer.toString(m), 240, 225);
   g.drawString("분", 265, 225);
   g.drawString(Integer.toString(n), 300, 225);
   g.drawString("초", 325, 225);
   n++;
  }
  x = 30;
  for (int i = 0; i < num; i++) {
   g.setColor(Color.red);
   g.fillOval(x, 250, 25, 25);
   x += 25;
  }
  y = 30;
  for (int i = 0; i < num2; i++) {
   g.setColor(Color.green);
   g.fillOval(y, 275, 25, 25);
   y += 25;
  }
 }

 public void run() {
  while (true) {
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    System.out.println(e.getMessage());
   }
   repaint();
  }
 }

 @Override
 public void actionPerformed(ActionEvent e) {
  if (e.getSource() == ok) {
   t1.start();
   cnt = (int) ((Math.random() * 10) + 10);
   lbl1.setText(v.elementAt(cnt).toString());
  }
  for (int i = 0; i < 10; i++) {
   if (e.getSource() == btn[i]) {
    if (cnt == (i + 10))
     num2--;
    else
     num--;

    cnt = (int) ((Math.random() * 10) + 10);
    lbl1.setText(v.elementAt(cnt).toString());

    if (num2 == 0) {
     lbl2.setText("참 잘했어요^^!");
     lbl2.setText(lbl2.getText() + "  " + m + "분" + n + "초");
     end = true;
    } else if (num == 0) {
     lbl2.setText("탈락..안타깝네요");
     lbl2.setText(lbl2.getText() + "  " + m + "분" + n + "초");
     end = true;
    }
   }
  }
 }
}

 

이상입니다.

반응형