VimalKumarS / cpp_snake_game

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CPPND: Capstone Snake Game Example

This is a starter repo for the Capstone project in the Udacity C++ Nanodegree Program. The code for this repo was inspired by this excellent StackOverflow post and set of responses.

The Capstone Project gives you a chance to integrate what you've learned throughout this program. This project will become an important part of your portfolio to share with current and future colleagues and employers.

In this project, you can build your own C++ application or extend this Snake game, following the principles you have learned throughout this Nanodegree Program. This project will demonstrate that you can independently create applications using a wide range of C++ features.

Dependencies for Running Locally

Basic Build Instructions

  1. Clone this repo.
  2. Make a build directory in the top level directory: mkdir build && cd build
  3. Compile: cmake .. && make
  4. Run it: ./SnakeGame.

CC Attribution-ShareAlike 4.0 International

Shield: CC BY-SA 4.0

This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

CC BY-SA 4.0

Criteria Addressed:

  • The project reads data from an external file or writes data to a file as part of the necessary operation of the program. => renderer.cpp, load asset as background
  • The project code is organized into classes with class attributes to hold the data, and class methods to perform tasks. => AI.h/AI.cpp
  • Appropriate data and functions are grouped into classes. Member data that is subject to an invariant is hidden from the user. State is accessed via member functions. => AI.cpp, Computer auto play track the state of snake and food
  • The project uses at least one smart pointer: unique_ptr, shared_ptr, or weak_ptr. The project does not use raw pointers. => game.h std::unique_ptr ai;
  • At least two variables are defined as references, or two functions use pass-by-reference in the project code. => AI.cpp AI::AI() ~ctr

About

License:Creative Commons Attribution Share Alike 4.0 International


Languages

Language:C++ 76.5%Language:CMake 23.5%