zoukankan      html  css  js  c++  java
  • command三国杀开发日记20200914

    目前状态

    一时脑热开始写的东西,计划完全使用C语言实现,尽量使用通用接口,能够在windows上直接运行

    几乎是一穷二白,初步搭建了牌堆、玩家信息接口体,编写了简单的UI函数,能够将玩家信息显示在屏幕上

    牌堆

    cards.h中定义了卡牌的信息结构体

    enum Card_Color   {heart = 3, spade = 5, diamond = 4, club = 5} ;
    enum Card_Package {debug} ;
    enum Card_Type    {normal} ;
    
    /* 卡牌类 */
    typedef struct{
    	char              name[24]; // 卡牌名称
    	enum Card_Color   color;	// 花色
    	int               point;	// 点数
    	enum Card_Type    type;		// 卡牌类型
    	enum Card_Package package;	// 所属卡包
    } Card;
    

    这里设定一张卡牌的基本信息由名称、花色、点数、类型和所属卡包组成,定义了三个枚举变量

    Card_Color是卡牌的花色,有红桃、黑桃、方块、草花组成
    Card_Package是卡牌包,比如标准、ex、军争、风火林山等,可能是为了后续可以自由设定所使用的卡包(还早),目前只开启了DEBUG卡包
    Card_Type是卡包类型,计划支持普通牌、锦囊牌、装备牌等等,目前未实现

    卡牌以如下的形式组成,精确到每一张牌,先用宏隔离不同的卡包

    /* 卡包集合 */
    Card cards[] = {
    	#ifdef CARD_PACKAGE_DEBUG 
    	{.name = "杀", 		.color   = heart, 	.point   = 1, 	.package = debug, },
    	{.name = "杀", 		.color   = heart, 	.point   = 2, 	.package = debug, },
    	{.name = "杀", 		.color   = heart, 	.point   = 3, 	.package = debug, },
    	{.name = "杀", 		.color   = heart, 	.point   = 4, 	.package = debug, },
    	{.name = "杀", 		.color   = heart, 	.point   = 5, 	.package = debug, },
    	#endif /* CARD_PACKAGE_DEBUG */
    };
    

    玩家信息

    因为要支持的东西太多了性别、特殊标记等等,先都不考虑
    目前支持名字、血量、最大血量、攻击距离。判定区、装备区使用卡牌指针指向一张牌,没有则为NULL
    手牌使用链表的形式进行组织(考虑到频繁的插入、删除操作)

    typedef struct {
    	char name[16];
    	int hp;
    	int maxhp;
    	int att_distance;
    	Card *weapon;
    	Card *armour;
    	Card *att_horse;
    	Card *def_horse;
    	struct Card_List *hand_card;
    } Player;
    

    UI

  • 相关阅读:
    loaded some nib but the view outlet was not set
    指标评比
    IOS DEVELOP FOR DUMMIES
    软件测试题二
    javascript select
    DOM节点类型详解
    mysql操作
    UVA 10055
    solutions for 'No Suitable Driver Found For Jdbc'
    解决git中文乱码问题
  • 原文地址:https://www.cnblogs.com/velscode/p/13670264.html
Copyright © 2011-2022 走看看