Giter Club home page Giter Club logo

sanguosha's Introduction

三国杀(C++练习项目)

使用说明

一、安装相关依赖

1、安装protobuf

参考 https://github.com/protocolbuffers/protobuf/blob/master/src/README.md

简述:

  • 下载 protobuf-cpp-[VERSION].tar.gz
  • 安装依赖
    sudo apt-get install autoconf automake libtool curl make g++ unzip
    
  • 编译
    ./configure
    make
    make check
    sudo make install
    sudo ldconfig # refresh shared library cache.
    
  • 测试
    protoc --version
    

二、编译

# 克隆本仓库
git clone https://github.com/KennethYangle/Sanguosha.git
# 进入路径
cd Sanguosha
# 创建build文件夹,外部编译
mkdir build
cd build
# 编译
cmake ..
make
# [可选]安装
sudo make install

可执行文件在Sanguosha/bin/usr/local/bin下的sanguosha

设计思路

分为武将(技能),牌,流程。 最开始以为武将和技能最重要,后来发现一切调用的逻辑都是流程决定的。

一、流程

流程用状态模式+栈

流程包括游戏流程、回合流程、卡牌流程、技能流程、濒死流程、死亡流程。考虑创建流程工厂。

每一流程有若干状态,但全局同一时刻只会位于一个状态上。切换到其他流程时当前流程入栈,处理完或退出后弹出上一流程。

1、游戏流程

选将 -> 洗牌 -> 发牌 (游戏开始时摸牌技能:巨贾) -> 1号位开始逆时针询问游戏开始时技能(先辅、各种标记)

2、回合流程

三国杀中一个武将的每一个回合都分6 个阶段:回合开始阶段,判定阶段,摸牌阶段,出牌阶段,弃牌阶段,回合结束阶段。

回合开始阶段 -> 判定阶段 -> 摸牌阶段 -> 出牌阶段 -> 弃牌阶段 -> 回合结束阶段

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.