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

📄 gameserver.java

📁 双 人 连 机 的 贪吃蛇
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
		  	           	 ServerFrame.this.repaint();
		  	           } 
	  	    	 }
	  	     }
	  	     private class MySnake implements Runnable
	  	     {
	  	    	 MySnake()
	  	    	 {
	  	    		 Thread thread=new Thread(this);
	  	    		 thread.start();
	  	    	 }
	  	    	 
	  	    	 public void run()
	  	    	 {
	  	    		while(true) 
		  	           {  
		  	           	 try
		  	           	 {thread.sleep(snk.gamespeed);}
		  	           	 catch(InterruptedException e)
		  	           	 {
		  	           	    System.out.println(e);	
		  	           	 }
		  	           	 snk.move();
		  	           	 
			  	           	 if(snk.bd[0].x<0||snk.bd[0].x>680||snk.bd[0].y<0||snk.bd[0].y>540)
			  	           	 {
			  	           	    snk=new Snake(100,100);
			  	           	    yoursnk=new Snake2(500,400);
			  	           	    sender.sendCmd("%idie%");
			  	           	    fd=new Food();	
			  	           	 }			  	           	 
			  	           	 for(int i=1;i<snk.length;i++)
			  	           	 {
			  	           	      if(snk.bd[0].x==snk.bd[i].x&&snk.bd[0].y==snk.bd[i].y)
			  	           	       { 
			  	           	    	 
			  	           	    	 snk=new Snake(100,100);
			  	           	    	 yoursnk=new Snake2(500,400);
			  	           	    	 sender.sendCmd("%idie%");
			  	           	         fd=new Food();}	
			  	           	 }
			  	           for(int i=1;i<yoursnk.length;i++)
			  	           	 {
			  	           	      if(yoursnk.bd[0].x==yoursnk.bd[i].x&&yoursnk.bd[0].y==yoursnk.bd[i].y)
			  	           	       { 
			  	           	    	 
			  	           	    	 snk=new Snake(100,100);
			  	           	    	 yoursnk=new Snake2(500,400);
			  	           	    	 sender.sendCmd("%youdie%");
				  	           	         fd=new Food();}	
				  	           	 }
			  	           	 for(int i=0;i<yoursnk.length;i++)
			  	           	 {
			  	           		  if(snk.bd[0].x==yoursnk.bd[i].x&&snk.bd[0].y==yoursnk.bd[i].y)
			  	           		  {
			  	           			  sender.sendCmd("%idie%");
			  	           			  snk=new Snake(100,100);fd=new Food();yoursnk=new Snake2(500,400);
			  	           		  }
			  	           	 }			  	           
			  	           	 
			  	           	 if(snk.bd[0].x==fd.x&&snk.bd[0].y==fd.y)
			  	           	 {snk.eat();
			  	           	  fd=new Food();
			  	           	  }
			  	           
		  	           	 ServerFrame.this.repaint();
	  	    	       }
	  	    	 }
	  	     }
	  	   
	  	     public void paint(Graphics g)
	  	     {
	  	           //g.setColor(Color.green);
	  	           g.drawRect(0,0,700,560);
	  	           for(int i=0;i<snk.length;i++)
	  	           {
	  	               g.fill3DRect(snk.bd[i].x,snk.bd[i].y,20,20,true); 
	  	               
	  	           }
	  	           for(int i=0;i<yoursnk.length;i++)
	  	           {
	  	        	   g.setColor(Color.red);
	  	        	   g.fill3DRect(yoursnk.bd[i].x,yoursnk.bd[i].y,20,20,true);
	  	           }
	  	           g.fillRect(fd.x,fd.y,20,20); 	
	  	     }
	  	     public void tdStart()
	  	     {
	  	    	 thread.start();
	  	     }
	  	     public void run()
	  	     {     
	  	          yoursnake=new YourSnake();
	  	          mysnake= new MySnake();
	  	     }
	  	     
	  }
	public void windowActivated(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}
	public void windowClosed(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}
	public void windowClosing(WindowEvent e) {
		// TODO Auto-generated method stub
         sender.sendCmd("%break%");
         System.exit(1);
	}
	public void windowDeactivated(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}
	public void windowDeiconified(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}
	public void windowIconified(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}
	public void windowOpened(WindowEvent e) {
		// TODO Auto-generated method stub
		
	}
	  
}
class Map
{   
	   
	  int[] x=new int[35];
	  int[] y=new int[28];
	  Map()
	  {
	  	   for(int i=0;i<35;i++)
	  	   	x[i]=0+i*20;
	  	   for(int i=0;i<28;i++)	
	  	    y[i]=0+i*20;
	  	     
	  } 
}

class Snake2 extends Snake
{
	Snake2(int x,int y)
	{
		super(x,y);
		order=2;
	}
}
class Snake
{
	  int length=2;
	  int order=1;
	 
	  Body[] bd=new Body[100];
	  public int gamespeed;
	   boolean orderchange=true;		  
		  int[] speed=new int[5];
		    int level;
		  int currentspeed;
	  class Body
	  {
	  	 int x;
	  	 int y;
	  	 Body(int newx,int newy)
	  	 {
	  	     x=newx;
	  	     y=newy; 
	  	 } 
	  }
	
	  	
	  
	  public Snake(int startx,int starty)
 	  {
	                                                
	       bd[0]=new Body(startx,starty);
	       bd[1]=new Body(startx+20,starty); 
	         speed[0]=200;
	  	     speed[1]=200;
	  	     speed[2]=200;
	  	     speed[3]=200;
	  	     speed[4]=200;
	  	     level=0;
	  	     currentspeed=speed[level];
	  	     gamespeed=currentspeed;
	  	     
	  }
	  public void changeOrder(int order)
	  {
		  this.order=order;
	  }
	  public void move()
	  {
	  	  if(order==1)
	  	  {  
	  	  	  for(int i=length-2;i>=0;i--)
	  	  	  {
	  	  	  	  bd[i+1].x=bd[i].x;
	  	  	  	  bd[i+1].y=bd[i].y;  
	  	  	  }
	  	  	  bd[0].x+=20;   
	  	  } 
	  	  if(order==2)
	  	  {
	  	  	  for(int i=length-2;i>=0;i--)
	  	  	  {
	  	  	  	  bd[i+1].x=bd[i].x;
	  	  	  	  bd[i+1].y=bd[i].y;	  	  	  	 
	  	  	  }
	  	  	  bd[0].x-=20;
	  	  }
	  	   if(order==3)
	  	  {
	  	  	  for(int i=length-2;i>=0;i--)
	  	  	  {
	  	  	  	  bd[i+1].x=bd[i].x;
	  	  	  	  bd[i+1].y=bd[i].y;	  	  	  	 
	  	  	  }
	  	  	  bd[0].y+=20;
	  	  }
	  	  	if(order==4)
	  	  {
	  	  	  for(int i=length-2;i>=0;i--)
	  	  	  {
	  	  	  	  bd[i+1].x=bd[i].x;
	  	  	  	  bd[i+1].y=bd[i].y;	  	  	  	 
	  	  	  }
	  	  	  bd[0].y-=20;
	  	  }
	  	  orderchange=true; 
	  	  	      	     
	  }
	  public void cmdUp()
	  {		  	
		    if((order==1||order==2)&&orderchange==true)
		    	{
		    	 order=4;
		    	 orderchange=false;
		    	}
		    if(order==4)
		    {
		    	if(level<4)
		    	{
		         level++;
		    	 currentspeed=speed[level];
		    	 gamespeed=currentspeed;
		    	}
		    }
		    if(order==3)
		    {
		    	level=0;
		    	gamespeed=speed[level];
		    }
	  }
	  public void cmdDown()
	  {
		  if((order==1||order==2)&&orderchange==true)
		    	{
			       order=3;
		    	   orderchange=false;
		    	}
		    if(order==3)
		    {
		    	if(level<4)
		    	{level++;
		    	 currentspeed=speed[level];
		    	 gamespeed=currentspeed;
		    	}
		    }
		    if(order==4)
		    {
		    	level=0;
		    	gamespeed=speed[level];
		    }  
	  }
	  public void cmdLeft()
	  {
		  if((order==3||order==4)&&orderchange==true)
		    	{
			      order=2;
		    	  orderchange=false;
		    	}
		    if(order==2)
		    {
		    	if(level<4)
		    	{level++;
		    	 currentspeed=speed[level];
		    	 gamespeed=currentspeed;
		    	}
		    }
		    if(order==1)
		    {
		    	level=0;
		    	gamespeed=speed[level];
		    }  
	  }
	  public void cmdRight()
	  {
		  if((order==3||order==4)&&orderchange==true)
		    	{
			       order=1;
			       orderchange=false;
		    	}
		    if(order==1)
		    {
		    	if(level<4)
		    	{
		    		level++;
		    	
		    	    currentspeed=speed[level];
		    	    gamespeed=currentspeed;
		    	}
		    }
		    if(order==2)
		    {
		    	gamespeed=speed[0];
		    }
	  }
	 
	  public void eat()
	  {
	  	   length++;
	  	   bd[length-1]=new Body(bd[length-2].x,bd[length-2].y);
	  	   	  	   	  	    
	  }	
	  
	  
}

⌨️ 快捷键说明

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