Skip to content

Latest commit

 

History

History
33 lines (33 loc) · 1.69 KB

README.md

File metadata and controls

33 lines (33 loc) · 1.69 KB

DatouPaintWithChat

Group members:

Lucian Tisdale (myself)
Aditya Sharma
Ye 'Mary' Bai
Chiemelie Ezeokeke
Nathanial Ziegler

Background

This program was designed for the final project in Foundations of Software Engineering using C++ and SFML. It is a simple paint program with networking capability plus a chat feature. Multiple users could log on and paint together and/or chat. It highlighted an undo/redo function that allowed users to undo or redo entire brushstrokes. The Command pattern was used to accomplish this. For my part in the group: I provided the majority of the starter code, wrote the 'paintbrush' function, supervised merges to Github, and did pair-coding.

Features

  • Draw with 8 different colors (black, white, red, green, blue, yellow, magenta, cyan)
  • Variable paintbrush thickness (3 different sizes, but could be various sizes)
  • Undo entire strokes of the paintbrush
  • Redo entire strokes of the paintbrush
  • Blank entire screen to one color (undo/redo this action)
  • Unlimited undo/redo (up to physical RAM capacity)
  • Free memory in the redo stack after drawing something new
  • No memory leaks because all pointers are implemented with smart_ptr
  • Also had chat feature (sending messages to other users)
  • Networking capabilities (users could log on and paint together, undo/redo each other's work)

How to Build

cd into the bin directory

cmake ..
make

How to Run

./App

The user will be prompted if they want to host. One user hosts and picks a port number. All other users log in using the same port number and begin painting!


DatouPaint_1