소개글
자바 텀프로젝트로 짝맞추기 게임을 구현하였습니다.텀프로젝트 당시 웹사이트에서 참고할 만한 소스가 없었던 기억이 나서 올려봅니다.
Term1.jar을 실행하시면 36개의 중복된 숫자가 랜덤으로 나옵니다. 잠시후 모든숫자가 가려지고 같은 숫자를 두개 맞춰 모두 맞추면 게임이 클리어 됩니다.
시간이 모자라 이미지와 인터페이스에 신경을 많이 쓰지 못했는데, 이부분을 보충한다면 더 완성도 높은 게임이 될듯합니다.^^
컴파일 실행환경
윈도우,리눅스/JDK본문내용
import java.awt.*;import javax.swing.*;
import java.awt.event.*;
import java.util.*;
/**
짝 맞추기 게임
*/
public class Term1 extends JComponent
{
/**
초기화
*/
public Term1()
{
//int형
count = 18; //카운트
turn = 30; //턴
status = 1; //1(최초입력) or 2(이후입력)
source1 = 0; //버튼1
source2 = 0; //버튼2
temp = 0; //숫자가 다를 경우 두번째 버튼을 X로 바꿔주기 위한 임시 변수
//String형
output = null; //결과물
myTable = new String[36]; //숫자 테이블
myTable1 = new String[36]; //숫자 테이블을 항상 가지고 있음
//그외
myButton = new JButton[36]; //버튼
generator = new Random(); //랜덤함수
// 숫자테이블 0-17
for (int i=0; i<18; i++)
{
int n=1+generator.nextInt(50); // 0 <= n < 18
int j=0;
//이미 한번 나온 수인지 검사
while (j<i)
{
if (myTable[j].equals(String.valueOf(n)))
{
n = 1 + generator.nextInt(50);
j=0;
}
else j++;
}
myTable[i] = String.valueOf(n);
//System.out.println(myTable[i]);
}
// 숫자테이블 18-35(0-17에 저장된 값을 복사하되 임의적으로 복사)
for (int i=0; i<18; i++)
{
int n=18+generator.nextInt(18); // 18 <= n < 36
int j=0;
//이미 한번 나온 수인지 검사
while (j==0)
{
if (myTable[n]==null) break;
else{
n=18+generator.nextInt(18);
j=0;
}
}
myTable[n] = myTable[i];
//System.out.println(n);
}
//처음에 숫자를 보여주기 위함
for(int i=0; i<18; i++)
{
myButton[i] = new JButton(myTable[i]);
//myButton[i].addMouseListener(listener);
myTable1[i] = myTable[i];
myButton[i+18] = new JButton(myTable[i+18]);
//myButton[i+18].addMouseListener(listener);
myTable1[i+18] = myTable[i+18];
//System.out.println(i+"/"+(i+18));
}
}
압축파일 내 파일목록
Term1.jar
Term1.java
Term1Viewer.java
Term1.java
Term1Viewer.java