Git Product home page Git Product logo

qsnake's Introduction

QSnake

Made By JolyneFr / 51902190390
SJTU SE2019 SEP Project1
This game was written only for HW, ANY other feature was NOT included.
Thanks for Understanding

Completed Tasks

1. Basic Features

  • Start Menu
  • Display & Move of Snake
  • Display & Determination of Bricks & Apples
  • Pause, Save & Load Game, Restart

2. Advanced Features

  • MultiPlayer in one game (Arrow Keys for Snake1 & WASD for Snake2)
  • 3 Special Fruit
    • LifeFruit.
    • Speed Up & Down (MAX_SPEED == 5 && MIN_SPEED == 1).
    • Exchange Snakes (Only Available in MultiPlayer Games).
  • Map Editon
    • You are able to edit bricks (except snakes and boundarys).
    • Edition is available in Pause and Start windows.
    • Remember to ask for permission if you are playing with friends.
  • Simple AI-Snake: "Delamain"
    • Using BFS Algorithm, treated all fruits equally.

All required tasks are included.

Game Guide

I sincerely hope that EVERYONE reads this guide before playing my QSnake.
Especially my dear TA, who grades my final work.

Basic Operation

Use arrow key & WASD to control the snake.
Press space to pause.

Game Notice

  1. Bricks represented by different colors are shown in the gameWindow.
    • Snake1 , Snake2 , Apple , LifeFruit , SpeedUp , SpeedDown , Exchange .
    • Exchange Fruits are only available in MultiPlayer games(vs Player2 or Delamain)
  2. The number of fruits on the canvas is set to PlayerNum by default. When a fruit is eaten, another fruit appears on a random postion within the canvas. So if you want more fruits to exist at the same time, just use edit function to add as many as you want.
  3. You CAN'T move through the boundary (You will die if you do so).
  4. When your head crashes into another snake's body (or yourself's), you can consume one life to BREAK one brick.
  5. The GameSence WON'T be saved implicitly, so please do it manually.
  6. Delamain's algorithm may be simple, but beating it is kind of difficult.
  7. The implement of QTimer::timeout() and QKeyEvent::keyPressEvent() is not connected, which means your death may occur before you see it on canvas.
  8. All comments have been completed.

Thanks for Playing My First Qt Game

JoyneFr 2020/12/16

qsnake's People

Contributors

jolynefr avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar

qsnake's Issues

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.