자바게임 만들기 영어공부하기게임
영어공부하기 게임입니다. 자바 강의시간에 과제물로 만들었던 것 입니다.
게임 설명으로는 틀리면 생명이 깍이고, 맞으면 미션볼이 깍입니다. 미션볼을 모두 제거하면 클리어 하게 됩니다.
원래 소스파일을 통째로 올렸었는데, 의미 없는 것 같아 수정했습니다. 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 |