Tidying Up
Blog Home

Tidying Up

July 22, 2019 |  Categories:  Development  

So let's start with the good news first. My puzzle solver program is now fully functional as a terminal application! I was able to implement all 10 of the desired featured I wrote about [two posts ago][1]. For a few simple test cases, all of my algorithms and methods appear to working correctly, though I still need to implement further testing. Having never written unit tests before in C++, this will serve as another great learning opportunity for me. When doing some preliminary research, I found a framework called [Catch2][2] on GitHub specifically designed to aid developers with unit testing in C++. Hopefully I'll be able to find some tutorials for it on Youtube, but barring that the repository has extensive documentation, and I'm sure I'll be able to figure it out. The naive part of me is hoping that unit testing in C++ will be as straightforward as it is in Python, but given my experience with this project, I'm highly doubtful this will be the case. At the moment, my program is standing at 1150 lines of code, and it's kind of daunting to look at it all at once. I've been doing some reading on project structure and header files in C++, but I'm not quite sure that any of these larger-scale, structural frameworks will lend themselves to my particular project. All ten of the functionalities are discrete and unrelated, and simply exist to spit out the answer to whatever specific problem the user might provide them. As a result, I still haven't been able to think of how classes might fit into the picture. Another area I need to learn more about is how libraries and dependencies affect the cross-platform characteristic of C++ program. I'd assume that once the program is compiled into a .exe file it's good to go, but I could very well be wrong. With such a broad and multi-faceted program, I'm relying on a lot of external libraries to make my code work. As a result, the top section of my code is a tad lengthy: ![Screenshot of C++ header][3] And I'd like to find a way to shorten it if possible. Now that the core part of my puzzle application is complete, I've started dipping my toes into the world of C++ GUI design. I haven't had the chance to advance into it deeply, but I've started working through a tutorial on how to build a simple Notepad app using the Qt framework. So far, I've been really impressed by how user friendly the Qt program is. GUI design seems to add a significant layer of complexity on top of any program, and I'm interested to see how adaptable my program will be to Qt-built interface. Here's a peek of what the notepad app is looking like now: ![Screenshot of Qt design program][4] As you can see, it really has a lot of toolbars and cool drag-and-drop features. Having access to feedback like this in an IDE is awesome, and really helps you make cause/effect connections between different aspects of your code. Like I said though, it does seem really complicated, and it could be a long while before I'm able to successfully adapt this to my program. Anyways, that's all I really had for today. You remember that hike I said I was going to take on Saturday morning? Here's a nice picture I got from it. This view is looking North from the summit of Kinport Peak towards the town of Pocatello below. ![Landscape shot from Kinport Peak, ID][5] For as much as I might miss Kansas, I know I'll miss it here this fall once I've left. -Joe [1]: http://www.pickertjoe.com/blog/21/ [2]: https://github.com/catchorg/Catch2 [3]: https://pickert-website-static.s3.us-east-2.amazonaws.com/blog/22-7-19/Screen+Shot+2019-07-22+at+3.09.49+PM.png [4]: https://pickert-website-static.s3.us-east-2.amazonaws.com/blog/22-7-19/Screen+Shot+2019-07-22+at+3.14.05+PM.png [5]: https://pickert-website-static.s3.us-east-2.amazonaws.com/blog/22-7-19/IMG_7414.JPG

Leave a comment:



I'm Joe Pickert, and welcome to my blog.

Here, you can find a collection of my thoughts both tech-related and otherwise.

If you find something that interests you, please leave a comment! I'd love to hear your thoughts and feedback!