Giter VIP home page Giter VIP logo

nogo-backend's Introduction

2023 程序设计 Ⅱ 大作业:不围棋

Build Status

这是 Team 2 的后端部分仓库

前往前端部分仓库

docs

在写了在写了

nogo-backend's People

Contributors

andylizf avatar

Stargazers

Jarden Pan avatar Jack Lee avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

weizihong

nogo-backend's Issues

Accepting READY_OP in a local game is accessable and cause complex problem.

The problem is hard to describe. So I only explain how to trigger this bug here.
1.Choose multiplayer game and refuse one's request. But do not disconnect in the other side.
2.Choose singleplayer game and start game.
3.Request again in the other side.
4.Accept the request.

Although only the frontend fail after these operation, we should fix this bug in backend.

Add test cases with GTest

  1. Write test cases.
  2. Integrate into GitHub Actions.
  3. Display the real-time coverage rate on README, and ensure it is 100% all the time.

Redesign `PlayerCouple` utility

This class is now like a pile of rubbish.

We need to support finding the player by its property, like role or participant.
Like:

auto player = players.get({Role::NONE, participant}); //  which means finding by participant.

I think we can use std::set or such things here, and support properties as indexes.

Add logging with glog or spdlog

A logger could be extremely useful for bug finding and error troubleshooting.

Logging from different modules, including rule, contest, and network, and with different levels, like fatal, info, and so on.

Deprecate the complicated `UiMessage`

Serialize State to Message instead and then send it to the front end.

Consider applying Better Enums or Magic Enum to simplify our codes with enums, such as printing their field name. Find a way to turn Role into an enum(or such things) without drastically changing its usage.

Then consider moving these enums into a new place. These enums represent the constants in the Message and the result of State calculation as well.

Documentation and README

A brief introduction to the project structure.

Add CI icon and coverage rate, test passing icon (#11) to README.

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.