📄 frame.java
字号:
/* * Copyright (c) 2002, 2003 Sun Microsystems, Inc. All Rights Reserved. * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are * met: * - Redistribution of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * - Redistribution in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * Neither the name of Sun Microsystems, Inc., 'Java', 'Java'-based * names, or the names of contributors may be used to endorse or promote * products derived from this software without specific prior written * permission. * This software is provided "AS IS," without a warranty of any kind. ALL * EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, * INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A * PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY EXCLUDED. SUN * MIDROSYSTEMS, INC. ("SUN") AND ITS LICENSORS SHALL NOT BE LIABLE FOR * ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR * DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN OR * ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR FOR * DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE * DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF LIABILITY, * ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF * SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. * You acknowledge that this software is not designed, licensed or * intended for use in the design, construction, operation or maintenance * of any nuclear facility. $Id: Frame.java,v 1.1 2003/05/16 00:16:02 zull Exp $ */package com.sun.j2me.blueprints.slugs.shared;/** * This class represents a snapshot of the current * game state. A frame consists of a list of items, * and a marker that indicates how many of the items * represent players. Because this class extends Data, * instances can easily be converted from and to * integer arrays for communicating them over sockets. */public class Frame extends Data { private Item current = new Item(0, 0, 0); /** * Construct a new Frame instance by copying 'count' * elements of 'list'. 'player_count' that the first * n items represent players. */ public Frame(Item[] list, int count, int player_count) { buf = new int[count * Item.getSize() + 1]; buf[0] = player_count; for (int i = 0; i < count; i++) { System.arraycopy(list[i].toIntegerArray(), 0, buf, i * Item.getSize() + 1, Item.getSize()); } } /** * Construct a new Frame instance by copying 'frame' */ public Frame(Frame frame) { buf = new int[frame.buf.length]; System.arraycopy(frame.buf, 0, buf, 0, buf.length); } /** * Return the total numbers of items in this frame */ public int getItemCount() { return (buf.length - 1) / Item.getSize(); } /** * Return the total numbers of player items in this frame */ public int getPlayerCount() { return buf[0]; } /** * Return 'true' if this frame has not items, 'false' otherwise */ public boolean isEmpty() { return getItemCount() == 0; } /** * Return the item at position 'index'. */ public Item getItemAt(int index) { current.initFromIntegerArray(buf, Item.getSize() * index + 1, Item.getSize()); return current; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -