Skip to content

Paint program with networking capability plus a chat feature

Notifications You must be signed in to change notification settings

tisdale001/DatouPaintWithChat

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Paint program with networking capability plus a chat feature

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages