📄 lines.java
字号:
private boolean mouseMove(int i1, int j1) { try { if(!isHideHero) { isHideHero = true; repaint(); return true; } else if(isShowHero){ isShowHero = false; isHideHero = false; readHeroTable(); showHeroTable(); } else if(brighter) { brighter = false; drawButton(clipRect,sqrt,false); if(createImage == 0 || createImage == 1) { if(getFontMetrics > getHeight) getHeight = getFontMetrics; if(getFontMetrics > 0) black++; T(); } else if(createImage == -1) { black++; T(); } } else if(isPlain) { isPlain = false; drawButton(getGraphics,getFont,false); if(createImage == 0 || createImage == 1) e(); } } catch(Exception exception) { exception.printStackTrace(); } return true; }// ----------------------------------------------------------------------- private boolean p(int i1, int j1) { return dispose[i1][j1] != 0; }// ----------------------------------------------------------------------- private void writeScore() { //输出当前分数 if(getFontMetrics < 0) getFontMetrics = 0; Graphics g1 = Serif.getGraphics(); if(g1 == null) return; g1.setColor(darker); g1.fillRect(1, 1, 94, 22); //计算分数 char ac[] = getScore(getFontMetrics, 6); Score = Integer.parseInt(String.valueOf(ac)); if(Score>playerBestScore)playerBestScore=Score; Font font = g1.getFont(); font = new Font(font.getName(), 1, font.getSize()); g1.setFont(font); FontMetrics fontmetrics = g1.getFontMetrics(font); g1.setColor(Color.black); g1.drawChars(ac, 0, ac.length, (96 - fontmetrics.charsWidth(ac, 0, ac.length)) / 2, (24 - fontmetrics.getHeight()) / 2 + fontmetrics.getMaxAscent()); drawImage.drawImage(Serif, getSize.x, getSize.y, this); Graphics g2 = getGraphics(); if(g2 != null) g2.drawImage(Serif, getSize.x, getSize.y, this); }// ------------------------------------------------------------------------ private boolean isHero() { for(int i = 0; i<10;i++) if(Score>Integer.parseInt(heroTable[1][i])) { heroID = i; return true; } return false; }// ------------------------------------------------------------------------ private void sortHero(){ for(int i = 8;i>heroID-1;i--) { for(int j = 0;j<4;j++) heroTable[j][i+1] = heroTable[j][i]; } java.util.Date currentDate = new java.util.Date(); SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd"); heroTable[1][heroID] = Integer.toString(Score); heroTable[2][heroID] = PlayerName; heroTable[3][heroID] = formatter.format(currentDate); }// ----------------------------------------------------------------------- private Image r(int ai[][][]) { byte byte0 = 39; int ai1[] = new int[byte0 * byte0]; S(ai); for(int i1 = 0; i1 < byte0; i1++) { for(int j1 = 0; j1 < byte0; j1++) { int k1 = ai[i1][j1][0]; int l1 = ai[i1][j1][1]; int i2 = ai[i1][j1][2]; ai1[i1 + j1 * byte0] = (new Color(k1, l1, i2)).getRGB(); } } Image image = createImage(new MemoryImageSource(byte0, byte0, ai1, 0, byte0)); return image; }// ----------------------------------------------------------------------- private void s(int i1, int j1, int k1, int l1) { //i1,j1为单元格行列坐标,k1为上下偏移量,l1单元格精灵颜色号 Graphics g1 = getGraphics(); //或区小应用程序画布 if(g1 == null) return; i1 = 12 + i1 * 40; //计算单元格左上角坐标 j1 = 10 + j1 * 40; //... Graphics g2 = setCursor.getGraphics(); //精灵画布 if(g2 == null || l1 <= 0 || l1 > 7) //画布空或非法颜色号 { return; } else //画精灵 { g2.drawImage(getGreen, 0, 0, this); g2.drawImage(create[l1 - 1], 0, k1, this); g1.drawImage(setCursor, i1, j1, this); return; } }// ----------------------------------------------------------------------- private void drawCell(int i1, int j1, int k1, int l1) { //画具体单元格内容,空白,精灵,提示等 //创建40*40画布 Graphics g1 = drawImage.create(12 + i1 * 40, 10 + j1 * 40, 39, 39); if(k1 > 5) k1 = 5; if(k1 == 0 || l1 == 0 || l1 > 7) g1.drawImage(getGreen, 0, 0, this); else g1.drawImage(white[l1 - 1][k1 - 1], 0, 0, this); g1.dispose(); }// ----------------------------------------------------------------------- private void drawCell(int i1, int j1) { //画单元格 if(W(i1, j1)) //空格 { if(p(i1, j1)) { drawCell(i1, j1, 1, dispose[i1][j1]); return; } else { drawCell(i1, j1, 0, 0); return; } } else //有精灵占用 { drawCell(i1, j1, 5, cellColor(i1, j1)); return; } }//------------------------------------------------------------------------------------- private void gameInfomation(Graphics g1) { //画信息标题和其他信息 //信息区矩形区大小位置 int left = getSize.x; int right = left + getSize.width; byte byte0 = 90; createInfoImage(g1, "游戏次数:", black, 5, left, right, 60); createInfoImage(g1, "最高分数:", getHeight, 6, left, right, 80); createInfoImage(g1, "最高记录:", gameBestScore, 7, left, right, 100); createInfoImage(g1, "玩家记录:", playerBestScore, 8, left, right, 120); if(!z()) writeText2(g1, left, right, 140); }//-------------------------------------------------------------------------------------- private void u() { try { getAppletContext().showDocument(new URL("http://172.16.2.101"), "_new"); return; } catch(Exception _ex) { return; } }// ----------------------------------------------------------------------- public void run() { initImage(); System.gc(); Code = true; String s1 = getParameter("game"); setState(s1); enableEvents(16L); enableEvents(32L); while(!contains) { int i1 = 100; switch(createImage) { case 4: // '\004' default: break; case -1: case 0: // '\0' i1 = 100; break; case 1: // '\001' i1 = 40; activeSprit(); break; case 2: // '\002' //移动精灵 i1 = 30; if(m() == 1) break; if(w()) { drawLine = false; length = 5; createImage = 5; } else { X(); getY = 4; createImage = 3; } break; case 3: // '\003' //每个精灵计算一次,消行 i1 = 50; if(J() != 0) break; if(w()) { drawLine = true; length = 5; createImage = 5; break; } if(l() == 0) //游戏结束,l()判断游戏是否结束 { if(createImage != -1) black++; createImage = -1; if(getFontMetrics > getHeight) { getHeight = getFontMetrics; String as[] = {"祝贺!", "最新记录!"}; GameOver(as); } else { String as[] = {"游戏结束.", "重新开始."}; GameOver(as); } } else { createImage = 0; } break; case 5: // '\005' i1 = 30; if(n() != 0) break; createImage = 0; if(drawLine && l() == 0) createImage = -1; break; } try { Thread.sleep(i1); } catch(InterruptedException _ex) { } } }// ----------------------------------------------------------------------- public int isReady() { return !Code ? 0 : 1; }// ----------------------------------------------------------------------- public void init() { inputBox ibox = new inputBox(); PlayerName = ibox.getString(); ibox.dispose(); readHeroTable(); //取背景色方案参数,如没指定则使用0号配色方案 int i1; try { i1 = Integer.parseInt(getParameter("bColor").trim()); } catch(Exception _ex) { i1 = 0; } setBGColor(i1); repaint(); //初始化画布drawImage Dimension dimension = getSize(); width = dimension.width; height = dimension.height; dimension = null; Z = createImage(width, height); drawImage = Z.getGraphics(); //初始化棋盘9*9整形数组值全为0 int j1 = 0; do { int k1 = 0; do { I[j1][k1] = 0; getDescent[j1][k1] = 0; dispose[j1][k1] = 0; getMaxAscent[j1][k1] = 0; } while(++k1 < 9); } while(++j1 < 9); }// ----------------------------------------------------------------------- private void v() { int i1 = 0; do { int j1 = 0; do getDescent[i1][j1] = I[i1][j1]; while(++j1 < 9); } while(++i1 < 9); setFont = getFontMetrics; }// ----------------------------------------------------------------------- private int cellColor(int i1, int j1) { return I[i1][j1] & 0xf; }// ----------------------------------------------------------------------- private boolean w() { int i1 = 0; do { int i2 = 0; do getMaxAscent[i1][i2] = 0; while(++i2 < 9); } while(++i1 < 9); round = 0; int j2 = 0; do { int j1 = 0; do if(I[j1][j2] != 0) { int k4 = I[j1][j2]; int l4 = 0; int k1 = j1; int k2 = j2; for(; k1 < 9; k1++) { if(I[k1][k2] != k4) break; l4++; } if(l4 >= 5) { round += l4; int i5 = 0; k1 = j1; int l2 = j2; while(i5 < l4) { getMaxAscent[k1][l2] = k4;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -