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

📄 registrarimpl.java

📁 主要是一个Java电子书
💻 JAVA
字号:
package bingo.game;import java.rmi.*;import java.rmi.server.*;import java.util.Random;import bingo.shared.*;class RegistrarImpl extends UnicastRemoteObject implements Registrar, Constants{    private RingMaster ringMaster;    private GameParameters gameParameters;    private Roster roster;    RegistrarImpl(RingMaster ringMaster) throws RemoteException {	super();	this.ringMaster = ringMaster;	gameParameters = ringMaster.getGameParameters();	roster = ringMaster.getRoster();    }    public String whatsHappening() throws RemoteException {	return ringMaster.statusString();    }    public Ticket mayIPlay(String playerName, int numCards, long seed)                                   throws RemoteException    {	if (!ringMaster.ready())	    return new Ticket("服务器还没有准备好,请稍后再试");	else if (!ringMaster.isRegistering())	    return new Ticket("注册器没有打开,请先打开注册器,再进入游戏");	    	if (numCards > gameParameters.getMaxCards())	    numCards = gameParameters.getMaxCards();	synchronized (roster) {	    if (roster.size() == gameParameters.getMaxPlayers())	        return new Ticket("游戏人数已满,请稍后再试");	    Card[] cards = new Card[numCards];            Random generator = new Random(seed);	    for (int i = 0; i < numCards; i ++)	        cards[i] = new Card(generator);	    ringMaster.signTheCards(cards);	    PlayerRecord p = new PlayerRecord(roster.nextPlayerID(), playerName, numCards);	    String welcomeMessage = "欢迎进入游戏 # " + ringMaster.getGameNumber() + ".";	    Ticket ticket = new Ticket(welcomeMessage, p.ID, cards);	    roster.addElement(p, ringMaster);	    return ticket;	}    }    public Answer BINGO(int playerID, Card c) throws RemoteException {	PlayerRecord p = roster.searchForPlayerWithID(playerID);	if (p == null)	    return new Answer(false, "找不到ID为 " + playerID + "的玩家");	if (p.wolfCries >= MAX_WOLF_CRIES)	    return new Answer(false, "对不起,由于你进行了诈唬,所以被赶出游戏");	synchronized (ringMaster) {	    ringMaster.setCheckingForWinner();	    if (ringMaster.verify(c)) {	        ringMaster.setGameOver();	        return new Answer(true, "你赢了!祝贺你!!!");	    } else {		p.wolfCries++;	        ringMaster.setGameResumed();	        ringMaster.sendPlayerStatusMessage(p);		if (p.wolfCries == MAX_WOLF_CRIES) {	            return new Answer(false, "由于你进行了3次诈唬,你被赶出游戏");		} else {	            return new Answer(false, "你诈唬..." +				      (MAX_WOLF_CRIES - p.wolfCries) +				      " 小心被赶出游戏!");		}	    }	}    }}

⌨️ 快捷键说明

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