小编Zac*_*ack的帖子

存储在玩家手中的扑克牌的最佳数据结构是什么?

我是java的初学者,我现在正在为Android开发像杜松子酒的纸牌游戏.我想知道创建Hand类的最佳实现是什么?存储Deck.dealt()返回的卡的最佳方式是什么?

  1. 排列
  2. 数组列表
  3. 向量
  4. HashSet的
  5. 链表

此外,如果有人能提供杜松子酒的开源链接,我将不胜感激.

java arrays collections data-structures

8
推荐指数
2
解决办法
6425
查看次数

纸牌游戏玩家类OOP设计

我即将为我的纸牌游戏(杜松子酒老鼠)创建玩家和AI玩家(AIBasicPlayer,AINormalPlayer和AIHardPlayer)类.创建所述类的最佳OOP或设计模式方法是什么?我检查了一些开源卡片游戏并比较了他们的方法,以下是我收集的方法:

    ***Classes**


    1. player class only

           public class player{
           }
           public class AIPlayer{
           } 

    2. base class player

           public abstract class player{
           }
           public class HumanPlayer extends player{
           }
           public class APlayer extends player{
           }

    3. interface player

         public interface IPlayer{
         }
         public class Player implements IPlayer{}
         public class AIPlayer implements IPlayer{}


*** Methods**
    takeTurn()    
    doDiscard()
doDraw() //pick from discard pile or deck
doKnock()
Run Code Online (Sandbox Code Playgroud)

我理解上面代码的使用,但我无法决定应用或实现哪一个.我是OOP或设计模式的新手,你的建议和代码示例将是一个非常大的帮助.

java oop design-patterns

6
推荐指数
2
解决办法
1426
查看次数

使用Web服务保存sharepoint自定义Web部件时格式错误的XML错误

我创建了一个自定义Web部件,它具有自定义集合属性(Tabs).当您在编辑模式下编辑和保存自定义属性时(通过浏览器),Web部件可以正常工作.我想使用Web服务更新我的自定义Web部件,因此我导出了Web部件并获取了xml内容并按原样传递(因此我可以轻松地测试它),但是发生了错误

The file you imported is not valid. 
Verify that the file is a Web Part description file (*.webpart or *.dwp) and that it contains well-formed XML.
Run Code Online (Sandbox Code Playgroud)

我已经使用在线xml验证器验证了xml并删除了此语句

<?xml version="1.0" encoding="utf-16"?>
Run Code Online (Sandbox Code Playgroud)

因为这是根据XML验证器导致不好的formex XML的那个,但仍然没有运气,发生了同样的错误.

有任何想法吗?我无法弄清楚Tabs属性上的XML有什么问题.

码:

    string webPartXml = string.Empty;
    string pageUrl = currenturl;

        Guid storageKey = new Guid(webpartid);

        using (StreamReader sr = new StreamReader(@"C:\tab.txt"))
        {            
            webPartXml = sr.ReadToEnd();                
        }
        webPartXml = webPartXml.Replace("&lt;", "<").Replace("&gt;",">");

        try
        {
            svc.SaveWebPart2(pageUrl, storageKey, webPartXml, WebpartpagesSvc.Storage.Shared, false);
        }catch(Exception err)
        {
            throw;
        }
Run Code Online (Sandbox Code Playgroud)

Tab.txt(Tab.webpart)

<webParts>
  <webPart xmlns="http://schemas.microsoft.com/WebPart/v3">
    <metaData> …
Run Code Online (Sandbox Code Playgroud)

sharepoint moss sharepoint-2007

5
推荐指数
1
解决办法
3765
查看次数

纸牌游戏类的OOP设计

在设计应用设计模式的以下类时,最好的方法是什么?

  • 甲板 - addCard,deal,shuffle,getTopCard,removeTopCard,removeAllCards
  • - addCard,removeCard,getCard,removeAllCards
  • DiscardPile - addCard,getTopCard,removeTopCard,removeAllCards
  • MeldPile - addCard,removeAllCards

(MeldPile掌握了桌面上的所有融合.)

对于我来说,我觉得getTopCardremoveTopCard只是一个包装getCardremoveCard,因为它只是得到一个卡的顶部位置,然后将它传递给getCardremoveCard.

我应该使用作文吗?策略模式?或者只是创建另一个名为CardPile的类并将其用作上述类的基类?真的很感激,如果你能提供一个示例代码.

java oop design-patterns playing-cards

5
推荐指数
1
解决办法
1万
查看次数