⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 breakdown.jsp

📁 HomePlayer is an extention of the FreePlayer software provided by the french internet provider Free
💻 JSP
字号:
<%@page contentType="text/html;charset=ISO-8859-15" pageEncoding="ISO-8859-1"%>
<%@page import="org.homeplayer.util.*"%>
<%@page import="org.homeplayer.web.*"%>
<%@page import="java.util.*"%>
<jsp:useBean id="hppc" class="org.homeplayer.web.HPPageContext" scope="request">
	<jsp:setProperty name="hppc" property="request" 		value="<%=request%>"/>
	<jsp:setProperty name="hppc" property="navLevel" 		value="2"/>
</jsp:useBean>  
<%!
  boolean breakdown(int[] tab, int i, int j, int type ) 
  {
	final int MAX_WIDTH = 15;
	final int MAX_HEIGHT = 15;

	if( i<0 || j<0 || i>=MAX_WIDTH || j>=MAX_HEIGHT ) return false ;
	boolean status = false ;
	if( tab[i+j*MAX_WIDTH] == -1 ) return false ;
	if( tab[i+j*MAX_WIDTH] == 0 ) return true ;
	if( tab[i+j*MAX_WIDTH] == type ) {
		int oldtype =tab[i+j*MAX_WIDTH] ;
		tab[i+j*MAX_WIDTH] = 0 ;
		if( breakdown( tab, i+1, j, type ) ) {
			status = true ;
		}
		if( breakdown( tab, i-1, j, type ) ) {
			status = true ;
		}
		if( breakdown( tab, i, j+1, type ) ) {
			status = true ;
		}
		if( breakdown( tab, i, j-1, type ) ) {
			status = true ;
		}
		if( status == false ) {
			tab[i+j*MAX_WIDTH] = oldtype ;
		}
	}
	return status ;
  }
%> <% 	if (WebUtil.getParam(request, "WAIT", false)) { %><jsp:forward page="/WEB-INF/jsp/wait.jsp"/><% return;} %>
<%
final int MAX_WIDTH = 15;
final int MAX_HEIGHT = 15;

hppc.addMenuItem(new HPMenuLink("Nouvelle Partie", 	"/games/breakdown.jsp?action=newgame&WAIT=TRUE", hppc));
hppc.addMenuItem(new HPMenuSeparator() ) ;

String[] colors = new String[] { "#FEE55BFF", "#9FE376FF", "#A7C4FEFF", "#B7B7B7FF", "#FFAAA1FF" } ;
hppc.setMenuTitle( "Jeux" ) ;
hppc.setHeaderTitle( "BreakDown" ) ;

String action = WebUtil.getParam(request, "action", "");    

if( action.equals( "" ) ) {
	hppc.addMenuItem(new HPMenuTitle("High Score: "+HPConf.getString(HPConf.BREAKDOWN_HIGHSCORE) )) ;
	%>    
<jsp:include page="<%= hppc.getSkin().getHeader() %>"/>
   <TABLE width=406>
   <tr>
       <td align=center>
           <H1>Break Down</H1>
       </td>
   </tr>
   <tr>
       <td>
       	Cliquez sur les carr閟 adjacents de la m阭e couleur afin de les 閘iminer. Le but du jeu est qu'il n'en reste qu'un seul.
       </td>
   </tr>
   </table>
<jsp:include page="<%= hppc.getSkin().getFooter() %>"/>
	<%
} else {
	long time = System.currentTimeMillis() ;
int[] tab = (int[])HPSession.get("BD_TAB") ;

if( action.equals("newgame") ) {
	tab = new int[MAX_WIDTH*MAX_HEIGHT] ;
	Random r = new Random(System.currentTimeMillis()) ;
	for( int j=0 ; j<MAX_HEIGHT ; j++ ) {
		for( int i=0 ; i<MAX_WIDTH ; i++ ) {
			tab[i+j*MAX_WIDTH] = r.nextInt(5)+1 ;
		}
	}
	HPSession.set( "BD_TAB", tab ) ;
	HPSession.set( "BD_SCORE", new Integer(0) ) ;
} else if( action.equals("sel") ) {
	int i = WebUtil.getParam(request, "i", 0);   
	int j = WebUtil.getParam(request, "j", 0);
	
	int type = tab[i+j*MAX_WIDTH] ;
	if( breakdown( tab, i, j, type ) == true ) {
		int nbhit = 0 ;
		for( int ii=0 ; ii<MAX_WIDTH ; ii++ ) {
			for( int ij=MAX_HEIGHT-1 ; ij>=0 ; ij-- ) {
				if( tab[ii+ij*MAX_WIDTH] == 0 ) {
					tab[ii+ij*MAX_WIDTH] = -1 ;
					nbhit++ ;
				} else if( ij<MAX_HEIGHT-1 && tab[ii+ij*MAX_WIDTH] > 0  ) {
					int ptype = tab[ii+ij*MAX_WIDTH] ;	
				 	int ij2 = ij+1 ;
					while( ij2<MAX_HEIGHT && tab[ii+(ij2)*MAX_WIDTH]<0 ) {
						tab[ii+(ij2)*MAX_WIDTH] = ptype ;
						tab[ii+(ij2-1)*MAX_WIDTH] = -1 ;
						ij2++ ;
					}
				}
			}
		}
		int addScore = 0;
		for(int c = 2 ; c <= nbhit ; c++ ) addScore += (c-1) * c;
		int score = HPSession.get( "BD_SCORE", 0 ) ;
		score += addScore ;
		HPSession.set( "BD_SCORE", new Integer(score) ) ;
		HPSession.set( "BD_NBHIT", new Integer(nbhit) ) ;
		int hs = HPConf.getInt(HPConf.BREAKDOWN_HIGHSCORE);
		if( score > hs ) {
			HPConf.set(HPConf.BREAKDOWN_HIGHSCORE, score) ;
			HPConf.saveSilently();
		}

	}	
}

StringBuffer buffer = new StringBuffer() ;
for( int j=0 ; j<MAX_HEIGHT ; j++ ) {
	buffer.append( "<tr>") ;
	boolean focused = false ;
	for( int i=0 ; i<MAX_WIDTH ; i++ ) {
	   int type = tab[i+j*MAX_WIDTH] ;
	   String ref = "breakdown.jsp?action=sel&i="+i+"&j="+j ;
	   buffer.append( "<td>" ) ;
	   if (type>0) { 
		   buffer.append( "<a href=\"" ) ;
		   buffer.append( ref ) ;
		   buffer.append( "\"" ) ;
		   if( focused == false ) {
			   buffer.append( " focused" ) ;
			   focused = true ;
		   }
		   buffer.append( "><table border=1 cellpadding=0 bgcolor=\"" ) ;
		   buffer.append( hppc.color(colors[type-1]) ) ;
		   buffer.append( "\" abgcolor=\"" ) ;
		   buffer.append( hppc.color("#00000FF") ) ;
		   buffer.append( "\"><tr><td bgcolor=\"" ) ;
		   buffer.append( hppc.color(colors[type-1]) ) ;
		   buffer.append( "\"><img src=\"images/bd_type"+(type)+".gif\" width=16 height=16></td></tr></table></a>" ) ;
	   } else {
		   buffer.append( "<img src=\"/images/blanck.gif\" width=20 height=20>" ) ;
	   }
	   buffer.append( "</td>" ) ;
	}
	buffer.append( "</tr>" ) ;
}
hppc.setFocusSetOnPage( true ) ;
hppc.addMenuItem(new HPMenuTitle("High Score: "+HPConf.getString(HPConf.BREAKDOWN_HIGHSCORE)) );
%>    
<jsp:include page="<%= hppc.getSkin().getHeader() %>"/>
   <TABLE width=406>
   <tr>
       <td align=center>
           <table border=0 cellpadding=0 cellspacing=1>
           	<%=buffer %>
           </table>
       </td>
   </tr>
   <tr>
       <td height=2 bgcolor="<%=hppc.color("#FFFFFFFF") %>"><img src="/images/blanck.gif" width="2" height="2"></td>
   </tr>
   <tr>
       <td>
           <H3>Score : <%=HPSession.get( "BD_SCORE", 0 ) %></H3>
       </td>
   </tr>
   </table>
<jsp:include page="<%= hppc.getSkin().getFooter() %>"/>
<%} %>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -