SubKorea > CYBER JAVA GAME > Å×Æ®¸®½º > ¼Ò½ººÐ¼® #1, 2 |
// ÃÖÃÊ·Î ·ÎµùÀÌ
µÊ
public void init() {
String s = getParameter("squaresize");
sqlength = s == null ? 20 : (new Integer(s)).intValue();
s = getParameter("columns");
cols = s == null ? 10 : (new Integer(s)).intValue();
s = getParameter("rows");
rows = s == null ? 20 : (new Integer(s)).intValue();
s = getParameter("blackwhite");
blackwhite = s == null ? false : (new Boolean(s)).booleanValue();
highscorehost = getParameter("highscorehost");
s = getParameter("highscoreport");
highscoreport = (short)(s == null ?
4711 : (new Integer(s)).intValue());
f = new int[cols][rows+4];
of = new int[cols][rows+4];
resize(sqlength*cols+xoffset*2, sqlength*(rows+3));
colors = new Color[8];
colors[0] = new Color(40,40,40);
if (blackwhite) {
for(int i=1; i<8; i++) colors[i] = new Color(255, 255, 255);
} else {
colors[1] = new Color(255,0,0); //
red
colors[2] = new Color(0,200,0); //
green
colors[3] = new Color(0,200,255); //
light blue
colors[4] = new Color(255,255,0); //
yellow
colors[5] = new Color(255,150,0); //
orange
colors[6] = new Color(210,0,240); //
purple
colors[7] = new Color(40,0,240); //
dark blue
}
} //
À§·Î
public void start() {
for(int i=0; i<cols; i++)
for(int j=0; j<rows+4; j++) {
f[i][j] = 0;
of[i][j] = -1;
}
level = 5;
score = 0;
pieces= 0;
curval = -1;
neednewpiece = true;
lost = false;
(killme = new Thread(this)).start();
requestFocus();
// Å°º¸µå
Å°¿Í ¸¶¿ì½º¿¡ ÀÀ´ä
} //
À§·Î
public synchronized void stop() {
if (killme != null) killme.stop();
killme = null;
} //
À§·Î
// ¸ÞÀÎ ·çÇÁ
public void run() {
while (!lost) {
try
{
int t = level == 3 ? 600 :
level == 4 ? 500 :
level == 5 ? 400 :
level == 6 ? 300 :
level == 7 ? 250 :
level == 8 ? 200 :
level == 9 ? 150 :
level == 10 ? 100 : 75;
;
Thread.sleep(t);
} catch (InterruptedException e){}
if (neednewpiece) {
if(curval > 0) {
score += curval;
pieces++;
level = 5 + pieces/30;
}
removelines();
newpiece();
neednewpiece = false;
} else {
neednewpiece = !movecurpiece(0, -1,
false);
if(!neednewpiece) curval -= 5;
}
repaint();
}
killme = null;
if (highscorehost ==
null) return;
} //
À§·Î
// Å°°¡ ´·¯Áö¸é
public boolean keyDown(java.awt.Event
evt, int key) {
if (key != 's' && lost || suspended)
return true;
switch(key) {
case 's': //
's' Å°
stop();
// °ÔÀÓÀ» ÁßÁöÇÏ°í
start();
// »õ·Î¿î °ÔÀÓÀ» Ç϶ó
break;
case 'h':
// 'h' Å°
case java.awt.Event.LEFT:
// '¡ç'Å°
curval -= 5;
movecurpiece(-1,
0, false);
neednewpiece =
false;
repaint();
break;
case 'k':
// 'k' Å°
case java.awt.Event.RIGHT:
// '¡æ'Å°
curval -= 5;
movecurpiece(1,
0, false);
neednewpiece =
false;
repaint();
break;
case 'j':
// 'j' Å°
case java.awt.Event.UP:
// '¡è'Å°
if(what!=4) {
curval -= 5;
movecurpiece(0, 0, true);
repaint();
}
break;
case ' ':
// 'space bar' Å°
case java.awt.Event.DOWN:
// '¡é'Å°
while(movecurpiece(0,
-1, false));
repaint();
break;
}
return true;
} //
À§·Î
g.clearRect(gx, gy-25,
xoffset-gx, 25);
g.drawString("µæÁ¡:
" + score, gx, gy);
gy += 30;
g.clearRect(gx, gy-25,
xoffset-gx, 25);
g.drawString("´Ü°è:
" + level, gx, gy);
gy += 30;
g.clearRect(gx, gy-25,
xoffset-gx, 25);
g.drawString("Â¥¹è±âÀ¯¸Ó¿¡¼..."
+ level, gx, gy);
for (int i=0; i<cols; i++)
for (int j=0; j<rows; j++) {
if (!justupdating || of[i][rows-1-j] == -1 || of[i][rows-1-j]
!= f[i][rows-1-j])
{
g.setColor(colors[f[i][rows-1-j]]);
g.fill3DRect(xoffset+sqlength*i, sqlength+sqlength*j, sqlength, sqlength,
true);
}
of[i][rows-1-j] = f[i][rows-1-j];
}
justupdating
= false;
} //
À§·Î
// ¸¶¿ì½º°¡ ´·¯ Á³À»¶§
public boolean mouseDown(java.awt.Event
evt, int x, int y) {
if (killme ==
null)
return true;
if (suspended)
killme.resume();
else
killme.suspend();
suspended = !suspended;
return true;
} //
À§·Î