?? russiabox.java
字號:
import java.awt.*;
import java.applet.*;
import java.util.*;
class Style
{
public int cusor_x,cusor_y;
public int style;
public Rectangle rect[];
private int width= 15,height= 15;
public int totle= 4;
public int rect_turn=2;
public Style(int style,int cusor_x)
{
this.style= style;
this.cusor_x= cusor_x;
create(style);
}
void create(int st)
{
switch(st)
{
case 0:
rect= new Rectangle[4];
rect[0]= new Rectangle((cusor_x- width),0,width,height);
rect[1]= new Rectangle((cusor_x- width),height,width,height);
rect[2]= new Rectangle(cusor_x,0,width,height);
rect[3]= new Rectangle(cusor_x,height,width,height);
break;
case 1:
rect= new Rectangle[4];
rect[0]= new Rectangle(cusor_x,0,width,height);
rect[1]= new Rectangle((cusor_x- width),height,width,height);
rect[2]= new Rectangle(cusor_x,height,width,height);
rect[3]= new Rectangle((cusor_x+width),height,width,height);
rect_turn= 4;
break;
case 2:
rect= new Rectangle[4];
rect[0]= new Rectangle(cusor_x,0,width,height);
rect[1]= new Rectangle(cusor_x,height,width,height);
rect[2]= new Rectangle(cusor_x,2*height,width,height);
rect[3]= new Rectangle(cusor_x,3*height,width,height);
break;
case 3:
rect= new Rectangle[4];
rect[0]= new Rectangle(cusor_x-width,0,width,height);
rect[1]= new Rectangle(cusor_x,0,width,height);
rect[2]= new Rectangle(cusor_x,height,width,height);
rect[3]= new Rectangle(cusor_x+width,height,width,height);
break;
case 4:
rect= new Rectangle[4];
rect[0]= new Rectangle(cusor_x,0,width,height);
rect[1]= new Rectangle(cusor_x+width,0,width,height);
rect[2]= new Rectangle(cusor_x,height,width,height);
rect[3]= new Rectangle(cusor_x-width,height,width,height);
break;
case 5:
totle=5;
rect= new Rectangle[5];
rect[0]= new Rectangle(cusor_x,0,width,height);
rect[1]= new Rectangle(cusor_x,height,width,height);
rect[2]= new Rectangle(cusor_x,2*height,width,height);
rect[3]= new Rectangle(cusor_x,3*height,width,height);
rect[4]= new Rectangle(cusor_x+width,3*height,width,height);
rect_turn=4;
break;
case 6:
totle= 5;
rect= new Rectangle[5];
rect[0]= new Rectangle(cusor_x,0,width,height);
rect[1]= new Rectangle(cusor_x,height,width,height);
rect[2]= new Rectangle(cusor_x,2*height,width,height);
rect[3]= new Rectangle(cusor_x,3*height,width,height);
rect[4]= new Rectangle(cusor_x-width,3*height,width,height);
rect_turn= 4;
break;
}
}
public void reset(int cx,int cy)
{
for(int i= 0;i<totle;i++)
rect[i].translate(cx,cy);
return;
}
public void turn(int turn_i)
{
switch(style)
{
case 0:
return;
case 1:
if(turn_i==0)
rect[3].translate(rect[2].x-rect[3].x,rect[2].y+height-rect[3].y);
if(turn_i== 1)
rect[0].translate(rect[2].x+width-rect[0].x,rect[2].y-rect[0].y);
if(turn_i== 2)
rect[1].translate(rect[2].x-rect[1].x,rect[2].y-height-rect[1].y);
if(turn_i==3)
{
rect[0].translate(rect[2].x-rect[0].x,rect[2].y-height-rect[0].y);
rect[1].translate(rect[2].x-width-rect[1].x,rect[2].y-rect[1].y);
rect[3].translate(rect[2].x+width-rect[3].x,rect[2].y-rect[3].y);
}
return;
case 2:
if(turn_i== 0)
{
rect[0].translate(rect[1].x-width-rect[0].x,rect[1].y-rect[0].y);
rect[2].translate(rect[1].x+width-rect[2].x,rect[1].y-rect[2].y);
rect[3].translate(rect[1].x+2*width-rect[3].x,rect[1].y-rect[3].y);
}
if(turn_i== 1)
{
rect[0].translate(rect[1].x-rect[0].x,rect[1].y-height-rect[0].y);
rect[2].translate(rect[1].x-rect[2].x,rect[1].y+height-rect[2].y);
rect[3].translate(rect[1].x-rect[3].x,rect[1].y+2*height-rect[3].y);
}
break;
case 3:
if(turn_i== 0)
{
rect[0].translate(rect[2].x-width-rect[0].x,rect[2].y-rect[0].y);
rect[3].translate(rect[2].x-width-rect[3].x,height+rect[2].y-rect[3].y);
}
if(turn_i== 1)
{
rect[0].translate(rect[2].x-rect[1].x,rect[1].y-rect[0].y);
rect[3].translate(rect[2].x+width-rect[3].x,rect[2].y-rect[3].y);
}
break;
case 4:
if(turn_i== 0)
{
rect[1].translate(rect[2].x+width-rect[1].x,rect[2].y-rect[1].y);
rect[3].translate(rect[2].x+width-rect[3].x,height+rect[2].y-rect[3].y);
}
if(turn_i==1)
{
rect[1].translate(rect[0].x+width-rect[1].x,rect[0].y-rect[1].y);
rect[3].translate(rect[2].x-width-rect[3].x,rect[2].y-rect[3].y);
}
break;
case 5:
if(turn_i==0)
rect[4].translate(rect[0].x-width-rect[4].x,rect[0].y-rect[4].y);
if(turn_i==1)
{
rect[0].translate(rect[1].x-width-rect[0].x,rect[1].y-rect[0].y);
rect[2].translate(rect[1].x+width-rect[2].x,rect[1].y-rect[2].y);
rect[3].translate(rect[1].x+2*width-rect[3].x,rect[1].y-rect[3].y);
rect[4].translate(rect[1].x-width-rect[4].x,rect[1].y+height-rect[4].y);
}
if(turn_i==2)
rect[4].translate(rect[3].x-rect[4].x,rect[3].y-height-rect[4].y);
if(turn_i==3)
{
rect[0].translate(rect[1].x-rect[0].x,rect[1].y-height-rect[0].y);
rect[2].translate(rect[1].x-rect[2].x,rect[1].y+height-rect[2].y);
rect[3].translate(rect[1].x-rect[3].x,rect[1].y+2*height-rect[3].y);
rect[4].translate(rect[1].x+width-rect[4].x,rect[1].y+2*height-rect[4].y);
}
break;
case 6:
if(turn_i== 0)
rect[4].translate(rect[0].x+width-rect[4].x,rect[0].y-rect[4].y);
if(turn_i==1)
{
rect[0].translate(rect[1].x-width-rect[0].x,rect[1].y-rect[0].y);
rect[2].translate(rect[1].x+width-rect[2].x,rect[1].y-rect[2].y);
rect[3].translate(rect[1].x+2*width-rect[3].x,rect[1].y-rect[3].y);
rect[4].translate(rect[1].x-width-rect[4].x,rect[1].y-height-rect[4].y);
}
if(turn_i==2)
rect[4].translate(rect[3].x-rect[4].x,rect[3].y+height-rect[4].y);
if(turn_i==3)
{
rect[0].translate(rect[1].x-rect[0].x,rect[1].y-height-rect[0].y);
rect[2].translate(rect[1].x-rect[2].x,rect[1].y+height-rect[2].y);
rect[3].translate(rect[1].x-rect[3].x,rect[1].y+2*height-rect[3].y);
rect[4].translate(rect[1].x-width-rect[4].x,rect[1].y+2*height-rect[4].y);
}
break;
}
}
private void paint_one(Graphics g,int x,int y)
{
Color color = Color.red;
g.setColor(color);
g.fillRect(x,y,width,height);
g.setColor(Color.lightGray);
g.drawLine(x,y,x+width-1,y);
g.drawLine(x+1,y+1,x+width-2,y+1);
g.drawLine(x,y,x,y+height-1);
g.drawLine(x+1,y+1,x+1,y+height-2);
g.setColor(color.darker());
g.drawLine(x+width-1,y,x+width-1,y+height-1);
g.drawLine(x+width-2,y+1,x+width-2,y+height-2);
g.drawLine(x+1,y+height-2,x+width-2,y+height-2);
g.drawLine(x,y+height-1,x+width-1,y+height-1);
}
public void paint(Graphics g)
{
for(int i=0;i< totle;i++)
paint_one(g,rect[i].x,rect[i].y);
}
}
class save
{
public int pos[];
public int index;
public save(int index)
{
pos= new int[22];
for(int i=0;i<22;i++)
pos[i]=0;
this.index= index;
}
public void clear()
{
for(int i=0;i<22;i++)
pos[i]=0;
}
}
class Java_cool2 extends Applet implements Runnable
{
private Style cool;
private Thread timer;
private TextField aa= new TextField(15);
private Image offscrean_image;
private Graphics offscrean_g;
private final static int back_width=15*22,back_height= 15*24;
private save save_h[];
private int turn_i=0;
private int score= 0;
private Button begin ,stop;
private boolean restart= false;
private boolean GameOver= false;
private boolean candown= false;
private int level= 100;
Choice select_level= new Choice();
private String textStr = "Welcome";
private char theChars[];
private int strlen;
private int charOffsets[];
private Color colors[];
private Font f;
private FontMetrics fm;
private int phase = 0;
private int yOffset;
public void init()
{
setBackground(Color.lightGray);
setLayout(null);
cool= new Style(3,30);
save_h= new save[back_height/15];
for(int i=0;i<back_height/15;i++)
save_h[i]= new save(i);
add(aa);
aa.reshape(340,70,120,25);
begin= new Button("Begin");
stop= new Button("Stop");
add(begin);
begin.reshape(370,115,60,20);
add(stop);
stop.reshape(370,150,60,20);
String items[]= {"Level","Level1","Level2","Level3","Level4"};
add(select_level);
select_level.reshape(367,180,66,15);
for(int i= 0;i<items.length;i++)
select_level.addItem(items[i]);
offscrean_image= createImage(back_width,back_height);
offscrean_g= offscrean_image.getGraphics();
f=new Font("ITALIC",Font.PLAIN+Font.BOLD,24);
fm=getFontMetrics(f);
yOffset = fm.getAscent()+5;
strlen = textStr.length();
theChars = new char [strlen];
charOffsets = new int [strlen];
textStr.getChars(0,strlen,theChars,0);
colors = new Color[strlen];
float h;
for (int i = 0; i < strlen; i++)
{
h = ((float)i)/((float)strlen);
colors[i] = new Color(Color.HSBtoRGB(h,1.0f,1.0f));
charOffsets[i] = xPos;
xPos+=fm.charWidth(theChars[i]);
}
repaint();
}
public void sleep(int time)
{
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -