반응형
블로그 이미지
취미생활 추천받아여~       게임이든, 여가생활이든 :D

카테고리

분류 전체보기 (615)
☆잡동사니 (501)
☆코딩개발 (76)
☆영어공부 (38)
★★★★★★ (0)
Total
Today
Yesterday


반응형

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

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

원래 소스파일을 통째로 올렸었는데, 의미 없는 것 같아 수정했습니다. 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;
    }
   }
  }
 }
}

 

이상입니다.

반응형

'☆코딩개발' 카테고리의 다른 글

이클립스에서 사용하는 유용한 단축키  (0) 2013.02.12
Runnable 쓰레드 정지했다가 재시작하는 방법!  (0) 2013.02.05
자바 api 주소  (0) 2013.01.30
11월 27일 수업  (0) 2012.11.27
11월20일 수업  (0) 2012.11.20
11월13일 수업  (0) 2012.11.13
Posted by 과라나
, |

최근에 올라온 글

04-29 14:24

글 보관함