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

📄 gameserver.java

📁 实现连机进行纸牌游戏(梭哈)
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import javax.swing.*;
import java.io.*;
import java.net.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;


public class gameServer extends JFrame implements ActionListener{
	JButton b500=new JButton("$$500$$");
	JButton b400=new JButton("$$400$$");
	JButton b300=new JButton("$$300$$");
	JButton b200=new JButton("$$200$$");
	JButton b100=new JButton("$$100$$");
      
	JButton b_openPort=new JButton("开启端口");
	JButton b_ready=new JButton("准备");
	JButton b_leave=new JButton("离开");
	JButton b_deal=new JButton("发牌");
	JButton b_openCard=new JButton("开牌");
	TextArea ta_info=new  TextArea(4,4);
	JTextField tf_say=new JTextField(300);
	JTextField tf_port=new JTextField(10);
	JTextField tf_fund=new JTextField(15);
	JButton b_myCard[]=new JButton[5];
	JButton b_hisCard[]=new JButton[5];
	JButton b_send=new JButton("send");

	JPanel p1=new JPanel();
	JPanel p2=new JPanel();
	
	int PORT;
	///////
	ServerSocket myServer;
	Socket mysock;
	ObjectInputStream in;
	ObjectOutputStream out;
	Client client; 
	////////
	int myAnte=300;//我的下赌注
	int hisAnte=300;//他的下赌注
	int myFund=5000;//我的资金
	int hisFund=5000;//他的资金
	Card card[]=new Card[52];//52张牌
	Card mycard[]=new Card[5];//我的牌
	Card hiscard[]=new Card[5];//他的牌
	cardType myType=new cardType();//我的牌的类型
	cardType hisType=new cardType();//他的牌的类型
	int whowin=0;
	
	///////

	gameServer(int port){
        PORT=port;
		getContentPane().setLayout(null);
		getContentPane().add(p1);
		getContentPane().add(p2);
		p1.setBounds(0, 0, 700, 500);
		p2.setBounds(700, 0, 150, 500);
		init_p1();
		init_p2();
		
		///////
		
		setSize(850,500);
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();
        setLocation((screen.width-850)/2,(screen.height-500)/2);
        setTitle("Server");
        setVisible(true);
        setResizable(false);
		
        ////////
       
	}

	public void init_p1(){
		p1.setLayout(null);
	    
	    JLabel l1=new JLabel("对手的牌");
	    p1.add(l1);
	    l1.setBounds(380,10, 100,20	);
	    JLabel l2=new JLabel("你 的 牌");
	    p1.add(l2);
	    l2.setBounds(380,330, 100,20	);
	    JLabel l3=new JLabel("交谈 ");
	    p1.add(l3);
	    l3.setBounds(150,285, 30,20	);
		p1.add(ta_info);
		p1.add(tf_say);
		p1.add(b_send);
		for(int i=0;i<5;i++){
			b_hisCard[i]=new JButton(new ImageIcon("waiting.gif"));
			p1.add(b_hisCard[i]);
			b_hisCard[i].setBounds(150+i*110, 40, 80, 80);
		}
		for(int i=0;i<5;i++){
			b_myCard[i]=new JButton(new ImageIcon("waiting.gif"));
			p1.add(b_myCard[i]);
			b_myCard[i].setBounds(150+i*110, 380, 80, 80);
		}
	    p1.add(b_openPort);
        b_openPort.setBounds(20, 20, 100, 40);
        b_openPort.addActionListener(this);
        p1.add(tf_port);
        tf_port.setText(""+PORT);
        tf_port.setBounds(20, 70, 100, 30);
	 
		ta_info.setBounds(150, 130, 500, 150);
		tf_say.setBounds(180, 285, 380, 30);
		b_send.setBounds(570, 285, 80, 30);
		ta_info.setEditable(false);
		b_send.addActionListener(this);
		tf_say.addActionListener(this);
		ta_info.setText("请开启端口...\n");
		b_send.setEnabled(false);
		tf_say.setEditable(false);
		b_leave.setEnabled(false);
		//////
	 
		JLabel back2=new JLabel(new ImageIcon("p1.JPG"));
		p1.add(back2);
	    back2.setBounds(0, 0, 900, 500);
	}
	public void init_p2(){
		p2.setLayout(null);
		JLabel l_ante=new JLabel("金币:"	);
		p2.add(b_ready);p2.add(b_openCard);
		p2.add(b_leave);p2.add(b_deal);p2.add(l_ante);p2.add(tf_fund);
		p2.add(b100);p2.add(b200);p2.add(b300);p2.add(b400);p2.add(b500);
		JLabel back=new JLabel(new ImageIcon("p2.JPG"));
		p2.add(back);
		back.setBounds(0, 0, 150, 500);
		///////
		b_leave.setBounds(20, 0, 100, 40);
		b_ready.setBounds(20, 50, 100, 40);
		b_deal.setBounds(20, 100, 100, 40);
		b_openCard.setBounds(20, 150, 100, 40);
		l_ante.setBounds(20, 200, 150, 40);
		tf_fund.setBounds(20, 240, 100, 40);
    	b500.setBounds(20, 300,100, 30);
		b400.setBounds(20, 330,100, 30);
	 	b300.setBounds(20, 360,100, 30);
		b200.setBounds(20, 390,100, 30);
		b100.setBounds(20, 420,100, 30);
		////
		b_leave.addActionListener(this);
		b_ready.addActionListener(this);
		b_deal.addActionListener(this);
		b_openCard.addActionListener(this);
		b500.addActionListener(this);
		b400.addActionListener(this);
		b300.addActionListener(this);
		b200.addActionListener(this);
		b100.addActionListener(this);
		////////
		tf_fund.setText("5000");
		tf_fund.setEditable(false);
      	b_deal.setEnabled(false);
    	b_openCard.setEnabled(false);
    	b_ready.setText("准备");
    	b_ready.setEnabled(false);
    	b100.setEnabled(false);
		b200.setEnabled(false);
		b300.setEnabled(false);
		b400.setEnabled(false);
		b500.setEnabled(false);
		
	}

	public void deal(){//洗牌并分牌
		for(int j=0;j<52;j++){
	       	 card[j]=new Card();
	        }
	    	int k=0; int j=2;
	    	while(k<52){
	    	for(int i=0;i<4;i++){
	    		card[k+i].pip=j;
	    		card[k+i].face=i+1;
	    	 }
	    	k+=4;
	    	j++;
	    	}
		Card tem=new Card();
		  k=0;
		while(k<52){
			  j = (int) (Math.random() * 52);
			tem=card[j];
			card[j]=card[k];
			card[k]=tem;
			k++;
		}
		////fen
		for(int i=0;i<5;i++){//初始化
			mycard[i]=new Card();
			hiscard[i]=new Card();
		}
		for(int i=0;i<5;i++){//分牌
			mycard[i].pip=card[i].pip;mycard[i].face=card[i].face;
			hiscard[i].pip=card[i+5].pip;hiscard[i].face=card[i+5].face;
		}
		//将两副牌都转为string类型,用来发送
		String temString=new String();
		String mycardString=new String();
		String hiscardString=new String();
		temString="";
		
		for(int i=0;i<5;i++){
			if(mycard[i].pip<10)
				temString=temString+"0"+mycard[i].pip;
			else
				temString=temString+mycard[i].pip;
			temString=temString+"0"+mycard[i].face;
		}
		mycardString=temString;
		temString="";
		for(int i=0;i<5;i++){
			if(hiscard[i].pip<10)
				temString=temString+"0"+hiscard[i].pip;
			else
				temString=temString+hiscard[i].pip;
			temString=temString+"0"+hiscard[i].face;
		}
		hiscardString=temString;
		try {//给client发送牌信息
			 ta_info.append("正在分牌中。。。 \n");
	         
	         out.writeObject("2"+mycardString);
	         out.flush();
	         out.writeObject("3"+hiscardString);
	         out.flush();
	         ta_info.append("ok!");
	      }
	      catch (  Exception e ) {
	         ta_info.append(e.getMessage() );
	      }
		
	}
	public int compareTheCardType(){//比较两个人牌的大小
		myType=myType.check(mycard);
		hisType=hisType.check(hiscard);
		int tem=0;
		if(myType.type>hisType.type) tem=2;
		if(myType.type<hisType.type) tem=1;
		if(myType.type==hisType.type){
			if(myType.bigest>hisType.bigest) tem=2;
			if(myType.bigest<hisType.bigest) tem=1;
			if(myType.bigest==hisType.bigest) tem=0;
		}
		return tem;
	}
	
    public void init_begin(){//游戏初始化
    	for(int i=0;i<5;i++){

⌨️ 快捷键说明

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