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

command三国杀开发日记20200914的更多相关文章
- command三国杀开发日记20200915
一句话进展 完善了程序结构,分离.c和.h 搭建了6个阶段函数 实现了玩家摸牌 封装实现了日志打印函数 日志打印 想要区分日志等级,包括DEBUG.INFO.WARN.ERRRO.PANIC,提供统一 ...
- LayIM.AspNetCore Middleware 开发日记(三)基础框架搭建
前言 在上一篇中简单讲了一些基础知识,例如Asp.Net Core Middleware 的使用,DI的简单使用以及嵌入式资源的使用方法等.本篇就是结合基础知识来构建一个基础框架出来. 那么框架有什么 ...
- 微信小程序开发日记——高仿知乎日报(中)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教 ...
- 微信小程序开发日记——高仿知乎日报(上)
本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...
- 嵌入式Linux驱动开发日记
嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...
- 【原创】shadowebdict开发日记:基于linux的简明英汉字典(四)
全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...
- 【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)
全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...
- 【原创】shadowebdict开发日记:基于linux的简明英汉字典(二)
全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...
- 【原创】shadowebdict开发日记:基于linux的简明英汉字典(一)
全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...
随机推荐
- Open vSwitch with DPDK
http://docs.openvswitch.org/en/latest/intro/install/dpdk/
- 数据结构-二叉树(6)哈夫曼树(Huffman树)/最优二叉树
树的路径长度是从树根到每一个结点的路径长度(经过的边数)之和. n个结点的一般二叉树,为完全二叉树时取最小路径长度PL=0+1+1+2+2+2+2+… 带权路径长度=根结点到任意结点的路径长度*该结点 ...
- Java动态代理(三)——Cglib动态代理
一.Cglib动态代理Cglib是一个优秀的动态代理框架,它的底层使用ASM在内存中动态的生成被代理类的子类,使用Cglib即使代理类没有实现任何接口也可以实现动态代理功能.而且,它的运行速度要远远快 ...
- 如何在Linux上使用xargs命令
大家好,我是良许. 在使用 Linux 时,你是否遇到过需要将一些命令串在一起,但是其中一个命令不接受管道输入的情况呢?在这种情况下,我们就可以使用 xargs 命令.xargs 可以将一个命令的输出 ...
- Hadoop 3.x 与Hadoop 2.x 的区别和优化点
Hadoop 3.x 与Hadoop 2.x 的区别和优化点 通用性 1.精简Hadoop内核,包括剔除过期的API和实现,将默认组件实现替换成最高效的实现(比如将FileOutputCommitte ...
- 喵的Unity游戏开发之路 - 在球体上行走
很多童鞋没有系统的Unity3D游戏开发基础,也不知道从何开始学.为此我们精选了一套国外优秀的Unity3D游戏开发教程,翻译整理后放送给大家,教您从零开始一步一步掌握Unity3D游戏开发. 本文不 ...
- Spring Cloud--尚硅谷2020最新版
Spring Cloud 初识Spring Cloud与微服务 在传统的软件架构中,我们通常采用的是单体应用来构建一个系统,一个单体应用糅合了各种业务模块.起初在业务规模不是很大的情况下,对于单体应用 ...
- typepra快捷键
- Chrome 发一个请求,后台Controller 执行2次
chrome 每发一次请求,都会执行2次controller,换成其他浏览器就不会. 最后发现是这个插件导致的,果断删除.
- Salesforce LWC学习(二十二) 简单知识总结篇二
本篇参看: https://developer.salesforce.com/docs/component-library/documentation/en/lwc/lwc.reactivity_fi ...