目前状态

一时脑热开始写的东西,计划完全使用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的更多相关文章

  1. command三国杀开发日记20200915

    一句话进展 完善了程序结构,分离.c和.h 搭建了6个阶段函数 实现了玩家摸牌 封装实现了日志打印函数 日志打印 想要区分日志等级,包括DEBUG.INFO.WARN.ERRRO.PANIC,提供统一 ...

  2. LayIM.AspNetCore Middleware 开发日记(三)基础框架搭建

    前言 在上一篇中简单讲了一些基础知识,例如Asp.Net Core Middleware 的使用,DI的简单使用以及嵌入式资源的使用方法等.本篇就是结合基础知识来构建一个基础框架出来. 那么框架有什么 ...

  3. 微信小程序开发日记——高仿知乎日报(中)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该教 ...

  4. 微信小程序开发日记——高仿知乎日报(上)

    本人对知乎日报是情有独钟,看我的博客和github就知道了,写了几个不同技术类型的知乎日报APP 要做微信小程序首先要对html,css,js有一定的基础,还有对微信小程序的API也要非常熟悉 我将该 ...

  5. 嵌入式Linux驱动开发日记

    嵌入式Linux驱动开发日记 主机硬件环境 开发机:虚拟机Ubuntu12.04 内存: 1G 硬盘:80GB 目标板硬件环境 CPU: SP5V210 (开发板:QT210) SDRAM: 512M ...

  6. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(四)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

  7. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(三)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

  8. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(二)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

  9. 【原创】shadowebdict开发日记:基于linux的简明英汉字典(一)

    全系列目录: [原创]shadowebdict开发日记:基于linux的简明英汉字典(一) [原创]shadowebdict开发日记:基于linux的简明英汉字典(二) [原创]shadowebdic ...

随机推荐

  1. IOS 崩溃原因统计 2014-07-12 10:13

    注意: 1,释放自己的autorelease对象,app会crash: 2,释放系统的autorelease对象,app会crash:   第一种 情况有现象如下: 声明一个 对象 A* obj:把o ...

  2. SpringCloud简记_part2

    Zookeeper服务注册与发现 1)Eureka停止更新了,你怎么办? https://github.com/Netflix/eureka/wiki 2)SpringCloud整合Zookeeper ...

  3. Java 添加条码、二维码到PDF文档

    本文介绍如何通过Java程序在PDF文档中添加条码和二维码.创建条码时,可创建多种不同类型的条码,包括Codebar.Code11.Code128A.Code128B.Code32.Code39.Co ...

  4. package controllerutil

    原文链接:https://s0godoc0org.icopy.site/sigs.k8s.io/controller-runtime/pkg/controller/controllerutil imp ...

  5. 使用disk-image-builder(DIB)制作Ironic 裸金属镜像

    export DIB_DEV_USER_USERNAME=centos export DIB_DEV_USER_PASSWORD= export DIB_DEV_USER_PWDLESS_SUDO=Y ...

  6. windows操作报错:无法启动此程序,因为计算机中丢失api-ms-win-core-winrt-string-l1-1-0.dll

    在Windows上做提交svn操作时报错:无法启动此程序,因为计算机中丢失api-ms-win-core-winrt-string-l1-1-0.dll,如下图: 解决办法: 在 https://cn ...

  7. 10分钟搞定 Java 并发队列好吗?好的

    | 好看请赞,养成习惯 你有一个思想,我有一个思想,我们交换后,一个人就有两个思想 If you can NOT explain it simply, you do NOT understand it ...

  8. 力扣Leetcode 1518. 换酒问题

    小区便利店正在促销,用 numExchange 个空酒瓶可以兑换一瓶新酒.你购入了 numBottles 瓶酒. 如果喝掉了酒瓶中的酒,那么酒瓶就会变成空的. 请你计算 最多 能喝到多少瓶酒. 示例: ...

  9. e3mall商城的归纳总结5之修改商品分类、e3mall—content的搭建

    说在前面的话 本节基本上没有用到新的知识点.主要还是对数据库的增删改查以及创建了一个新的内容模块. 新增商品分类 由于easyUI的Tree需要三个字段(Id.state.text), [{ &quo ...

  10. 设置android studio启动时不检查sdk Android studio启动时总是在找AndroidSDK的解决办法

    安装完android studio后,首次启动会弹出检查sdk组件等设置,点击finish会去下载sdk等,如果没有设置代理的情况下,这个界面会卡很久.截图如下: blog0826-1.png 所以, ...