GithubHelp home page GithubHelp logo

businesstravelgame's Introduction

BusinessTravelGame

主要内容:

​ 用户操控商人,在各个城市之间进行贸易活动,取得利润

特点:

  1. 各个贸易点可分为村落,小镇,城市等不同级别,不同级别的贸易点能够运营的商品种类不同,村落可能只能进行3种商品的交易,而城市可能进行10种商品的交易。高级别的贸易点甚至能够拥有更多的通路通向其他贸易点。同时,低级的贸易点可能没有下面所说的商人工会的存在。

  2. 各个贸易点存在地形地势对特种商品的价值/产量加成。例如森林地带的贸易点出售更多的木材,并且出售更加稀有的木材种类,但是这类贸易点对木材的收购价很低。一个贸易点可能同时具有多种地形地势,例如可以存在沿海的平原村落,也可以存在多山地带的森林城市等等

  3. 用户操作的商人在贸易点之间移动时,需要消耗行动力,当行动力不足以抵达任何其他贸易点时,需要在当前贸易点休息一天来恢复行动力。

  4. 所有贸易点都拥有自己独立的天气,平原村落晴朗时,森林城市可能在降雨。每天都会随机产生不同的天气。一条通路两端贸易点的天气会影响到通过该通路所需的行动力

  5. 通路本身具有属性,未曾开辟的山路可能需要消耗较多的行动力,而石子路消耗略少,马路消耗更少的行动力。

  6. 用户操作的商人在贸易点进行出售时,可能遭遇强盗截货,只有提高商人的经济实力,加入贸易点的商人工会后,才能使用该贸易点工会提供的暗号进行秘密的交易,强盗不会知道交易地点,也就无法截货

算法:

  1. 在各个贸易点之间移动时,可以使用单源最短路径算法获得前往一个城市所需的最小行动力的路线

  2. 商人工会的暗号交易可以使用RSA公钥加密算法进行模拟

课堂内容:

  1. 贸易点分为不同级别,可以使用FACTORY METHOD (工厂方法) 实现

  2. 贸易点的地形地势,多地形的兼容可以使用DECORATOR (装饰模式) 实现

  3. 不同的贸易资源可以使用ABSTRACT FACTORY (抽象工厂) 实现。例如粮食,水果,蔬菜均继承自农产品,小麦,黑麦,大米继承自粮食,苹果,橘子继承自水果,卷心菜,胡萝卜继承自蔬菜。则具体工厂可以为粮食工厂,水果工厂,蔬菜工厂,均继承者抽象的农产品工厂。

  4. 数据和GUI的通信使用OBSERVER (观察者模式)实现

businesstravelgame's People

Contributors

mintcoffeecat avatar

Watchers

 avatar

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.