From 194dc9a4c168810ab40f6ee01e5e044f3f032058 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Wed, 5 Aug 2020 21:50:32 -0700 Subject: [PATCH 01/48] Try headless env fix from https://github.com/HDouss/jeometry/pull/55/ --- .github/workflows/c-cpp.yml | 5 +++++ README.md | 6 +++++- graphics/image_unittest.cc | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 38b6f7e..7f812c5 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -10,9 +10,14 @@ jobs: build: runs-on: ubuntu-latest + env: + DISPLAY: ':99' steps: - uses: actions/checkout@v2 + - name: Setup headless environment + run: | + Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & - name: make image_unittest run: make image_unittest working-directory: graphics diff --git a/README.md b/README.md index 454e880..b03f22d 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,14 @@ Libraries for student C++ code. ## Graphics +![C/C++ CI](https://github.com/ILXL/cpputils/workflows/C/C++%20CI/badge.svg) + graphics/image.h can be used to create, view, load and save images. Example: ![example fractal tree](graphics/example_fractal_tree.png) +To update CImg.h to the latest, run ``make update_cimg`` in graphics/. + ### TODOs: 1. Set up continuous integration testing of image_unittest 2. Update this README with some instructions and a link to documentation for graphics. @@ -23,7 +27,7 @@ git submodule add -b v1 https://github.com/ILXL/cpputils This will create a .gitmodules file which you can add and commit, pointed at a particular branch (in this case v1). -Then make sure everyone who checks out the repo gets the updates, for example adding this +Then make sure everyone who checks out the repo gets the submodule, for example adding this command to your project Makefile to check if image.h is available: ``` diff --git a/graphics/image_unittest.cc b/graphics/image_unittest.cc index 2654eaf..92a7eda 100644 --- a/graphics/image_unittest.cc +++ b/graphics/image_unittest.cc @@ -116,7 +116,7 @@ TEST(ImageTest, Drawing) { image.DrawText(50, 50, "Kitties are cute", 32, 100, 200, 255); // Show works. - image.Show("Test image"); + EXPECT_TRUE(image.Show("Test image")); // Hide works. image.Hide(); From 21b795c75a5efb5f5e6110958db5c7a499ede83b Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 6 Aug 2020 12:19:22 -0700 Subject: [PATCH 02/48] Update README --- README.md | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index b03f22d..bcee0b5 100644 --- a/README.md +++ b/README.md @@ -10,13 +10,23 @@ graphics/image.h can be used to create, view, load and save images. Example: ![example fractal tree](graphics/example_fractal_tree.png) -To update CImg.h to the latest, run ``make update_cimg`` in graphics/. +### Usage -### TODOs: -1. Set up continuous integration testing of image_unittest -2. Update this README with some instructions and a link to documentation for graphics. +[image.h](graphics/image.h) provides a ``Color`` class and an ``Image`` class. Images can +be loaded from file or created. Users may access and set per-pixel color data. Image can be modified +by manipulating them at the pixel level, as well as by drawing lines, circles, rectangles and text. +Images can be displayed and saved as bitmaps (an uncompressed format). -## Usage (for project creators): +### Development + +image.cc is backed by [CImg](cimg.eu), an open-source C++ image processing library. To update CImg.h +to the latest, run ``make update_cimg`` in graphics/. + +It would be possible to back image.cc with some other implementation, for example Skia or OpenGL. +CImg was chosen because it is relatively light-weight, as all the implementation is contained within +the CImg.h header. + +## cpputils usage (for lab and project creators): To use this as a submodule in another lab or project, run: @@ -34,3 +44,46 @@ command to your project Makefile to check if image.h is available: cpputils/graphics/image.h: @git submodule update --init --recursive ``` + +This checks out cpputils at a particular commit, and everyone cloning your git repository will +get that exact commit. This is useful for versioning: it ensures everyone using that git repository +will have the same version of cpputils until it is explicitly updated. + +So, if you want to update the commit which cpputils is pointed at in an existing repo, you can pull +from within the cpputils directory and then cd back out to add and commit the change. For example, +this snippet pulls the latest from the v1 branch: + +``` +cd cpputils +git checkout v1 && git pull +cd .. +git add cpputils/ && git commit -m "Updating cpputils" +``` + +## Release process (for cpputils library contributors): + +### Branches + +Users of cpputils will check out a particular branch as a submodule within their repository. We +have created branches for each version to make it easy for submodules to get a known stable +cpputils. +* Development of cpputils should be merged to the master branch. +* Significant changes, once ready for usage, should be forked to new version branches (v1, v2, etc). +* Changes should not be merged back to earlier version branches, except bugfixes. + +### Testing + +Utility classes in cpputils should be tested to ensure changes do not cause any surprising +breakages. You can set up github continuous integration testing using +[Github Actions](https://github.com/features/actions). + +You can add new tests by editing .github/workflows/c-cpp.yml. For example, the graphics class is +tested with graphcis/image_unittest.cc. c-cpp.yml has a workflow to ``make image_unittest`` +which ensures all dependencies are installed (like gtest) and then builds and runs +image_unittest.cc. + +You can see the result of each test pass in the [actions](https://github.com/ILXL/cpputils/actions) +tab on GitHub. + +*Note: Github Actions is free for public repositories, but there are a limited number of minutes +for private repos! cpputils is public so it has unlimited actions minutes.* From 19c60b3ba4681b04c4bf334b1cf2f6cc0be22d48 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 10 Aug 2020 21:58:46 -0700 Subject: [PATCH 03/48] Adds support for mouse events --- graphics/image.cc | 114 ++++++++++++++++++++++---------- graphics/image.h | 81 ++++++++++++++++++----- graphics/image_event.h | 45 +++++++++++++ graphics/image_unittest.cc | 56 ++++++++++++++++ graphics/test_event_generator.h | 41 ++++++++++++ 5 files changed, 287 insertions(+), 50 deletions(-) create mode 100644 graphics/image_event.h create mode 100644 graphics/test_event_generator.h diff --git a/graphics/image.cc b/graphics/image.cc index eff3060..b7fdd82 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -1,7 +1,7 @@ +#include #include #include #include -#include #include "cimg/CImg.h" #include "image.h" @@ -13,7 +13,7 @@ using std::string; namespace graphics { namespace { - constexpr int MAX_PIXEL_VALUE = 255; +constexpr int MAX_PIXEL_VALUE = 255; } Color::Color(int red, int green, int blue) { @@ -31,11 +31,7 @@ Image::~Image() = default; Image::Image(int width, int height) { assert(width > 0 && height > 0 && "Width and height must be at least 1"); - // Quiet exception mode. - cimg::exception_mode(0); - cimage = std::make_unique>(width, height, 1, 3, MAX_PIXEL_VALUE); - width_ = width; - height_ = height; + Initialize(width, height); } bool Image::Load(const string& filename) { @@ -45,14 +41,14 @@ bool Image::Load(const string& filename) { } cimg::exception_mode(0); try { - cimage = std::make_unique>(); - cimage->load(filename.c_str()); - } catch (CImgException &e) { + cimage_ = std::make_unique>(); + cimage_->load(filename.c_str()); + } catch (CImgException& e) { cout << "Failed to open image file " << filename << endl; return false; } - width_ = cimage->width(); - height_ = cimage->height(); + width_ = cimage_->width(); + height_ = cimage_->height(); if (!IsValid()) { cout << "Invaild image file " << filename << endl; return false; @@ -60,6 +56,17 @@ bool Image::Load(const string& filename) { return true; } +bool Image::Initialize(int width, int height) { + if (width < 1 || height < 1) return false; + // Quiet exception mode. + cimg::exception_mode(0); + cimage_ = std::make_unique>(width, height, 1, 3, + MAX_PIXEL_VALUE); + width_ = width; + height_ = height; + return true; +} + bool Image::SaveImageBmp(const string& filename) const { if (!IsValid()) { return false; @@ -68,23 +75,24 @@ bool Image::SaveImageBmp(const string& filename) const { cout << "You must provide a non-empty filename" << endl; return false; } - cimage->save_bmp(filename.c_str()); + cimage_->save_bmp(filename.c_str()); return true; } bool Image::Show(const string& title) { if (!IsValid()) return false; - if (!display) { + if (!display_) { try { - display = std::make_unique(*cimage, title.c_str()); + display_ = + std::make_unique(*cimage_, title.c_str()); } catch (CImgException& ex) { cout << "Failed to open display" << endl; return false; } } else { - display->set_title(title.c_str()); - display->show(); - display->display(*cimage); + display_->set_title(title.c_str()); + display_->show(); + display_->display(*cimage_); } return true; } @@ -93,14 +101,23 @@ bool Image::ShowUntilClosed(const string& title) { if (!Show(title)) { return false; } - while (!display->is_closed()) display->wait(); + while (!display_->is_closed()) { + ProcessEvent(); + display_->wait(); + } return true; } +void Image::Flush() { + if (display_ && !display_->is_closed()) { + display_->display(*cimage_); + } +} + void Image::Hide() { - if (display && !display->is_closed()) { - display->close(); - display.reset(); + if (display_ && !display_->is_closed()) { + display_->close(); + display_.reset(); } } @@ -122,8 +139,8 @@ bool Image::SetColor(int x, int y, const Color& color) { if (!CheckPixelInBounds(x, y)) { return false; } - return SetRed(x, y, color.Red()) && SetGreen(x, y, color.Green()) - && SetBlue(x, y, color.Blue()); + return SetRed(x, y, color.Red()) && SetGreen(x, y, color.Green()) && + SetBlue(x, y, color.Blue()); } bool Image::SetRed(int x, int y, int r) { return SetPixel(x, y, 0, r); } @@ -135,11 +152,11 @@ bool Image::SetBlue(int x, int y, int b) { return SetPixel(x, y, 2, b); } bool Image::DrawLine(int x0, int y0, int x1, int y1, int red, int green, int blue) { const int color[] = {red, green, blue}; - if (!CheckPixelInBounds(x0, y0) || !CheckPixelInBounds(x1, y1) - || !CheckColorInBounds(color)) { + if (!CheckPixelInBounds(x0, y0) || !CheckPixelInBounds(x1, y1) || + !CheckColorInBounds(color)) { return false; } - cimage->draw_line(x0, y0, x1, y1, color); + cimage_->draw_line(x0, y0, x1, y1, color); return true; } @@ -148,7 +165,7 @@ bool Image::DrawCircle(int x, int y, int radius, int red, int green, int blue) { if (!CheckPixelInBounds(x, y) || !CheckColorInBounds(color)) { return false; } - cimage->draw_circle(x, y, radius, color); + cimage_->draw_circle(x, y, radius, color); return true; } @@ -158,19 +175,46 @@ bool Image::DrawRectangle(int x, int y, int width, int height, int red, if (!CheckPixelInBounds(x, y) || !CheckColorInBounds(color)) { return false; } - cimage->draw_rectangle(x, y, x + width, y + height, color); + cimage_->draw_rectangle(x, y, x + width, y + height, color); return true; } -bool Image::DrawText(int x, int y, const string& text, int font_size, int red, int green, int blue) { +bool Image::DrawText(int x, int y, const string& text, int font_size, int red, + int green, int blue) { const int color[] = {red, green, blue}; if (!CheckPixelInBounds(x, y) || !CheckColorInBounds(color)) { return false; } - cimage->draw_text(x, y, text.c_str(), color, 0, 1, font_size); + cimage_->draw_text(x, y, text.c_str(), color, 0, 1, font_size); return true; } +void Image::ProcessEvent() { + if (display_->button() & 1 && display_->mouse_x() >= 0 && + display_->mouse_y() >= 0) { + // Left button has been pressed or moved. + MouseAction action; + if (latest_event_.GetMouseAction() == MouseAction::kReleased) { + action = MouseAction::kPressed; + } else { + action = MouseAction::kDragged; + } + latest_event_ = + MouseEvent(display_->mouse_x(), display_->mouse_y(), action); + for (auto listener : mouse_listeners_) { + listener->OnMouseEvent(latest_event_); + } + } else if (!display_->button() && + latest_event_.GetMouseAction() != MouseAction::kReleased) { + // Left button is not clicked. + latest_event_ = MouseEvent(latest_event_.GetX(), latest_event_.GetY(), + MouseAction::kReleased); + for (auto listener : mouse_listeners_) { + listener->OnMouseEvent(latest_event_); + } + } +} + bool Image::CheckPixelInBounds(int x, int y) const { if (x < 0 || y < 0 || x >= GetWidth() || y >= GetHeight()) { cout << "(" << x << ", " << y << ") is out of bounds." << endl; @@ -190,7 +234,8 @@ bool Image::CheckColorInBounds(int value) const { bool Image::CheckColorInBounds(const int value[]) const { for (int i = 0; i < 3; i++) { if (value[i] < 0 || value[i] > MAX_PIXEL_VALUE) { - cout << value[i] << " is out of range, must be between 0 and 255." << endl; + cout << value[i] << " is out of range, must be between 0 and 255." + << endl; return false; } } @@ -199,15 +244,16 @@ bool Image::CheckColorInBounds(const int value[]) const { int Image::GetPixel(int x, int y, int channel) const { if (!CheckPixelInBounds(x, y)) return -1; - const uint8_t *r = cimage->data(x, y, channel); + const uint8_t* r = cimage_->data(x, y, channel); return static_cast(*r); } bool Image::SetPixel(int x, int y, int channel, int value) { if (!CheckPixelInBounds(x, y)) return false; if (!CheckColorInBounds(value)) return false; - uint8_t *px = cimage->data(x, y, channel); + uint8_t* px = cimage_->data(x, y, channel); *px = static_cast(value); + // Inefficient. Should we have a "flush" or similar? return true; } diff --git a/graphics/image.h b/graphics/image.h index 4e633b2..58c5a89 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -1,7 +1,10 @@ #include #include +#include #include +#include "image_event.h" + #ifndef GRAPHICS_IMAGE_H #define GRAPHICS_IMAGE_H @@ -41,7 +44,8 @@ class Color { // Use by gtest. static void PrintTo(const Color& color, std::ostream* stream) { - *stream << "Color: (" << color.Red() << "," << color.Green() << "," << color.Blue() << ")"; + *stream << "Color: (" << color.Red() << "," << color.Green() << "," + << color.Blue() << ")"; } class Image { @@ -65,6 +69,12 @@ class Image { */ bool Load(const std::string& filename); + /* + * Resets the image to be a blank white image size |width| by |height|, + * returns false if unsuccessful (if |width| or |height| are less than 1). + */ + bool Initialize(int width, int height); + /** * Saves the current image to the file with |filename| in bitmap * format. Returns false if saving failed. @@ -74,9 +84,7 @@ class Image { /** * Shows the current image. Returns false if the image could not be shown. */ - bool Show() { - return Show("Image"); - } + bool Show() { return Show("Image"); } /** * Shows the image in a window with the title |title|. Returns false if @@ -88,9 +96,7 @@ class Image { * Shows the current image until the window is closed. Returns false if * the image could not be shown. */ - bool ShowUntilClosed() { - return ShowUntilClosed("Image"); - } + bool ShowUntilClosed() { return ShowUntilClosed("Image"); } /** * Shows the current image until the window is closed. @@ -99,6 +105,12 @@ class Image { */ bool ShowUntilClosed(const std::string& title); + /** + * Refreshes the display with any update to the image. Does nothing if the + * image is not displayed. + */ + void Flush(); + /** * Hides the image if it is currently being shown. */ @@ -107,12 +119,12 @@ class Image { /** * Returns the width of the loaded image, in pixels. */ - int GetWidth() const {return width_;} + int GetWidth() const { return width_; } /** * Returns the height of the loaded image, in pixels. */ - int GetHeight() const {return height_;} + int GetHeight() const { return height_; } /** * Gets the color at pixel at position (x, y) in the image. @@ -202,7 +214,8 @@ class Image { * params are out of bounds. */ bool DrawRectangle(int x, int y, int width, int height, const Color& color) { - return DrawRectangle(x, y, width, height, color.Red(), color.Green(), color.Blue()); + return DrawRectangle(x, y, width, height, color.Red(), color.Green(), + color.Blue()); } /** @@ -218,8 +231,10 @@ class Image { * with |font_size| in pixels, colored by |color|. Returns false if the * params are out of bounds. */ - bool DrawText(int x, int y, const std::string& text, int font_size, const Color& color) { - return DrawText(x, y, text, font_size, color.Red(), color.Green(), color.Blue()); + bool DrawText(int x, int y, const std::string& text, int font_size, + const Color& color) { + return DrawText(x, y, text, font_size, color.Red(), color.Green(), + color.Blue()); } /** @@ -230,11 +245,40 @@ class Image { bool DrawText(int x, int y, const std::string& text, int font_size, int red, int green, int blue); + /** + * Adds a MouseEventListener to this image. This EventListener's OnMouseEvent + * function will be called whenever the display receives left-button mouse + * events. + */ + void AddEventListener(MouseEventListener& listener) { + if (mouse_listeners_.find(&listener) == mouse_listeners_.end()) { + mouse_listeners_.insert(&listener); + } + } + + /** + * Removes a MouseEventListener if it was added. This EventListener's + * OnMouseEvent function will no longer be called when the display receives + * mouse events. + */ + void RemoveEventListener(MouseEventListener& listener) { + if (mouse_listeners_.find(&listener) != mouse_listeners_.end()) { + mouse_listeners_.erase(&listener); + } + } + private: - bool IsValid() const { - return height_ > 0 && width_ > 0; + friend class TestEventGenerator; + + CImgDisplay* GetDisplayForTesting() { + if (!display_) return nullptr; + return display_.get(); } + void ProcessEvent(); + + bool IsValid() const { return height_ > 0 && width_ > 0; } + bool CheckPixelInBounds(int x, int y) const; bool CheckColorInBounds(int value) const; @@ -247,8 +291,13 @@ class Image { int width_ = 0; int height_ = 0; - std::unique_ptr> cimage; - std::unique_ptr display; + std::unique_ptr> cimage_; + std::unique_ptr display_; + + // Mouse listeners. Unowned. + std::set mouse_listeners_; + + MouseEvent latest_event_ = MouseEvent(0, 0, MouseAction::kReleased); }; } // namespace graphics diff --git a/graphics/image_event.h b/graphics/image_event.h new file mode 100644 index 0000000..e26220c --- /dev/null +++ b/graphics/image_event.h @@ -0,0 +1,45 @@ +#ifndef GRAPHICS_IMAGE_EVENT_H +#define GRAPHICS_IMAGE_EVENT_H + +namespace graphics { + +/** + * Enum representing whether a button was pressed or released. + */ +enum class MouseAction { + kPressed = 0, + kDragged, + kReleased, +}; + +/** + * Represents a left-button mouse event at a particular location within a + * displayed Image. + */ +class MouseEvent { + public: + explicit MouseEvent(int x, int y, MouseAction action) { + x_ = x; + y_ = y; + action_ = action; + } + ~MouseEvent() = default; + + int GetX() const { return x_; } + int GetY() const { return y_; } + MouseAction GetMouseAction() const { return action_; } + + private: + int x_; + int y_; + MouseAction action_; +}; + +class MouseEventListener { + public: + virtual void OnMouseEvent(const MouseEvent& event) = 0; +}; + +} // namespace graphics + +#endif // GRAPHICS_IMAGE_EVENT_H diff --git a/graphics/image_unittest.cc b/graphics/image_unittest.cc index 92a7eda..b9a59aa 100644 --- a/graphics/image_unittest.cc +++ b/graphics/image_unittest.cc @@ -3,6 +3,7 @@ #include #include "image.h" +#include "test_event_generator.h" TEST(ImageTest, CreatesImageWithoutCrashing) { graphics::Image image(100, 100); @@ -148,6 +149,61 @@ TEST(ImageTest, SavesAndLoadsImage) { remove(filename.c_str()); } +class TestEventListener : public graphics::MouseEventListener { + public: + TestEventListener() = default; + ~TestEventListener() = default; + void OnMouseEvent(const graphics::MouseEvent& event) override { + latest_event_ = graphics::MouseEvent(event.GetX(), event.GetY(), event.GetMouseAction()); + } + + graphics::MouseEvent GetLatestEvent() { + return latest_event_; + } + private: + graphics::MouseEvent latest_event_ = graphics::MouseEvent(0, 0, graphics::MouseAction::kReleased); +}; + +// We can send fake events if we have a reference to the image on which to send events, and we +// are not in the ShowUntilClosed loop. +TEST(ImageEventTest, HandlesEvents) { + TestEventListener listener; + int size = 100; + graphics::Image image(size, size); + image.AddEventListener(listener); + image.Show(); + + graphics::TestEventGenerator generator(&image); + generator.MouseDown(10, 20); + EXPECT_EQ(listener.GetLatestEvent().GetX(), 10); + EXPECT_EQ(listener.GetLatestEvent().GetY(), 20); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kPressed); + + generator.MoveMouseTo(30, 80); + EXPECT_EQ(listener.GetLatestEvent().GetX(), 30); + EXPECT_EQ(listener.GetLatestEvent().GetY(), 80); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kDragged); + + generator.MoveMouseTo(90, 80); + EXPECT_EQ(listener.GetLatestEvent().GetX(), 90); + EXPECT_EQ(listener.GetLatestEvent().GetY(), 80); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kDragged); + + generator.MouseUp(); + EXPECT_EQ(listener.GetLatestEvent().GetX(), 90); + EXPECT_EQ(listener.GetLatestEvent().GetY(), 80); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kReleased); + + generator.MoveMouseTo(30, 30); + // Nothing happens, mosue is up. + EXPECT_EQ(listener.GetLatestEvent().GetX(), 90); + EXPECT_EQ(listener.GetLatestEvent().GetY(), 80); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kReleased); + + image.RemoveEventListener(listener); + image.Hide(); +} + int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); diff --git a/graphics/test_event_generator.h b/graphics/test_event_generator.h new file mode 100644 index 0000000..c394625 --- /dev/null +++ b/graphics/test_event_generator.h @@ -0,0 +1,41 @@ +#include "cimg/CImg.h" +#include "image.h" + +#ifndef GRAPHICS_TEST_EVENT_GENERATOR_H +#define GRAPHICS_TEST_EVENT_GENERATOR_H + +namespace graphics { + +class TestEventGenerator { + public: + TestEventGenerator(graphics::Image* image) { image_ = image; } + + void MouseDown(int x, int y) { + if (!image_->GetDisplayForTesting()) return; + cimg_library::CImgDisplay* display = image_->GetDisplayForTesting(); + display->set_mouse(x, y); + display->set_button(1, true /* is pressed */); + image_->ProcessEvent(); + } + + void MoveMouseTo(int x, int y) { + if (!image_->GetDisplayForTesting()) return; + cimg_library::CImgDisplay* display = image_->GetDisplayForTesting(); + display->set_mouse(x, y); + image_->ProcessEvent(); + } + + void MouseUp() { + if (!image_->GetDisplayForTesting()) return; + cimg_library::CImgDisplay* display = image_->GetDisplayForTesting(); + display->set_button(); + image_->ProcessEvent(); + } + + private: + graphics::Image* image_; // Unowned +}; + +} // namespace graphics + +#endif // GRAPHICS_TEST_EVENT_GENERATOR_H From 5f01cd05c1a164f7f197a49c709b89ee1abcec22 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Tue, 11 Aug 2020 08:21:10 -0700 Subject: [PATCH 04/48] organize graphics/ folder --- .github/workflows/c-cpp.yml | 2 +- graphics/{ => test}/Makefile | 4 ++-- graphics/{ => test}/example_fractal_tree.png | Bin graphics/test/image_unittest | Bin 0 -> 1853944 bytes graphics/{ => test}/image_unittest.cc | 2 +- graphics/{ => test}/test_event_generator.h | 4 ++-- 6 files changed, 6 insertions(+), 6 deletions(-) rename graphics/{ => test}/Makefile (83%) rename graphics/{ => test}/example_fractal_tree.png (100%) create mode 100755 graphics/test/image_unittest rename graphics/{ => test}/image_unittest.cc (99%) rename graphics/{ => test}/test_event_generator.h (95%) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 7f812c5..b5bd8a3 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -20,4 +20,4 @@ jobs: Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & - name: make image_unittest run: make image_unittest - working-directory: graphics + working-directory: graphics/test diff --git a/graphics/Makefile b/graphics/test/Makefile similarity index 83% rename from graphics/Makefile rename to graphics/test/Makefile index e6700e5..71a9cd6 100644 --- a/graphics/Makefile +++ b/graphics/test/Makefile @@ -3,7 +3,7 @@ update_cimg: @echo -e "Getting CImg..." @wget -q https://raw.githubusercontent.com/dtschump/CImg/master/CImg.h - @mv CImg.h cimg/ + @mv CImg.h ../cimg/ @echo -e "CImg updated" /usr/lib/libgtest.a: @@ -15,4 +15,4 @@ update_cimg: @echo -e "Finished installing google test library\n" image_unittest: /usr/lib/libgtest.a - @clang++ -std=c++17 image.cc image_unittest.cc -o image_unittest -pthread -lgtest -lm -lX11 -lpthread && ./image_unittest + @clang++ -std=c++17 ../image.cc image_unittest.cc -o image_unittest -pthread -lgtest -lm -lX11 -lpthread && ./image_unittest diff --git a/graphics/example_fractal_tree.png b/graphics/test/example_fractal_tree.png similarity index 100% rename from graphics/example_fractal_tree.png rename to graphics/test/example_fractal_tree.png diff --git a/graphics/test/image_unittest b/graphics/test/image_unittest new file mode 100755 index 0000000000000000000000000000000000000000..e598772f2ab8166b30cbdb704e5ec7d49d535397 GIT binary patch literal 1853944 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
=)6+a-1J|PSd-U1je*)X0y3yQ~V7}mdk*6f$3 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 z

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

ihithQC|*`!plrcl^DI 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 #include -#include "image.h" +#include "../image.h" #include "test_event_generator.h" TEST(ImageTest, CreatesImageWithoutCrashing) { diff --git a/graphics/test_event_generator.h b/graphics/test/test_event_generator.h similarity index 95% rename from graphics/test_event_generator.h rename to graphics/test/test_event_generator.h index c394625..c2a0a5a 100644 --- a/graphics/test_event_generator.h +++ b/graphics/test/test_event_generator.h @@ -1,5 +1,5 @@ -#include "cimg/CImg.h" -#include "image.h" +#include "../cimg/CImg.h" +#include "../image.h" #ifndef GRAPHICS_TEST_EVENT_GENERATOR_H #define GRAPHICS_TEST_EVENT_GENERATOR_H From 8d046ddae09191748b123cfe42b143fd94ebe599 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Wed, 12 Aug 2020 21:08:18 -0700 Subject: [PATCH 05/48] Add optional thickness to DrawLine --- graphics/image.cc | 35 +++++++++++++++++++++++++++++++---- graphics/image.h | 20 +++++++++++--------- 2 files changed, 42 insertions(+), 13 deletions(-) diff --git a/graphics/image.cc b/graphics/image.cc index b7fdd82..fddb3bd 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -90,7 +90,7 @@ bool Image::Show(const string& title) { return false; } } else { - display_->set_title(title.c_str()); + display_->set_title("%s", title.c_str()); display_->show(); display_->display(*cimage_); } @@ -150,13 +150,40 @@ bool Image::SetGreen(int x, int y, int g) { return SetPixel(x, y, 1, g); } bool Image::SetBlue(int x, int y, int b) { return SetPixel(x, y, 2, b); } bool Image::DrawLine(int x0, int y0, int x1, int y1, int red, int green, - int blue) { + int blue, int thickness) { const int color[] = {red, green, blue}; - if (!CheckPixelInBounds(x0, y0) || !CheckPixelInBounds(x1, y1) || + if (thickness < 1 || !CheckPixelInBounds(x0, y0) || !CheckPixelInBounds(x1, y1) || !CheckColorInBounds(color)) { return false; } - cimage_->draw_line(x0, y0, x1, y1, color); + if (x0 == x1 && y0 == y1) { + return true; + } + if (thickness == 1) { + cimage_->draw_line(x0, y0, x1, y1, color); + return true; + } + // Use CImage::draw_polygon to draw a thick line. + // Using https://stackoverflow.com/questions/5673448/can-the-cimg-library-draw-thick-lines. + const double diff_x = x0 - x1; + const double diff_y = y0 - y1; + const double theta = std::atan(-diff_y / diff_x); + const double hyp = thickness / 2.0; + + const double delta_x = hyp * std::sin(theta); + const double delta_y = hyp * std::cos(theta); + + CImg points(4, 2); + points(0, 0) = x0 + delta_x; + points(0, 1) = y0 + delta_y; + points(1, 0) = x0 - delta_x; + points(1, 1) = y0 - delta_y; + points(2, 0) = x1 - delta_x; + points(2, 1) = y1 - delta_y; + points(3, 0) = x1 + delta_x; + points(3, 1) = y1 + delta_y; + + cimage_->draw_polygon(points, color); return true; } diff --git a/graphics/image.h b/graphics/image.h index 58c5a89..a98fba1 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -28,8 +28,11 @@ class Color { ~Color() = default; bool operator==(const Color& other) const { - return red_ == other.Red() && green_ == other.Green() && - blue_ == other.Blue(); + return red_ == other.Red() && green_ == other.Green() && blue_ == other.Blue(); + } + + bool operator!=(const Color& other) const { + return red_ != other.Red() || green_ != other.Green() || blue_ != other.Blue(); } int Red() const { return red_; } @@ -179,19 +182,18 @@ class Image { bool SetBlue(int x, int y, int b); /** - * Draws a line from (x0, y0) to (x1, y1) with color |color|. + * Draws a line from (x0, y0) to (x1, y1) with color |color| and optional width |thickness|. * Returns false if params are out of bounds. */ - bool DrawLine(int x0, int y0, int x1, int y1, const Color& color) { - return DrawLine(x0, y0, x1, y1, color.Red(), color.Green(), color.Blue()); + bool DrawLine(int x0, int y0, int x1, int y1, const Color& color, int thickness = 1) { + return DrawLine(x0, y0, x1, y1, color.Red(), color.Green(), color.Blue(), thickness); } /** - * Draws a line from (x0, y0) to (x1, y1) with color specified - * by |red|, |green| and |blue| channels. Returns false if params - * are out of bounds. + * Draws a line from (x0, y0) to (x1, y1) with color specified by |red|, |green| and + * |blue| channels, and optional width |thickness|. Returns false if params are out of bounds. */ - bool DrawLine(int x0, int y0, int x1, int y1, int red, int green, int blue); + bool DrawLine(int x0, int y0, int x1, int y1, int red, int green, int blue, int thickness = 1); /** * Draws a circle centered at (x, y) with radius |radius|, and color From b8a04801e7816a15c4922b554cf42f43054736b7 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 13 Aug 2020 09:29:09 -0700 Subject: [PATCH 06/48] Adds tests for thick lines and image_test_utils.h for unittests --- .gitignore | 4 +- graphics/image.cc | 6 +- graphics/test/image_test_utils.h | 91 +++++++++++++++++++++++++++++++ graphics/test/image_unittest | Bin 1853944 -> 0 bytes graphics/test/image_unittest.cc | 37 +++++++++++++ 5 files changed, 134 insertions(+), 4 deletions(-) create mode 100644 graphics/test/image_test_utils.h delete mode 100755 graphics/test/image_unittest diff --git a/.gitignore b/.gitignore index 637d115..ea894b6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ *~ -graphics/image_unittest +graphics/test/image_unittest +graphics/test/*.bmp + diff --git a/graphics/image.cc b/graphics/image.cc index fddb3bd..2e02f55 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -164,14 +164,14 @@ bool Image::DrawLine(int x0, int y0, int x1, int y1, int red, int green, return true; } // Use CImage::draw_polygon to draw a thick line. - // Using https://stackoverflow.com/questions/5673448/can-the-cimg-library-draw-thick-lines. const double diff_x = x0 - x1; const double diff_y = y0 - y1; const double theta = std::atan(-diff_y / diff_x); const double hyp = thickness / 2.0; - const double delta_x = hyp * std::sin(theta); - const double delta_y = hyp * std::cos(theta); + // Convert to integer to get nearest pixel. + const int delta_x = hyp * std::sin(theta); + const int delta_y = hyp * std::cos(theta); CImg points(4, 2); points(0, 0) = x0 + delta_x; diff --git a/graphics/test/image_test_utils.h b/graphics/test/image_test_utils.h new file mode 100644 index 0000000..df3b4c1 --- /dev/null +++ b/graphics/test/image_test_utils.h @@ -0,0 +1,91 @@ +#include +#include + +#include "../image.h" + +#ifndef IMAGE_TEST_UTILS_H +#define IMAGE_TEST_UTILS_H + +enum DiffType { + kTypeOverlay, + kTypeHighlight, + kTypeSideBySide, +}; + +/* + * Returns true if the image |expected| and |actual| are a pixel perfect + * match. If they are not a perfect match, saves a new image in |output_file| + * depending on the |diff_type| chosen, and returns false. + */ +bool ImagesMatch(graphics::Image* expected, graphics::Image* actual, + std::string output_file, DiffType diff_type) { + int width = expected->GetWidth(); + int height = expected->GetHeight(); + if (width != actual->GetWidth() || height != actual->GetHeight()) { + std::cout << "Images are different dimensions. Expected: " << width + << " by " << height << "px" << std::endl; + return false; + } + + // Create the output image. If we want a side-by-side comparison, it + // has twice the width. + graphics::Image result(diff_type == kTypeSideBySide ? width * 2 : width, + height); + bool matching = true; + for (int i = 0; i < width; i++) { + for (int j = 0; j < height; j++) { + graphics::Color c_actual = actual->GetColor(i, j); + graphics::Color c_expected = expected->GetColor(i, j); + if (c_actual.Red() != c_expected.Red() || + c_actual.Green() != c_expected.Green() || + c_actual.Blue() != c_expected.Blue()) { + matching = false; + if (diff_type == kTypeHighlight) { + // Saturate the red in the result where the channels + // differ. This is good if the diff is likely to be + // small or in one particular region. + graphics::Color red(255, 0, 0); + result.SetColor(i, j, red); + } else if (diff_type == kTypeOverlay) { + // Overlay by averaging pixels. This is good for comparing + // line drawings or shapes, but harder to look at when + // comparing pictures. + result.SetRed(i, j, (c_actual.Red() + c_expected.Red()) / 2); + result.SetGreen(i, j, (c_actual.Green() + c_expected.Green()) / 2); + result.SetBlue(i, j, (c_actual.Blue() + c_expected.Blue()) / 2); + } + } else if (diff_type != kTypeSideBySide) { + result.SetColor(i, j, c_actual); + } + if (diff_type == kTypeSideBySide) { + result.SetColor(i + width, j, c_actual); + result.SetColor(i, j, c_expected); + } + } + } + + if (matching) return true; + std::cout << "Images do not match. See " << output_file << " for diff." + << std::endl; + result.SaveImageBmp(output_file); + return false; +} + +/* + * Returns true if the file in |expected_file| and in |actual_file| + * are a pixel perfect match. If they are not a perfect match, saves + * a new image in |output_file| depending on the |diff_type| chosen, + * and returns false. + */ +bool ImagesMatch(std::string expected_file, std::string actual_file, + std::string output_file, DiffType diff_type) { + graphics::Image expected; + if (!expected.Load(expected_file)) return false; + graphics::Image actual; + if (!actual.Load(actual_file)) return false; + + bool result = ImagesMatch(&expected, &actual, output_file, diff_type); + return result; +} + +#endif // IMAGE_TEST_UTILS_H diff --git a/graphics/test/image_unittest b/graphics/test/image_unittest deleted file mode 100755 index e598772f2ab8166b30cbdb704e5ec7d49d535397..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1853944 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
=)6+a-1J|PSd-U1je*)X0y3yQ~V7}mdk*6f$3 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

ihithQC|*`!plrcl^DI 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 #include "../image.h" +#include "image_test_utils.h" #include "test_event_generator.h" TEST(ImageTest, CreatesImageWithoutCrashing) { @@ -149,6 +150,42 @@ TEST(ImageTest, SavesAndLoadsImage) { remove(filename.c_str()); } +TEST(ImageTest, DrawsLinesWithThickness) { + remove("DrawsLinesWithThicknessHorizontal.bmp"); + remove("DrawsLinesWithThicknessVertical.bmp"); + + int thickness = 20; + int size = 100; + graphics::Color blue(0, 0, 255); + + graphics::Image expected(size, size); + graphics::Image actual(size, size); + + // Horizontal rectangle is the same as a thick line. + expected.DrawRectangle(10, 40, 80, thickness, blue); + actual.DrawLine(10, 50, 90, 50, blue, thickness); + EXPECT_TRUE(ImagesMatch(&expected, &actual, "DrawsLinesWithThicknessHorizontal.bmp", + DiffType::kTypeHighlight)); + + // Vertical rectangle is the same as a thick line. + expected.DrawRectangle(40, 5, thickness, 90, blue); + actual.DrawLine(50, 5, 50, 95, blue, thickness); + EXPECT_TRUE(ImagesMatch(&expected, &actual, "DrawsLinesWithThicknessVertical.bmp", + DiffType::kTypeHighlight)); + + // 45 degree rectangle is as thick as expected. Check some points that wouldn't be + // colored unless the line had appropriate thickness. + graphics::Color green(0, 255, 0); + actual.DrawLine(0, 0, size - 1, size - 1, green, thickness); + EXPECT_EQ(actual.GetColor(thickness / 2, 0), green); + EXPECT_EQ(actual.GetColor(0, thickness / 2), green); + EXPECT_EQ(actual.GetColor(size / 2, size / 2 - thickness / 2), green); + EXPECT_EQ(actual.GetColor(size / 2, size / 2 + thickness / 2), green); + + // But not too wide! + EXPECT_NE(actual.GetColor(size / 2, size / 2 + std::sqrt(2 * thickness * thickness)), green); +} + class TestEventListener : public graphics::MouseEventListener { public: TestEventListener() = default; From df809ee2e706acf508f4bb6e785b2ad5ad8fd4f5 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 13 Aug 2020 09:55:14 -0700 Subject: [PATCH 07/48] Update readme, rename Add/RemoveEventListener to Add/RemoveMouseEventListener --- README.md | 4 +++- graphics/image.cc | 1 - graphics/image.h | 4 ++-- graphics/image_event.h | 5 +++++ graphics/test/image_unittest.cc | 4 ++-- 5 files changed, 12 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index bcee0b5..ec927dc 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ Libraries for student C++ code. graphics/image.h can be used to create, view, load and save images. Example: -![example fractal tree](graphics/example_fractal_tree.png) +![example fractal tree](graphics/test/example_fractal_tree.png) ### Usage @@ -17,6 +17,8 @@ be loaded from file or created. Users may access and set per-pixel color data. I by manipulating them at the pixel level, as well as by drawing lines, circles, rectangles and text. Images can be displayed and saved as bitmaps (an uncompressed format). +[image_event.h](graphics/image_event.h) provides a ``MouseEvent`` and a ``MouseEventListener`` interface. Extend the ``MouseEventListener`` interface and implement ``OnMouseEvent``. To begin receiving mouse events, use ``Image::AddMouseEventListener`` to register for mouse events, and enter the event loop with ``Image::ShowUntilClosed``. Note you will need to use ``Image::Flush`` (and ``cout::flush``) to ensure updates are noted after calling ``Image::ShowUntilClosed``. + ### Development image.cc is backed by [CImg](cimg.eu), an open-source C++ image processing library. To update CImg.h diff --git a/graphics/image.cc b/graphics/image.cc index 2e02f55..1ddb6cd 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -117,7 +117,6 @@ void Image::Flush() { void Image::Hide() { if (display_ && !display_->is_closed()) { display_->close(); - display_.reset(); } } diff --git a/graphics/image.h b/graphics/image.h index a98fba1..9b4b994 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -252,7 +252,7 @@ class Image { * function will be called whenever the display receives left-button mouse * events. */ - void AddEventListener(MouseEventListener& listener) { + void AddMouseEventListener(MouseEventListener& listener) { if (mouse_listeners_.find(&listener) == mouse_listeners_.end()) { mouse_listeners_.insert(&listener); } @@ -263,7 +263,7 @@ class Image { * OnMouseEvent function will no longer be called when the display receives * mouse events. */ - void RemoveEventListener(MouseEventListener& listener) { + void RemoveMouseEventListener(MouseEventListener& listener) { if (mouse_listeners_.find(&listener) != mouse_listeners_.end()) { mouse_listeners_.erase(&listener); } diff --git a/graphics/image_event.h b/graphics/image_event.h index e26220c..f485b39 100644 --- a/graphics/image_event.h +++ b/graphics/image_event.h @@ -35,6 +35,11 @@ class MouseEvent { MouseAction action_; }; +/** + * Abstract interface for listening to MouseEvents on images. + * Use Image::AddMouseEventListener and Image::RemoveMouse EventListener to start and stop + * listening for mouse events on the Image's display, shown with Image::ShowUntilClosed(). + */ class MouseEventListener { public: virtual void OnMouseEvent(const MouseEvent& event) = 0; diff --git a/graphics/test/image_unittest.cc b/graphics/test/image_unittest.cc index 410c3c2..bb10868 100644 --- a/graphics/test/image_unittest.cc +++ b/graphics/test/image_unittest.cc @@ -207,7 +207,7 @@ TEST(ImageEventTest, HandlesEvents) { TestEventListener listener; int size = 100; graphics::Image image(size, size); - image.AddEventListener(listener); + image.AddMouseEventListener(listener); image.Show(); graphics::TestEventGenerator generator(&image); @@ -237,7 +237,7 @@ TEST(ImageEventTest, HandlesEvents) { EXPECT_EQ(listener.GetLatestEvent().GetY(), 80); EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kReleased); - image.RemoveEventListener(listener); + image.RemoveMouseEventListener(listener); image.Hide(); } From d37b69ad712e92a516fb4659427fd267951ff6a1 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Sun, 16 Aug 2020 20:12:08 -0700 Subject: [PATCH 08/48] Ensure other mouse buttons don't interfere with events --- graphics/image.cc | 14 +++++++++----- graphics/test/image_unittest.cc | 11 +++++++++++ graphics/test/test_event_generator.h | 16 +++++++++++++++- 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/graphics/image.cc b/graphics/image.cc index 1ddb6cd..e58f7ac 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -216,21 +216,25 @@ bool Image::DrawText(int x, int y, const string& text, int font_size, int red, } void Image::ProcessEvent() { - if (display_->button() & 1 && display_->mouse_x() >= 0 && - display_->mouse_y() >= 0) { + int mouse_x = display_->mouse_x(); + int mouse_y = display_->mouse_y(); + if (display_->button() & 1 && mouse_x >= 0 && mouse_y >= 0) { // Left button has been pressed or moved. MouseAction action; if (latest_event_.GetMouseAction() == MouseAction::kReleased) { action = MouseAction::kPressed; } else { + if (mouse_x == latest_event_.GetX() && mouse_y == latest_event_.GetY()) { + // Mouse position hasn't changed, so don't send a drag event. + return; + } action = MouseAction::kDragged; } - latest_event_ = - MouseEvent(display_->mouse_x(), display_->mouse_y(), action); + latest_event_ = MouseEvent(mouse_x, mouse_y, action); for (auto listener : mouse_listeners_) { listener->OnMouseEvent(latest_event_); } - } else if (!display_->button() && + } else if (!(display_->button() & 1) && latest_event_.GetMouseAction() != MouseAction::kReleased) { // Left button is not clicked. latest_event_ = MouseEvent(latest_event_.GetX(), latest_event_.GetY(), diff --git a/graphics/test/image_unittest.cc b/graphics/test/image_unittest.cc index bb10868..0f2c0e9 100644 --- a/graphics/test/image_unittest.cc +++ b/graphics/test/image_unittest.cc @@ -237,6 +237,17 @@ TEST(ImageEventTest, HandlesEvents) { EXPECT_EQ(listener.GetLatestEvent().GetY(), 80); EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kReleased); + // Ensure other mouse buttons don't interfere. + generator.MouseDown(10, 20); + generator.RightMouseDown(); + generator.RightMouseUp(); + EXPECT_EQ(listener.GetLatestEvent().GetX(), 10); + EXPECT_EQ(listener.GetLatestEvent().GetY(), 20); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kPressed); + generator.RightMouseDown(); + generator.MouseUp(); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kReleased); + image.RemoveMouseEventListener(listener); image.Hide(); } diff --git a/graphics/test/test_event_generator.h b/graphics/test/test_event_generator.h index c2a0a5a..2110222 100644 --- a/graphics/test/test_event_generator.h +++ b/graphics/test/test_event_generator.h @@ -28,7 +28,21 @@ class TestEventGenerator { void MouseUp() { if (!image_->GetDisplayForTesting()) return; cimg_library::CImgDisplay* display = image_->GetDisplayForTesting(); - display->set_button(); + display->set_button(1, false /* is pressed*/); + image_->ProcessEvent(); + } + + void RightMouseDown() { + if (!image_->GetDisplayForTesting()) return; + cimg_library::CImgDisplay* display = image_->GetDisplayForTesting(); + display->set_button(0x2, true /* is pressed*/); + image_->ProcessEvent(); + } + + void RightMouseUp() { + if (!image_->GetDisplayForTesting()) return; + cimg_library::CImgDisplay* display = image_->GetDisplayForTesting(); + display->set_button(0x2, false /* is pressed*/); image_->ProcessEvent(); } From 4342a5179e1c9be361bb4c98c92ae22974eea2bd Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Wed, 26 Aug 2020 08:57:24 -0700 Subject: [PATCH 09/48] Remove information from README that isn't helpful to students. Replaced with wiki. --- README.md | 80 +++---------------------------------------------------- 1 file changed, 3 insertions(+), 77 deletions(-) diff --git a/README.md b/README.md index ec927dc..faa754e 100644 --- a/README.md +++ b/README.md @@ -4,88 +4,14 @@ Libraries for student C++ code. ## Graphics -![C/C++ CI](https://github.com/ILXL/cpputils/workflows/C/C++%20CI/badge.svg) - graphics/image.h can be used to create, view, load and save images. Example: ![example fractal tree](graphics/test/example_fractal_tree.png) ### Usage -[image.h](graphics/image.h) provides a ``Color`` class and an ``Image`` class. Images can -be loaded from file or created. Users may access and set per-pixel color data. Image can be modified -by manipulating them at the pixel level, as well as by drawing lines, circles, rectangles and text. -Images can be displayed and saved as bitmaps (an uncompressed format). - -[image_event.h](graphics/image_event.h) provides a ``MouseEvent`` and a ``MouseEventListener`` interface. Extend the ``MouseEventListener`` interface and implement ``OnMouseEvent``. To begin receiving mouse events, use ``Image::AddMouseEventListener`` to register for mouse events, and enter the event loop with ``Image::ShowUntilClosed``. Note you will need to use ``Image::Flush`` (and ``cout::flush``) to ensure updates are noted after calling ``Image::ShowUntilClosed``. - -### Development - -image.cc is backed by [CImg](cimg.eu), an open-source C++ image processing library. To update CImg.h -to the latest, run ``make update_cimg`` in graphics/. - -It would be possible to back image.cc with some other implementation, for example Skia or OpenGL. -CImg was chosen because it is relatively light-weight, as all the implementation is contained within -the CImg.h header. - -## cpputils usage (for lab and project creators): - -To use this as a submodule in another lab or project, run: - -``` -git submodule add -b v1 https://github.com/ILXL/cpputils -``` - -This will create a .gitmodules file which you can add and commit, pointed at a particular -branch (in this case v1). - -Then make sure everyone who checks out the repo gets the submodule, for example adding this -command to your project Makefile to check if image.h is available: - -``` -cpputils/graphics/image.h: - @git submodule update --init --recursive -``` - -This checks out cpputils at a particular commit, and everyone cloning your git repository will -get that exact commit. This is useful for versioning: it ensures everyone using that git repository -will have the same version of cpputils until it is explicitly updated. - -So, if you want to update the commit which cpputils is pointed at in an existing repo, you can pull -from within the cpputils directory and then cd back out to add and commit the change. For example, -this snippet pulls the latest from the v1 branch: - -``` -cd cpputils -git checkout v1 && git pull -cd .. -git add cpputils/ && git commit -m "Updating cpputils" -``` - -## Release process (for cpputils library contributors): - -### Branches - -Users of cpputils will check out a particular branch as a submodule within their repository. We -have created branches for each version to make it easy for submodules to get a known stable -cpputils. -* Development of cpputils should be merged to the master branch. -* Significant changes, once ready for usage, should be forked to new version branches (v1, v2, etc). -* Changes should not be merged back to earlier version branches, except bugfixes. - -### Testing - -Utility classes in cpputils should be tested to ensure changes do not cause any surprising -breakages. You can set up github continuous integration testing using -[Github Actions](https://github.com/features/actions). - -You can add new tests by editing .github/workflows/c-cpp.yml. For example, the graphics class is -tested with graphcis/image_unittest.cc. c-cpp.yml has a workflow to ``make image_unittest`` -which ensures all dependencies are installed (like gtest) and then builds and runs -image_unittest.cc. +Learn more about how to C++ Utils graphics class on [ILXL-Guides](https://github.com/ILXL-guides/intro-to-graphics). -You can see the result of each test pass in the [actions](https://github.com/ILXL/cpputils/actions) -tab on GitHub. +## For developers and instructors -*Note: Github Actions is free for public repositories, but there are a limited number of minutes -for private repos! cpputils is public so it has unlimited actions minutes.* +Read more about developing and including C++ Utils in the [wiki](https://github.com/ILXL/cpputils/wiki). From 6525983dddf49150647aa1c599519c336408ecbb Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Wed, 9 Sep 2020 12:54:40 -0700 Subject: [PATCH 10/48] Make colors mutatable and add default constructor --- graphics/image.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/graphics/image.h b/graphics/image.h index 9b4b994..09fe00d 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -20,11 +20,11 @@ namespace graphics { /** * Represents an RGB pixel color, where |red|, |green| and |blue| - * may be between 0 and 255, inclusive. + * may be between 0 and 255, inclusive. Default color is black. */ class Color { public: - explicit Color(int red, int green, int blue); + explicit Color(int red = 0, int green = 0, int blue = 0); ~Color() = default; bool operator==(const Color& other) const { @@ -39,6 +39,10 @@ class Color { int Green() const { return green_; } int Blue() const { return blue_; } + void SetRed(int red) { red_ = red; } + void SetGreen(int green) { green_ = green; } + void SetBlue(int blue) { blue_ = blue; } + private: int red_; int green_; From 56e90f223f5724080a377e8ce89bc9325912d5a9 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Tue, 15 Sep 2020 08:54:24 -0700 Subject: [PATCH 11/48] Animation support --- .github/workflows/c-cpp.yml | 2 +- graphics/image.cc | 41 +++++++++++++++++++++++++-------- graphics/image.h | 36 ++++++++++++++++++++++++++--- graphics/image_event.h | 16 +++++++++++++ graphics/test/image_unittest.cc | 8 +++---- 5 files changed, 86 insertions(+), 17 deletions(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index b5bd8a3..cdfa76f 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -2,7 +2,7 @@ name: C/C++ CI on: push: - branches: [ master, v1 ] + branches: [ master, v1, v2, animation ] pull_request: branches: [ master ] diff --git a/graphics/image.cc b/graphics/image.cc index e58f7ac..d400d9b 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -97,14 +97,25 @@ bool Image::Show(const string& title) { return true; } -bool Image::ShowUntilClosed(const string& title) { +bool Image::ShowUntilClosed(const string& title, int animation_ms) { if (!Show(title)) { return false; } while (!display_->is_closed()) { ProcessEvent(); - display_->wait(); + if (timer_ > animation_ms) { + for (auto listener : animation_listeners_) { + listener->OnAnimationStep(); + } + // Reset the timer. + timer_ = timer_ % animation_ms; + } + // May need to tweak this for performance. + const int kEventCheckMs = 5; + display_->wait(kEventCheckMs); + timer_ += kEventCheckMs; } + timer_ = 0; return true; } @@ -221,7 +232,8 @@ void Image::ProcessEvent() { if (display_->button() & 1 && mouse_x >= 0 && mouse_y >= 0) { // Left button has been pressed or moved. MouseAction action; - if (latest_event_.GetMouseAction() == MouseAction::kReleased) { + if (latest_event_.GetMouseAction() == MouseAction::kReleased || + latest_event_.GetMouseAction() == MouseAction::kMoved) { action = MouseAction::kPressed; } else { if (mouse_x == latest_event_.GetX() && mouse_y == latest_event_.GetY()) { @@ -234,13 +246,24 @@ void Image::ProcessEvent() { for (auto listener : mouse_listeners_) { listener->OnMouseEvent(latest_event_); } - } else if (!(display_->button() & 1) && - latest_event_.GetMouseAction() != MouseAction::kReleased) { + } else if (!(display_->button() & 1)) { // Left button is not clicked. - latest_event_ = MouseEvent(latest_event_.GetX(), latest_event_.GetY(), - MouseAction::kReleased); - for (auto listener : mouse_listeners_) { - listener->OnMouseEvent(latest_event_); + if (latest_event_.GetMouseAction() == MouseAction::kDragged || + latest_event_.GetMouseAction() == MouseAction::kPressed) { + // We were dragging or pressing, send a release. + latest_event_ = MouseEvent(latest_event_.GetX(), latest_event_.GetY(), + MouseAction::kReleased); + for (auto listener : mouse_listeners_) { + listener->OnMouseEvent(latest_event_); + } + } else if (mouse_x != latest_event_.GetX() && + mouse_y != latest_event_.GetY() && + mouse_x >= 0 && mouse_y >= 0) { + // Mouse position has changed, send a move. + latest_event_ = MouseEvent(mouse_x, mouse_y, MouseAction::kMoved); + for (auto listener : mouse_listeners_) { + listener->OnMouseEvent(latest_event_); + } } } } diff --git a/graphics/image.h b/graphics/image.h index 09fe00d..bb70979 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -110,7 +110,11 @@ class Image { * Optional |title| for the window. Returns false if the image * could not be shown. */ - bool ShowUntilClosed(const std::string& title); + bool ShowUntilClosed(const std::string& title) { + return ShowUntilClosed(title, 30); + } + + bool ShowUntilClosed(const std::string& title, int animation_ms); /** * Refreshes the display with any update to the image. Does nothing if the @@ -252,7 +256,7 @@ class Image { int green, int blue); /** - * Adds a MouseEventListener to this image. This EventListener's OnMouseEvent + * Adds a MouseEventListener to this image. This MouseEventListener's OnMouseEvent * function will be called whenever the display receives left-button mouse * events. */ @@ -263,7 +267,7 @@ class Image { } /** - * Removes a MouseEventListener if it was added. This EventListener's + * Removes a MouseEventListener if it was added. This MouseEventListener's * OnMouseEvent function will no longer be called when the display receives * mouse events. */ @@ -273,6 +277,28 @@ class Image { } } + /** + * Adds a AnimationEventListener to this image. This AnimationEventListener's + * OnAnimationStep function will be called whenever the time has ellapsed + * for the next animation step. + */ + void AddAnimationEventListener(AnimationEventListener& listener) { + if (animation_listeners_.find(&listener) == animation_listeners_.end()) { + animation_listeners_.insert(&listener); + } + } + + /** + * Removes a AnimationEventListener if it was added. This + * AnimationEventListener's OnAnimationStep function will no longer be called + * every animation step. + */ + void RemoveAnimationEventListener(AnimationEventListener& listener) { + if (animation_listeners_.find(&listener) != animation_listeners_.end()) { + animation_listeners_.erase(&listener); + } + } + private: friend class TestEventGenerator; @@ -299,10 +325,14 @@ class Image { int height_ = 0; std::unique_ptr> cimage_; std::unique_ptr display_; + int timer_ = 0; // Mouse listeners. Unowned. std::set mouse_listeners_; + // Animation listeners. Unowned. + std::set animation_listeners_; + MouseEvent latest_event_ = MouseEvent(0, 0, MouseAction::kReleased); }; diff --git a/graphics/image_event.h b/graphics/image_event.h index f485b39..ad43629 100644 --- a/graphics/image_event.h +++ b/graphics/image_event.h @@ -7,9 +7,14 @@ namespace graphics { * Enum representing whether a button was pressed or released. */ enum class MouseAction { + // Left button down. kPressed = 0, + // Moved while left button was down. kDragged, + // Left button up. kReleased, + // Moved but the left button was not down. + kMoved, }; /** @@ -45,6 +50,17 @@ class MouseEventListener { virtual void OnMouseEvent(const MouseEvent& event) = 0; }; +/** + * Abstract interface for listening to AnimationEvents on images. Add and + * remove with Image::Add/RemoveAnimationEventListener + * Use Image::ShowUntilClosed with a ms for custom animation duration, and the + * AnimationListener::OnAnimationStep() will be called at that duration. + */ +class AnimationEventListener { + public: + virtual void OnAnimationStep() = 0; +}; + } // namespace graphics #endif // GRAPHICS_IMAGE_EVENT_H diff --git a/graphics/test/image_unittest.cc b/graphics/test/image_unittest.cc index 0f2c0e9..d845c12 100644 --- a/graphics/test/image_unittest.cc +++ b/graphics/test/image_unittest.cc @@ -232,10 +232,10 @@ TEST(ImageEventTest, HandlesEvents) { EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kReleased); generator.MoveMouseTo(30, 30); - // Nothing happens, mosue is up. - EXPECT_EQ(listener.GetLatestEvent().GetX(), 90); - EXPECT_EQ(listener.GetLatestEvent().GetY(), 80); - EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kReleased); + // Mouse moved event. + EXPECT_EQ(listener.GetLatestEvent().GetX(), 30); + EXPECT_EQ(listener.GetLatestEvent().GetY(), 30); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kMoved); // Ensure other mouse buttons don't interfere. generator.MouseDown(10, 20); From 2cc7d27e499d0c19cc0f1da0783188a27606095d Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Tue, 15 Sep 2020 20:14:51 -0700 Subject: [PATCH 12/48] Fix off by one bug in rectangle --- graphics/image.cc | 5 ++++- graphics/test/image_unittest.cc | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/graphics/image.cc b/graphics/image.cc index d400d9b..2da194d 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -212,7 +212,10 @@ bool Image::DrawRectangle(int x, int y, int width, int height, int red, if (!CheckPixelInBounds(x, y) || !CheckColorInBounds(color)) { return false; } - cimage_->draw_rectangle(x, y, x + width, y + height, color); + if (width < 0 || height < 0) { + return false; + } + cimage_->draw_rectangle(x, y, x + width - 1, y + height - 1, color); return true; } diff --git a/graphics/test/image_unittest.cc b/graphics/test/image_unittest.cc index d845c12..7baec34 100644 --- a/graphics/test/image_unittest.cc +++ b/graphics/test/image_unittest.cc @@ -154,7 +154,7 @@ TEST(ImageTest, DrawsLinesWithThickness) { remove("DrawsLinesWithThicknessHorizontal.bmp"); remove("DrawsLinesWithThicknessVertical.bmp"); - int thickness = 20; + int thickness = 21; int size = 100; graphics::Color blue(0, 0, 255); @@ -162,13 +162,13 @@ TEST(ImageTest, DrawsLinesWithThickness) { graphics::Image actual(size, size); // Horizontal rectangle is the same as a thick line. - expected.DrawRectangle(10, 40, 80, thickness, blue); + expected.DrawRectangle(10, 40, 81, thickness, blue); actual.DrawLine(10, 50, 90, 50, blue, thickness); EXPECT_TRUE(ImagesMatch(&expected, &actual, "DrawsLinesWithThicknessHorizontal.bmp", DiffType::kTypeHighlight)); // Vertical rectangle is the same as a thick line. - expected.DrawRectangle(40, 5, thickness, 90, blue); + expected.DrawRectangle(40, 5, thickness, 91, blue); actual.DrawLine(50, 5, 50, 95, blue, thickness); EXPECT_TRUE(ImagesMatch(&expected, &actual, "DrawsLinesWithThicknessVertical.bmp", DiffType::kTypeHighlight)); From e207382fe24a10cacd02b2c680207f10b8f91cf2 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Tue, 15 Sep 2020 20:36:41 -0700 Subject: [PATCH 13/48] Use const --- graphics/image.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/graphics/image.h b/graphics/image.h index bb70979..1876dae 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -18,6 +18,8 @@ using namespace cimg_library; namespace graphics { +const int kDefaultAnimationMs = 30; + /** * Represents an RGB pixel color, where |red|, |green| and |blue| * may be between 0 and 255, inclusive. Default color is black. @@ -111,7 +113,7 @@ class Image { * could not be shown. */ bool ShowUntilClosed(const std::string& title) { - return ShowUntilClosed(title, 30); + return ShowUntilClosed(title, kDefaultAnimationMs); } bool ShowUntilClosed(const std::string& title, int animation_ms); From 0664317eae11552fb411c146983f1f0e5d54f4a6 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Fri, 2 Oct 2020 15:28:07 -0700 Subject: [PATCH 14/48] Adds copy and assign operators for graphics::Color --- graphics/image.h | 20 ++++++++++++++++++++ graphics/test/image_unittest.cc | 14 ++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/graphics/image.h b/graphics/image.h index 1876dae..c061600 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -27,20 +27,40 @@ const int kDefaultAnimationMs = 30; class Color { public: explicit Color(int red = 0, int green = 0, int blue = 0); + + // Copy constructor. + Color(const Color& other) { + red_ = other.Red(); + green_ = other.Green(); + blue_ = other.Blue(); + } + + // Assignment operator. + Color& operator=(const Color& other) { + red_ = other.Red(); + green_ = other.Green(); + blue_ = other.Blue(); + return *this; + } + ~Color() = default; + // Equality operator. bool operator==(const Color& other) const { return red_ == other.Red() && green_ == other.Green() && blue_ == other.Blue(); } + // Inequality operator. bool operator!=(const Color& other) const { return red_ != other.Red() || green_ != other.Green() || blue_ != other.Blue(); } + // Getters int Red() const { return red_; } int Green() const { return green_; } int Blue() const { return blue_; } + // Setters void SetRed(int red) { red_ = red; } void SetGreen(int green) { green_ = green; } void SetBlue(int blue) { blue_ = blue; } diff --git a/graphics/test/image_unittest.cc b/graphics/test/image_unittest.cc index 7baec34..d65f130 100644 --- a/graphics/test/image_unittest.cc +++ b/graphics/test/image_unittest.cc @@ -48,6 +48,20 @@ TEST(ImageDeathTest, InvalidSizeConstructorNegative) { ASSERT_DEATH(graphics::Image image(10, -1), ""); } +TEST(ColorTest, ColorOperators) { + graphics::Color black(0, 0, 0); + graphics::Color red(255, 0, 0); + ASSERT_NE(black, red); + ASSERT_EQ(red, graphics::Color(255, 0, 0)); + + graphics::Color red_copy = red; + ASSERT_EQ(red, red_copy); + + graphics::Color& red_ref = red; + red_ref.SetBlue(255); + ASSERT_EQ(red.Blue(), 255); +} + TEST(ImageTest, BlankImageCreation) { // Check size is correct. graphics::Image image(10, 10); From cb437714a9a96a76f612ac6b4c2d05e6596a3b93 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 19 Oct 2020 14:37:15 -0700 Subject: [PATCH 15/48] Add simple animation capability with ShowForMs function --- graphics/image.cc | 3 ++- graphics/image.h | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/graphics/image.cc b/graphics/image.cc index 2da194d..863c6b1 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -79,7 +79,7 @@ bool Image::SaveImageBmp(const string& filename) const { return true; } -bool Image::Show(const string& title) { +bool Image::ShowForMs(int milliseconds, const std::string& title) { if (!IsValid()) return false; if (!display_) { try { @@ -93,6 +93,7 @@ bool Image::Show(const string& title) { display_->set_title("%s", title.c_str()); display_->show(); display_->display(*cimage_); + if (milliseconds > 0) display_->wait(milliseconds); } return true; } diff --git a/graphics/image.h b/graphics/image.h index c061600..98bb3c7 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -119,7 +119,20 @@ class Image { * Shows the image in a window with the title |title|. Returns false if * the image could not be shown. */ - bool Show(const std::string& title); + bool Show(const std::string& title) { return ShowForMs(0, "Image"); } + + /** + * Shows the image in a window for |milliseconds| duration. Returns false if + * the image could not be shown, or true after |milliseconds| are ellapsed. + */ + bool ShowForMs(int milliseconds) { return ShowForMs(milliseconds, "Image"); } + + /** + * Shows the image in a window with the title |title| for |milliseconds| + * duration. Returns false if the image could not be shown, or true after + * |milliseconds| are ellapsed. + */ + bool ShowForMs(int milliseconds, const std::string& title); /** * Shows the current image until the window is closed. Returns false if From 83d0337f5116467e3ed9149bc79e5b4cf259544f Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Tue, 20 Oct 2020 14:41:12 -0700 Subject: [PATCH 16/48] Add SendAnimationEvent to TestEventGenerator --- graphics/image.cc | 10 +++++--- graphics/image.h | 2 ++ graphics/test/image_unittest.cc | 35 ++++++++++++++++++++++++++++ graphics/test/test_event_generator.h | 5 ++++ 4 files changed, 49 insertions(+), 3 deletions(-) diff --git a/graphics/image.cc b/graphics/image.cc index 863c6b1..7b3d544 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -105,9 +105,7 @@ bool Image::ShowUntilClosed(const string& title, int animation_ms) { while (!display_->is_closed()) { ProcessEvent(); if (timer_ > animation_ms) { - for (auto listener : animation_listeners_) { - listener->OnAnimationStep(); - } + ProcessAnimation(); // Reset the timer. timer_ = timer_ % animation_ms; } @@ -272,6 +270,12 @@ void Image::ProcessEvent() { } } +void Image::ProcessAnimation() { + for (auto listener : animation_listeners_) { + listener->OnAnimationStep(); + } +} + bool Image::CheckPixelInBounds(int x, int y) const { if (x < 0 || y < 0 || x >= GetWidth() || y >= GetHeight()) { cout << "(" << x << ", " << y << ") is out of bounds." << endl; diff --git a/graphics/image.h b/graphics/image.h index 98bb3c7..03da895 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -344,6 +344,8 @@ class Image { void ProcessEvent(); + void ProcessAnimation(); + bool IsValid() const { return height_ > 0 && width_ > 0; } bool CheckPixelInBounds(int x, int y) const; diff --git a/graphics/test/image_unittest.cc b/graphics/test/image_unittest.cc index d65f130..a3bc41b 100644 --- a/graphics/test/image_unittest.cc +++ b/graphics/test/image_unittest.cc @@ -266,6 +266,41 @@ TEST(ImageEventTest, HandlesEvents) { image.Hide(); } +class TestAnimationEventListener : public graphics::AnimationEventListener { + public: + TestAnimationEventListener() = default; + ~TestAnimationEventListener() = default; + void OnAnimationStep() override { + num_events_++; + } + + int GetNumEvents() { + return num_events_; + } + private: + int num_events_ = 0; +}; + +TEST(AnimationEventTest, CallsAnimationListeners) { + TestAnimationEventListener listener; + ASSERT_EQ(0, listener.GetNumEvents()); + graphics::Image image(50, 50); + graphics::TestEventGenerator generator(&image); + image.Show(); + + image.AddAnimationEventListener(listener); + ASSERT_EQ(0, listener.GetNumEvents()); + generator.SendAnimationEvent(); + ASSERT_EQ(1, listener.GetNumEvents()); + generator.SendAnimationEvent(); + ASSERT_EQ(2, listener.GetNumEvents()); + image.RemoveAnimationEventListener(listener); + + // Actually removed. + generator.SendAnimationEvent(); + ASSERT_EQ(2, listener.GetNumEvents()); +} + int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); diff --git a/graphics/test/test_event_generator.h b/graphics/test/test_event_generator.h index 2110222..f5dec04 100644 --- a/graphics/test/test_event_generator.h +++ b/graphics/test/test_event_generator.h @@ -46,6 +46,11 @@ class TestEventGenerator { image_->ProcessEvent(); } + void SendAnimationEvent() { + if (!image_->GetDisplayForTesting()) return; + image_->ProcessAnimation(); + } + private: graphics::Image* image_; // Unowned }; From 96289847e1f18bba99d75d7bb4a1a2a449e239af Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Fri, 23 Oct 2020 09:35:31 -0700 Subject: [PATCH 17/48] Fix bug where some mouse moved events were not sent --- graphics/image.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/graphics/image.cc b/graphics/image.cc index 7b3d544..a7c6e10 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -258,9 +258,9 @@ void Image::ProcessEvent() { for (auto listener : mouse_listeners_) { listener->OnMouseEvent(latest_event_); } - } else if (mouse_x != latest_event_.GetX() && - mouse_y != latest_event_.GetY() && - mouse_x >= 0 && mouse_y >= 0) { + } else if ((mouse_x != latest_event_.GetX() || + mouse_y != latest_event_.GetY()) && + (mouse_x >= 0 && mouse_y >= 0)) { // Mouse position has changed, send a move. latest_event_ = MouseEvent(mouse_x, mouse_y, MouseAction::kMoved); for (auto listener : mouse_listeners_) { From 6c3af102abb67acb1c3ec22d74eb045fae8573e6 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Sat, 24 Oct 2020 10:36:40 -0700 Subject: [PATCH 18/48] Fix bug in image.h where wrong image title was used to Show --- graphics/image.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graphics/image.h b/graphics/image.h index 03da895..c5ae08b 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -119,7 +119,7 @@ class Image { * Shows the image in a window with the title |title|. Returns false if * the image could not be shown. */ - bool Show(const std::string& title) { return ShowForMs(0, "Image"); } + bool Show(const std::string& title) { return ShowForMs(0, title); } /** * Shows the image in a window for |milliseconds| duration. Returns false if From 87aa8ddeb7d1a479570bfac92302ea56a4bcac9e Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Wed, 11 Nov 2020 16:12:27 -0800 Subject: [PATCH 19/48] Add license header and Google LLC to copyright holder --- LICENSE | 2 +- README.md | 2 +- graphics/image.cc | 6 ++++++ graphics/image.h | 6 ++++++ graphics/image_event.h | 6 ++++++ graphics/test/Makefile | 6 ++++++ graphics/test/image_test_utils.h | 6 ++++++ graphics/test/image_unittest.cc | 6 ++++++ graphics/test/test_event_generator.h | 6 ++++++ 9 files changed, 44 insertions(+), 2 deletions(-) diff --git a/LICENSE b/LICENSE index 74637fb..d47d372 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2018 Paul Salvador Inventado +Copyright (c) 2020 Paul Salvador Inventado and Google LLC Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index faa754e..ea844dd 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # C++ Utils -Libraries for student C++ code. +Libraries for student C++ code available under the MIT license. ## Graphics diff --git a/graphics/image.cc b/graphics/image.cc index a7c6e10..2a384bc 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include #include #include diff --git a/graphics/image.h b/graphics/image.h index c5ae08b..6171c5c 100644 --- a/graphics/image.h +++ b/graphics/image.h @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include #include #include diff --git a/graphics/image_event.h b/graphics/image_event.h index ad43629..0b5599f 100644 --- a/graphics/image_event.h +++ b/graphics/image_event.h @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #ifndef GRAPHICS_IMAGE_EVENT_H #define GRAPHICS_IMAGE_EVENT_H diff --git a/graphics/test/Makefile b/graphics/test/Makefile index 71a9cd6..cac1210 100644 --- a/graphics/test/Makefile +++ b/graphics/test/Makefile @@ -1,3 +1,9 @@ +# Copyright 2020 Paul Salvador Inventado and Google LLC +# +# Use of this source code is governed by an MIT-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/MIT. + .PHONY: update_cimg image_unittest update_cimg: diff --git a/graphics/test/image_test_utils.h b/graphics/test/image_test_utils.h index df3b4c1..d1d3b42 100644 --- a/graphics/test/image_test_utils.h +++ b/graphics/test/image_test_utils.h @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include #include diff --git a/graphics/test/image_unittest.cc b/graphics/test/image_unittest.cc index a3bc41b..a79ffff 100644 --- a/graphics/test/image_unittest.cc +++ b/graphics/test/image_unittest.cc @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include #include #include diff --git a/graphics/test/test_event_generator.h b/graphics/test/test_event_generator.h index f5dec04..509dd17 100644 --- a/graphics/test/test_event_generator.h +++ b/graphics/test/test_event_generator.h @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include "../cimg/CImg.h" #include "../image.h" From e0956eb0fe19e00a51aff96db3cb9a889f2c1e1b Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Wed, 2 Dec 2020 16:00:25 -0800 Subject: [PATCH 20/48] Fix #2 where order of drawing points matters, and fix unittest loading png to load bmp --- .gitignore | 2 +- graphics/image.cc | 24 ++++-- graphics/test/example_bmp.bmp | Bin 0 -> 306 bytes graphics/test/image_unittest.cc | 133 +++++++++++++++++++++++++------- 4 files changed, 123 insertions(+), 36 deletions(-) create mode 100644 graphics/test/example_bmp.bmp diff --git a/.gitignore b/.gitignore index ea894b6..a684e47 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ *~ graphics/test/image_unittest graphics/test/*.bmp - +!graphics/test/example_bmp.bmp diff --git a/graphics/image.cc b/graphics/image.cc index 2a384bc..cd37217 100644 --- a/graphics/image.cc +++ b/graphics/image.cc @@ -4,13 +4,15 @@ // license that can be found in the LICENSE file or at // https://opensource.org/licenses/MIT. +#include "image.h" + #include + #include #include #include #include "cimg/CImg.h" -#include "image.h" using std::cout; using std::endl; @@ -167,8 +169,8 @@ bool Image::SetBlue(int x, int y, int b) { return SetPixel(x, y, 2, b); } bool Image::DrawLine(int x0, int y0, int x1, int y1, int red, int green, int blue, int thickness) { const int color[] = {red, green, blue}; - if (thickness < 1 || !CheckPixelInBounds(x0, y0) || !CheckPixelInBounds(x1, y1) || - !CheckColorInBounds(color)) { + if (thickness < 1 || !CheckPixelInBounds(x0, y0) || + !CheckPixelInBounds(x1, y1) || !CheckColorInBounds(color)) { return false; } if (x0 == x1 && y0 == y1) { @@ -178,6 +180,18 @@ bool Image::DrawLine(int x0, int y0, int x1, int y1, int red, int green, cimage_->draw_line(x0, y0, x1, y1, color); return true; } + + // Swap x0 and y0 with x1 and y1 so the lower x goes first. + // Fixes test DrawsLinesWithThicknessOrderDoesntMatter. + if (x1 < x0) { + int x_tmp = x1; + int y_tmp = y1; + x1 = x0; + y1 = y0; + x0 = x_tmp; + y0 = y_tmp; + } + // Use CImage::draw_polygon to draw a thick line. const double diff_x = x0 - x1; const double diff_y = y0 - y1; @@ -265,8 +279,8 @@ void Image::ProcessEvent() { listener->OnMouseEvent(latest_event_); } } else if ((mouse_x != latest_event_.GetX() || - mouse_y != latest_event_.GetY()) && - (mouse_x >= 0 && mouse_y >= 0)) { + mouse_y != latest_event_.GetY()) && + (mouse_x >= 0 && mouse_y >= 0)) { // Mouse position has changed, send a move. latest_event_ = MouseEvent(mouse_x, mouse_y, MouseAction::kMoved); for (auto listener : mouse_listeners_) { diff --git a/graphics/test/example_bmp.bmp b/graphics/test/example_bmp.bmp new file mode 100644 index 0000000000000000000000000000000000000000..0ced88e8a19cab36f04852d6773787449f887df4 GIT binary patch literal 306 zcmZ?rHDY7{12Z700mPh8%*Y@C7XJexL297tK-?2tMz|12?*IS)5NR|9A$@R7Kz(qn jKtY6=5DADJghZH$EC(?OAqU|jlL#|`q7b9t47~aPEkAY_ literal 0 HcmV?d00001 diff --git a/graphics/test/image_unittest.cc b/graphics/test/image_unittest.cc index a79ffff..d52285f 100644 --- a/graphics/test/image_unittest.cc +++ b/graphics/test/image_unittest.cc @@ -4,11 +4,13 @@ // license that can be found in the LICENSE file or at // https://opensource.org/licenses/MIT. +#include "../image.h" + #include #include + #include -#include "../image.h" #include "image_test_utils.h" #include "test_event_generator.h" @@ -18,7 +20,7 @@ TEST(ImageTest, CreatesImageWithoutCrashing) { TEST(ImageTest, LoadsImageWithoutCrashing) { graphics::Image image; - image.Load("example_fractal_tree.png"); + image.Load("example_bmp.bmp"); EXPECT_TRUE(image.GetWidth() > 0); EXPECT_TRUE(image.GetHeight() > 0); } @@ -174,6 +176,8 @@ TEST(ImageTest, DrawsLinesWithThickness) { remove("DrawsLinesWithThicknessHorizontal.bmp"); remove("DrawsLinesWithThicknessVertical.bmp"); + // Use an odd size thickness. Even size thickness isn't evenly divisible + // by 2, meaning we can't create a rectangle of the right size. int thickness = 21; int size = 100; graphics::Color blue(0, 0, 255); @@ -184,17 +188,19 @@ TEST(ImageTest, DrawsLinesWithThickness) { // Horizontal rectangle is the same as a thick line. expected.DrawRectangle(10, 40, 81, thickness, blue); actual.DrawLine(10, 50, 90, 50, blue, thickness); - EXPECT_TRUE(ImagesMatch(&expected, &actual, "DrawsLinesWithThicknessHorizontal.bmp", - DiffType::kTypeHighlight)); + EXPECT_TRUE(ImagesMatch(&expected, &actual, + "DrawsLinesWithThicknessHorizontal.bmp", + DiffType::kTypeHighlight)); // Vertical rectangle is the same as a thick line. expected.DrawRectangle(40, 5, thickness, 91, blue); actual.DrawLine(50, 5, 50, 95, blue, thickness); - EXPECT_TRUE(ImagesMatch(&expected, &actual, "DrawsLinesWithThicknessVertical.bmp", - DiffType::kTypeHighlight)); + EXPECT_TRUE(ImagesMatch(&expected, &actual, + "DrawsLinesWithThicknessVertical.bmp", + DiffType::kTypeHighlight)); - // 45 degree rectangle is as thick as expected. Check some points that wouldn't be - // colored unless the line had appropriate thickness. + // 45 degree rectangle is as thick as expected. Check some points that + // wouldn't be colored unless the line had appropriate thickness. graphics::Color green(0, 255, 0); actual.DrawLine(0, 0, size - 1, size - 1, green, thickness); EXPECT_EQ(actual.GetColor(thickness / 2, 0), green); @@ -203,7 +209,69 @@ TEST(ImageTest, DrawsLinesWithThickness) { EXPECT_EQ(actual.GetColor(size / 2, size / 2 + thickness / 2), green); // But not too wide! - EXPECT_NE(actual.GetColor(size / 2, size / 2 + std::sqrt(2 * thickness * thickness)), green); + EXPECT_NE(actual.GetColor(size / 2, + size / 2 + std::sqrt(2 * thickness * thickness)), + green); +} + +TEST(ImageTest, DrawsLinesWithThicknessOrderDoesntMatter) { + remove("DrawsLinesWithThicknessOrderDiagonal1.bmp"); + remove("DrawsLinesWithThicknessOrderDiagonal2.bmp"); + remove("DrawsLinesWithThicknessOrderDiagonal3.bmp"); + remove("DrawsLinesWithThicknessOrderDiagonal4.bmp"); + remove("DrawsLinesWithThicknessOrderHorizontal.bmp"); + remove("DrawsLinesWithThicknessOrderVertical.bmp"); + + int thickness = 10; + int size = 100; + graphics::Color blue(0, 0, 255); + graphics::Color green(0, 255, 0); + graphics::Color black(0, 0, 0); + + graphics::Image expected(size, size); + graphics::Image actual(size, size); + + // Expected has smaller x0 than x1, smaller y0 than y1. + expected.DrawLine(20, 31, 17, 80, blue, thickness); + actual.DrawLine(17, 80, 20, 31, blue, thickness); + ASSERT_TRUE(ImagesMatch(&expected, &actual, + "DrawsLinesWithThicknessOrderDiagonal1.bmp", + DiffType::kTypeHighlight)); + + // Expected has bigger x0 than x1, smaller y0 than y1. + expected.DrawLine(77, 20, 80, 80, black, thickness); + actual.DrawLine(80, 80, 77, 20, black, thickness); + ASSERT_TRUE(ImagesMatch(&expected, &actual, + "DrawsLinesWithThicknessOrderDiagonal2.bmp", + DiffType::kTypeHighlight)); + + // Expected has smaller x0 than x1, bigger y0 than y1. + expected.DrawLine(10, 78, 80, 13, black, thickness); + actual.DrawLine(80, 13, 10, 78, black, thickness); + ASSERT_TRUE(ImagesMatch(&expected, &actual, + "DrawsLinesWithThicknessOrderDiagonal3.bmp", + DiffType::kTypeHighlight)); + + // Expected has bigger x0 than x1, bigger y0 than y1. + expected.DrawLine(57, 80, 80, 20, blue, thickness); + actual.DrawLine(80, 20, 57, 80, blue, thickness); + ASSERT_TRUE(ImagesMatch(&expected, &actual, + "DrawsLinesWithThicknessOrderDiagonal4.bmp", + DiffType::kTypeHighlight)); + + // Horizontal rectangle is the same as a thick line. + expected.DrawLine(10, 50, 90, 50, green, thickness); + actual.DrawLine(90, 50, 10, 50, green, thickness); + ASSERT_TRUE(ImagesMatch(&expected, &actual, + "DrawsLinesWithThicknessOrderHorizontal.bmp", + DiffType::kTypeHighlight)); + + // Vertical rectangle is the same as a thick line. + expected.DrawLine(50, 5, 50, 95, black, thickness); + actual.DrawLine(50, 95, 50, 5, black, thickness); + ASSERT_TRUE(ImagesMatch(&expected, &actual, + "DrawsLinesWithThicknessOrderVertical.bmp", + DiffType::kTypeHighlight)); } class TestEventListener : public graphics::MouseEventListener { @@ -211,18 +279,19 @@ class TestEventListener : public graphics::MouseEventListener { TestEventListener() = default; ~TestEventListener() = default; void OnMouseEvent(const graphics::MouseEvent& event) override { - latest_event_ = graphics::MouseEvent(event.GetX(), event.GetY(), event.GetMouseAction()); + latest_event_ = graphics::MouseEvent(event.GetX(), event.GetY(), + event.GetMouseAction()); } - graphics::MouseEvent GetLatestEvent() { - return latest_event_; - } + graphics::MouseEvent GetLatestEvent() { return latest_event_; } + private: - graphics::MouseEvent latest_event_ = graphics::MouseEvent(0, 0, graphics::MouseAction::kReleased); + graphics::MouseEvent latest_event_ = + graphics::MouseEvent(0, 0, graphics::MouseAction::kReleased); }; -// We can send fake events if we have a reference to the image on which to send events, and we -// are not in the ShowUntilClosed loop. +// We can send fake events if we have a reference to the image on which to send +// events, and we are not in the ShowUntilClosed loop. TEST(ImageEventTest, HandlesEvents) { TestEventListener listener; int size = 100; @@ -234,28 +303,33 @@ TEST(ImageEventTest, HandlesEvents) { generator.MouseDown(10, 20); EXPECT_EQ(listener.GetLatestEvent().GetX(), 10); EXPECT_EQ(listener.GetLatestEvent().GetY(), 20); - EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kPressed); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), + graphics::MouseAction::kPressed); generator.MoveMouseTo(30, 80); EXPECT_EQ(listener.GetLatestEvent().GetX(), 30); EXPECT_EQ(listener.GetLatestEvent().GetY(), 80); - EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kDragged); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), + graphics::MouseAction::kDragged); generator.MoveMouseTo(90, 80); EXPECT_EQ(listener.GetLatestEvent().GetX(), 90); EXPECT_EQ(listener.GetLatestEvent().GetY(), 80); - EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kDragged); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), + graphics::MouseAction::kDragged); generator.MouseUp(); EXPECT_EQ(listener.GetLatestEvent().GetX(), 90); EXPECT_EQ(listener.GetLatestEvent().GetY(), 80); - EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kReleased); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), + graphics::MouseAction::kReleased); generator.MoveMouseTo(30, 30); // Mouse moved event. EXPECT_EQ(listener.GetLatestEvent().GetX(), 30); EXPECT_EQ(listener.GetLatestEvent().GetY(), 30); - EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kMoved); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), + graphics::MouseAction::kMoved); // Ensure other mouse buttons don't interfere. generator.MouseDown(10, 20); @@ -263,10 +337,12 @@ TEST(ImageEventTest, HandlesEvents) { generator.RightMouseUp(); EXPECT_EQ(listener.GetLatestEvent().GetX(), 10); EXPECT_EQ(listener.GetLatestEvent().GetY(), 20); - EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kPressed); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), + graphics::MouseAction::kPressed); generator.RightMouseDown(); generator.MouseUp(); - EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), graphics::MouseAction::kReleased); + EXPECT_EQ(listener.GetLatestEvent().GetMouseAction(), + graphics::MouseAction::kReleased); image.RemoveMouseEventListener(listener); image.Hide(); @@ -276,13 +352,10 @@ class TestAnimationEventListener : public graphics::AnimationEventListener { public: TestAnimationEventListener() = default; ~TestAnimationEventListener() = default; - void OnAnimationStep() override { - num_events_++; - } + void OnAnimationStep() override { num_events_++; } + + int GetNumEvents() { return num_events_; } - int GetNumEvents() { - return num_events_; - } private: int num_events_ = 0; }; @@ -307,7 +380,7 @@ TEST(AnimationEventTest, CallsAnimationListeners) { ASSERT_EQ(2, listener.GetNumEvents()); } -int main(int argc, char **argv) { +int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } From c0f8cd2ba6e237918aec77edcaaa19fdece25a26 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Wed, 2 Dec 2020 16:16:51 -0800 Subject: [PATCH 21/48] Fixes #3 (tested on Mac) --- graphics/test/Makefile | 42 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/graphics/test/Makefile b/graphics/test/Makefile index cac1210..542e467 100644 --- a/graphics/test/Makefile +++ b/graphics/test/Makefile @@ -6,19 +6,49 @@ .PHONY: update_cimg image_unittest +OS_NAME := $(shell uname -s | tr A-Z a-z) +SHELL := /bin/bash +HAS_GTEST := $(shell echo -e "int main() { }" >> test.cc ; clang++ test.cc -o test -lgtest 2> /dev/null; echo $$?; rm -f test.cc test;) +COMPILE_FLAGS := -lm -lX11 -lpthread + +ifeq ($(OS_NAME), darwin) + COMPILE_FLAGS := -lm -lpthread -lX11 -I/usr/X11R6/include -L/usr/X11R6/lib + HAS_BREW := $(shell command -v brew 2> /dev/null) +endif + update_cimg: @echo -e "Getting CImg..." @wget -q https://raw.githubusercontent.com/dtschump/CImg/master/CImg.h @mv CImg.h ../cimg/ @echo -e "CImg updated" -/usr/lib/libgtest.a: - @echo -e "google test library not installed\n" +install_gtest: +ifeq ($(HAS_GTEST),1) + @echo -e "google test not installed\n" +ifeq ($(OS_NAME), darwin) +ifndef ($(HAS_BREW)) + @echo -e "Installing brew, please provide your password when asked.\n" + @/bin/bash -c "$$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" + @brew install coreutils + # Need to redefine the path directories otherwise this will fail the first time. +endif @echo -e "Installing cmake. Please provide the password when asked\n" - @sudo apt-get install cmake # install cmake + @brew install cmake @echo -e "\nDownloading and installing googletest\n" + @cd /tmp/; git clone https://github.com/google/googletest; cd googletest; mkdir build; cd build; cmake .. -DCMAKE_CXX_STANDARD=17; make; make install + @echo -e "Finished installing google test\n" +else +ifneq ($(shell lsb_release -sr), 20.04) @cd /tmp/; git clone https://github.com/google/googletest.git; cd googletest; cmake CMakeLists.txt; make; sudo cp -r googletest/include/. /usr/include; sudo cp -r googlemock/include/. /usr/include; sudo cp lib/*.a /usr/lib - @echo -e "Finished installing google test library\n" +else + @echo -e "Installing cmake. Please provide the password when asked\n" + @sudo apt-get install cmake # install cmake + @echo -e "\nDownloading and installing googletest\n" + @sudo apt-get install libgtest-dev libgmock-dev + @echo -e "Finished installing google test\n" +endif +endif +endif -image_unittest: /usr/lib/libgtest.a - @clang++ -std=c++17 ../image.cc image_unittest.cc -o image_unittest -pthread -lgtest -lm -lX11 -lpthread && ./image_unittest +image_unittest: install_gtest + @clang++ -std=c++17 ../image.cc image_unittest.cc -o image_unittest -pthread -lgtest $(COMPILE_FLAGS) && ./image_unittest From 10a9f6660633f58ba14200f1d8b83cdcf6dfa940 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 23 Nov 2020 22:29:43 -0800 Subject: [PATCH 22/48] Initial version of karel with move and turn left and some drawing --- karel/karel.cc | 243 +++++++++++++++++++++++++++++++++++++++++++++++++ karel/karel.h | 22 +++++ karel/test.cc | 23 +++++ 3 files changed, 288 insertions(+) create mode 100644 karel/karel.cc create mode 100644 karel/karel.h create mode 100644 karel/test.cc diff --git a/karel/karel.cc b/karel/karel.cc new file mode 100644 index 0000000..e24169a --- /dev/null +++ b/karel/karel.cc @@ -0,0 +1,243 @@ +#include "karel.h" + +#include +#include + +namespace karel { + +enum Orientation { + kNorth, + kEast, + kSouth, + kWest, +}; + +class Cell { + public: + int GetNumBeepers() { return num_beepers_; } + void SetNumBeepers(int beepers) { num_beepers_ = beepers; } + // bool HasNorthWall() { return north_wall_; } + // bool HasSouthWall() { return south_wall_; } + // bool HasSouthWall() { return south_wall_; } + // bool HasWestWall() { return west_wall_; } + private: + bool num_beepers_ = 0; + // bool north_wall_ = false; + // bool east_wall_ = false; + // bool south_wall_ = false; + // bool west_wall_ = false; +}; + +const int dimen = 10; +const int pxPerCell = 50; +const int robotSize = 30; +const int beeperSize = 25; +const int eyeSize = 4; +const int legLength = 4; +const graphics::Color eyeColor(50, 50, 50); +const graphics::Color karelColor(125, 125, 125); +const graphics::Color markColor(50, 50, 255); +const graphics::Color beeperColor(200, 0, 200); + +class Robot { + public: + static karel::Robot& GetInstance() { + static Robot instance; + instance.Initialize(); + instance.Show(); + return instance; + } + + // Disallow copy and assign. + Robot(const Robot&) = delete; + karel::Robot& operator=(const Robot&) = delete; + + void Initialize() { + image_.Initialize(dimen * pxPerCell, dimen * pxPerCell); + for (int i = 0; i < dimen; i++) { + world_.push_back(std::vector()); + for (int j = 0; j < dimen; j++) { + world_[i].push_back(Cell()); + } + } + world_[5][3].SetNumBeepers(1); + world_[2][7].SetNumBeepers(1); + DrawWorld(); + DrawRobot(x_ * pxPerCell + robotSize / 2, y_ * pxPerCell + robotSize / 2); + image_.ShowForMs(500, "Karel's World"); + } + + void Show() { image_.Show("Karel's World"); } + + void Move() { + switch (orientation_) { + case Orientation::kNorth: + if (y_ == 0) { + // Cannot move any further. draw an error. + } else { + AnimateMove(x_, y_ - 1); + } + break; + case Orientation::kEast: + if (x_ == dimen - 1) { + } else { + AnimateMove(x_ + 1, y_); + } + break; + case Orientation::kSouth: + if (y_ == dimen - 1) { + } else { + AnimateMove(x_, y_ + 1); + } + break; + case Orientation::kWest: + if (x_ == 0) { + } else { + AnimateMove(x_ - 1, y_); + } + break; + } + } + + void TurnLeft() { + switch (orientation_) { + case Orientation::kNorth: + orientation_ = Orientation::kWest; + break; + case Orientation::kEast: + orientation_ = Orientation::kNorth; + break; + case Orientation::kSouth: + orientation_ = Orientation::kEast; + break; + case Orientation::kWest: + orientation_ = Orientation::kSouth; + break; + } + DrawWorld(); + DrawRobot(); + // todo make this 500 a param or refactor this line as a fn. + image_.ShowForMs(500, "Karel's World"); + } + + void Finish() { image_.ShowUntilClosed("Karel's World"); } + + private: + Robot() {} + + void DrawWorld() { + // TODO draw the beepers and cells + image_.DrawRectangle(0, 0, dimen * pxPerCell, dimen * pxPerCell, + graphics::Color(255, 255, 255)); + for (int i = 0; i < dimen; i++) { + for (int j = 0; j < dimen; j++) { + int x_center = i * pxPerCell + pxPerCell / 2; + int y_center = j * pxPerCell + pxPerCell / 2; + image_.DrawLine(x_center - robotSize / 2, y_center, + x_center + robotSize / 2, y_center, markColor, 3); + image_.DrawLine(x_center, y_center - robotSize / 2, x_center, + y_center + robotSize / 2, graphics::Color(0, 0, 255), + 3); + if (world_[i][j].GetNumBeepers() > 0) { + image_.DrawRectangle(x_center - beeperSize / 2, + y_center - beeperSize / 2, beeperSize, + beeperSize, beeperColor); + } + } + } + for (int i = 0; i < dimen; i++) { + image_.DrawLine(0, i * pxPerCell, 499, i * pxPerCell, + graphics::Color(200, 200, 200)); + image_.DrawLine(i * pxPerCell, 0, i * pxPerCell, 499, + graphics::Color(200, 200, 200)); + } + } + + void DrawRobot() { + DrawRobot(x_ * pxPerCell + robotSize / 2, y_ * pxPerCell + robotSize / 2); + } + + void DrawRobot(int pixel_x, int pixel_y) { + image_.DrawRectangle(pixel_x, pixel_y, robotSize, robotSize, karelColor); + image_.DrawCircle(pixel_x + robotSize / 2, pixel_y + robotSize / 2, eyeSize, + eyeColor); + switch (orientation_) { + case Orientation::kNorth: + image_.DrawCircle(pixel_x + robotSize / 2, pixel_y + 2, eyeSize, + eyeColor); + break; + case Orientation::kEast: + image_.DrawCircle(pixel_x + robotSize - 2, pixel_y + robotSize / 2, + eyeSize, eyeColor); + image_.DrawLine(pixel_x + robotSize / 2 - legLength, + pixel_y + robotSize, + pixel_x + robotSize / 2 - legLength, + pixel_y + robotSize + legLength, karelColor, 5); + image_.DrawLine(pixel_x + robotSize / 2 + legLength, + pixel_y + robotSize, + pixel_x + robotSize / 2 + legLength, + pixel_y + robotSize + legLength, karelColor, 5); + break; + case Orientation::kSouth: + image_.DrawCircle(pixel_x + robotSize / 2, pixel_y + robotSize - 2, + eyeSize, eyeColor); + break; + case Orientation::kWest: + image_.DrawCircle(pixel_x + 2, pixel_y + robotSize / 2, eyeSize, + eyeColor); + break; + } + } + + void AnimateMove(int next_x, int next_y) { + int steps = 10; + for (int i = 1; i <= steps; i++) { + DrawWorld(); + double fraction = i * 1.0 / steps; + double x = x_ * (1 - fraction) + next_x * fraction; + double y = y_ * (1 - fraction) + next_y * fraction; + DrawRobot(x * pxPerCell + robotSize / 2, y * pxPerCell + robotSize / 2); + image_.ShowForMs(60, "Karel's World"); + } + x_ = next_x; + y_ = next_y; + image_.ShowForMs(500, "Karel's World"); + } + + graphics::Image image_; + int x_ = 0; + int y_ = 9; + Orientation orientation_ = Orientation::kEast; + std::vector> world_; +}; + +} // namespace karel + +void Move() { + karel::Robot& r = karel::Robot::GetInstance(); + r.Move(); +} + +void TurnLeft() { + karel::Robot& r = karel::Robot::GetInstance(); + r.TurnLeft(); +} + +void PutBeeper() { karel::Robot& r = karel::Robot::GetInstance(); } + +void PickBeeper() { karel::Robot& r = karel::Robot::GetInstance(); } + +void Finish() { + karel::Robot& r = karel::Robot::GetInstance(); + r.Finish(); +} + +bool FrontIsClear() { + karel::Robot& r = karel::Robot::GetInstance(); + return false; +} + +bool BeepersPresent() { + karel::Robot& r = karel::Robot::GetInstance(); + return false; +} diff --git a/karel/karel.h b/karel/karel.h new file mode 100644 index 0000000..8ce271b --- /dev/null +++ b/karel/karel.h @@ -0,0 +1,22 @@ +#include "../graphics/image.h" +#include "../graphics/image_event.h" + +void Move(); + +void TurnLeft(); + +void PutBeeper(); + +void PickBeeper(); + +bool FrontIsClear(); + +bool BeepersPresent(); + +// Set-up for professors? +// https://csis.pace.edu/~bergin/KarelJava2ed/KJRdocs/kareltherobot/World.html +void SetDimensions(int width, int height); + +void PlaceBeeperAt(int x, int y); + +void Finish(); diff --git a/karel/test.cc b/karel/test.cc new file mode 100644 index 0000000..80be307 --- /dev/null +++ b/karel/test.cc @@ -0,0 +1,23 @@ +#include "karel.h" + +void KarelProgram() { + Move(); + Move(); + Move(); + TurnLeft(); + Move(); + Move(); + TurnLeft(); + // Move(); + // Move(); + // TurnLeft(); + // Move(); + // TurnLeft(); +} + +int main() { + //LoadFromFile("file.kar"); + KarelProgram(); + Finish(); + return 0; +} From b4f8b8add4d419cc286aafdaaff2b8a3442fa773 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Tue, 24 Nov 2020 20:14:22 -0800 Subject: [PATCH 23/48] Draw karel and world more nicely --- karel/karel.cc | 108 +++++++++++++++++++++++++++++++++---------------- karel/test.cc | 10 ++--- 2 files changed, 77 insertions(+), 41 deletions(-) diff --git a/karel/karel.cc b/karel/karel.cc index e24169a..d1cf1be 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -2,6 +2,7 @@ #include #include +#include namespace karel { @@ -30,14 +31,18 @@ class Cell { const int dimen = 10; const int pxPerCell = 50; +const int markSize = 10; const int robotSize = 30; -const int beeperSize = 25; +const int beeperSize = 30; const int eyeSize = 4; -const int legLength = 4; +const int legLength = 6; +const int limbWidth = 5; const graphics::Color eyeColor(50, 50, 50); const graphics::Color karelColor(125, 125, 125); -const graphics::Color markColor(50, 50, 255); -const graphics::Color beeperColor(200, 0, 200); +const graphics::Color markColor(150, 150, 255); +const graphics::Color beeperColor(172, 147, 194); +const graphics::Color limbColor(105, 105, 105); +const graphics::Color kWhite(255, 255, 255); class Robot { public: @@ -63,7 +68,7 @@ class Robot { world_[5][3].SetNumBeepers(1); world_[2][7].SetNumBeepers(1); DrawWorld(); - DrawRobot(x_ * pxPerCell + robotSize / 2, y_ * pxPerCell + robotSize / 2); + DrawRobot(x_ * pxPerCell + pxPerCell / 2, y_ * pxPerCell + pxPerCell / 2); image_.ShowForMs(500, "Karel's World"); } @@ -126,23 +131,26 @@ class Robot { Robot() {} void DrawWorld() { - // TODO draw the beepers and cells - image_.DrawRectangle(0, 0, dimen * pxPerCell, dimen * pxPerCell, - graphics::Color(255, 255, 255)); + image_.DrawRectangle(0, 0, dimen * pxPerCell, dimen * pxPerCell, kWhite); for (int i = 0; i < dimen; i++) { for (int j = 0; j < dimen; j++) { int x_center = i * pxPerCell + pxPerCell / 2; int y_center = j * pxPerCell + pxPerCell / 2; - image_.DrawLine(x_center - robotSize / 2, y_center, - x_center + robotSize / 2, y_center, markColor, 3); - image_.DrawLine(x_center, y_center - robotSize / 2, x_center, - y_center + robotSize / 2, graphics::Color(0, 0, 255), - 3); + image_.DrawLine(x_center - markSize / 2, y_center, + x_center + markSize / 2, y_center, markColor, 3); + image_.DrawLine(x_center, y_center - markSize / 2, x_center, + y_center + markSize / 2, markColor, 3); + // trig! + double dimen = sqrt((beeperSize / 2) * (beeperSize / 2) / 2); if (world_[i][j].GetNumBeepers() > 0) { - image_.DrawRectangle(x_center - beeperSize / 2, - y_center - beeperSize / 2, beeperSize, - beeperSize, beeperColor); + image_.DrawLine(x_center - dimen, + y_center - dimen, x_center + dimen, y_center + dimen, + beeperColor, beeperSize); + image_.DrawLine(x_center - dimen, + y_center - dimen, x_center +dimen, y_center + dimen, + beeperColor, beeperSize); } + // TODO: Check for walls and draw them here in a thick darker grey. } } for (int i = 0; i < dimen; i++) { @@ -154,39 +162,69 @@ class Robot { } void DrawRobot() { - DrawRobot(x_ * pxPerCell + robotSize / 2, y_ * pxPerCell + robotSize / 2); + // Center in the cell. + DrawRobot(x_ * pxPerCell + pxPerCell / 2, y_ * pxPerCell + pxPerCell / 2); } + // pixel_x and pixel_y are the center of the cell in pixels. void DrawRobot(int pixel_x, int pixel_y) { - image_.DrawRectangle(pixel_x, pixel_y, robotSize, robotSize, karelColor); - image_.DrawCircle(pixel_x + robotSize / 2, pixel_y + robotSize / 2, eyeSize, - eyeColor); + image_.DrawRectangle(pixel_x - robotSize / 2, pixel_y - robotSize / 2, + robotSize, robotSize, karelColor); switch (orientation_) { case Orientation::kNorth: - image_.DrawCircle(pixel_x + robotSize / 2, pixel_y + 2, eyeSize, - eyeColor); + image_.DrawCircle(pixel_x, pixel_y - robotSize / 2 + eyeSize / 2 + 1, + eyeSize, kWhite); + image_.DrawCircle(pixel_x, pixel_y + 1, eyeSize, kWhite); + image_.DrawCircle(pixel_x, pixel_y - robotSize / 2 + eyeSize / 2, + eyeSize, eyeColor); + image_.DrawLine(pixel_x + robotSize / 2, pixel_y - legLength, + pixel_x + robotSize / 2 + legLength, + pixel_y - legLength, limbColor, limbWidth); + image_.DrawLine(pixel_x + robotSize / 2, pixel_y + legLength, + pixel_x + robotSize / 2 + legLength, + pixel_y + legLength, limbColor, limbWidth); break; case Orientation::kEast: - image_.DrawCircle(pixel_x + robotSize - 2, pixel_y + robotSize / 2, + image_.DrawCircle(pixel_x - 1, pixel_y, eyeSize, kWhite); + image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2 - 1, pixel_y, + eyeSize, kWhite); + image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2, pixel_y, eyeSize, eyeColor); - image_.DrawLine(pixel_x + robotSize / 2 - legLength, - pixel_y + robotSize, - pixel_x + robotSize / 2 - legLength, - pixel_y + robotSize + legLength, karelColor, 5); - image_.DrawLine(pixel_x + robotSize / 2 + legLength, - pixel_y + robotSize, - pixel_x + robotSize / 2 + legLength, - pixel_y + robotSize + legLength, karelColor, 5); + image_.DrawLine( + pixel_x - legLength, pixel_y + robotSize / 2, pixel_x - legLength, + pixel_y + robotSize / 2 + legLength, limbColor, limbWidth); + image_.DrawLine( + pixel_x + legLength, pixel_y + robotSize / 2, pixel_x + legLength, + pixel_y + robotSize / 2 + legLength, limbColor, limbWidth); break; case Orientation::kSouth: - image_.DrawCircle(pixel_x + robotSize / 2, pixel_y + robotSize - 2, + image_.DrawCircle(pixel_x, pixel_y + robotSize / 2 - eyeSize / 2 - 1, + eyeSize, kWhite); + image_.DrawCircle(pixel_x, pixel_y - 1, eyeSize, kWhite); + image_.DrawCircle(pixel_x, pixel_y + robotSize / 2 - eyeSize / 2, eyeSize, eyeColor); + image_.DrawLine(pixel_x - robotSize / 2, pixel_y - legLength, + pixel_x - robotSize / 2 - legLength, + pixel_y - legLength, limbColor, limbWidth); + image_.DrawLine(pixel_x - robotSize / 2, pixel_y + legLength, + pixel_x - robotSize / 2 - legLength, + pixel_y + legLength, limbColor, limbWidth); break; case Orientation::kWest: - image_.DrawCircle(pixel_x + 2, pixel_y + robotSize / 2, eyeSize, - eyeColor); + image_.DrawCircle(pixel_x + 1, pixel_y, eyeSize, kWhite); + image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2 + 1, pixel_y, + eyeSize, kWhite); + image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2, pixel_y, + eyeSize, eyeColor); + image_.DrawLine( + pixel_x - legLength, pixel_y - robotSize / 2, pixel_x - legLength, + pixel_y - robotSize / 2 - legLength, limbColor, limbWidth); + image_.DrawLine( + pixel_x + legLength, pixel_y - robotSize / 2, pixel_x + legLength, + pixel_y - robotSize / 2 - legLength, limbColor, limbWidth); break; } + image_.DrawCircle(pixel_x, pixel_y, eyeSize, eyeColor); } void AnimateMove(int next_x, int next_y) { @@ -196,7 +234,7 @@ class Robot { double fraction = i * 1.0 / steps; double x = x_ * (1 - fraction) + next_x * fraction; double y = y_ * (1 - fraction) + next_y * fraction; - DrawRobot(x * pxPerCell + robotSize / 2, y * pxPerCell + robotSize / 2); + DrawRobot(x * pxPerCell + pxPerCell / 2, y * pxPerCell + pxPerCell / 2); image_.ShowForMs(60, "Karel's World"); } x_ = next_x; diff --git a/karel/test.cc b/karel/test.cc index 80be307..67d005f 100644 --- a/karel/test.cc +++ b/karel/test.cc @@ -1,18 +1,16 @@ #include "karel.h" void KarelProgram() { - Move(); Move(); Move(); TurnLeft(); Move(); Move(); TurnLeft(); - // Move(); - // Move(); - // TurnLeft(); - // Move(); - // TurnLeft(); + Move(); + TurnLeft(); + Move(); + //TurnLeft(); } int main() { From a60d5d2677b0ed307873a20aab1cb38e9ab4d8c4 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Tue, 24 Nov 2020 21:12:05 -0800 Subject: [PATCH 24/48] pick and put beepers --- karel/karel.cc | 65 +++++++++++++++++++++++++++++++++++++------------- karel/karel.h | 2 +- karel/test.cc | 6 ++++- 3 files changed, 55 insertions(+), 18 deletions(-) diff --git a/karel/karel.cc b/karel/karel.cc index d1cf1be..cf6fd1d 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -1,16 +1,17 @@ #include "karel.h" +#include + #include #include -#include namespace karel { enum Orientation { - kNorth, - kEast, - kSouth, - kWest, + kNorth = 1, + kEast = 2, + kSouth = 3, + kWest = 4, }; class Cell { @@ -49,7 +50,6 @@ class Robot { static karel::Robot& GetInstance() { static Robot instance; instance.Initialize(); - instance.Show(); return instance; } @@ -58,6 +58,8 @@ class Robot { karel::Robot& operator=(const Robot&) = delete; void Initialize() { + if (initialized_) return; + initialized_ = true; image_.Initialize(dimen * pxPerCell, dimen * pxPerCell); for (int i = 0; i < dimen; i++) { world_.push_back(std::vector()); @@ -125,6 +127,33 @@ class Robot { image_.ShowForMs(500, "Karel's World"); } + void PutBeeper() { + if (!HasBeepersInBag()) { + // TODO error + return; + } + beeper_count_--; + world_[x_][y_].SetNumBeepers(world_[x_][y_].GetNumBeepers() + 1); + DrawWorld(); + DrawRobot(); + image_.ShowForMs(500, "Karel's World"); + } + + void PickBeeper() { + int count = world_[x_][y_].GetNumBeepers(); + if (count < 1) { + // TODO error + return; + } + world_[x_][y_].SetNumBeepers(count - 1); + beeper_count_++; + DrawWorld(); + DrawRobot(); + image_.ShowForMs(500, "Karel's World"); + } + + bool HasBeepersInBag() { return beeper_count_ > 0; } + void Finish() { image_.ShowUntilClosed("Karel's World"); } private: @@ -143,12 +172,8 @@ class Robot { // trig! double dimen = sqrt((beeperSize / 2) * (beeperSize / 2) / 2); if (world_[i][j].GetNumBeepers() > 0) { - image_.DrawLine(x_center - dimen, - y_center - dimen, x_center + dimen, y_center + dimen, - beeperColor, beeperSize); - image_.DrawLine(x_center - dimen, - y_center - dimen, x_center +dimen, y_center + dimen, - beeperColor, beeperSize); + image_.DrawLine(x_center - dimen, y_center - dimen, x_center + dimen, + y_center + dimen, beeperColor, beeperSize); } // TODO: Check for walls and draw them here in a thick darker grey. } @@ -246,7 +271,9 @@ class Robot { int x_ = 0; int y_ = 9; Orientation orientation_ = Orientation::kEast; + int beeper_count_ = 0; std::vector> world_; + bool initialized_ = false; }; } // namespace karel @@ -261,9 +288,15 @@ void TurnLeft() { r.TurnLeft(); } -void PutBeeper() { karel::Robot& r = karel::Robot::GetInstance(); } +void PutBeeper() { + karel::Robot& r = karel::Robot::GetInstance(); + r.PutBeeper(); +} -void PickBeeper() { karel::Robot& r = karel::Robot::GetInstance(); } +void PickBeeper() { + karel::Robot& r = karel::Robot::GetInstance(); + r.PickBeeper(); +} void Finish() { karel::Robot& r = karel::Robot::GetInstance(); @@ -275,7 +308,7 @@ bool FrontIsClear() { return false; } -bool BeepersPresent() { +bool HasBeepersInBag() { karel::Robot& r = karel::Robot::GetInstance(); - return false; + return r.HasBeepersInBag(); } diff --git a/karel/karel.h b/karel/karel.h index 8ce271b..9ec941c 100644 --- a/karel/karel.h +++ b/karel/karel.h @@ -11,7 +11,7 @@ void PickBeeper(); bool FrontIsClear(); -bool BeepersPresent(); +bool HasBeepersInBag(); // Set-up for professors? // https://csis.pace.edu/~bergin/KarelJava2ed/KJRdocs/kareltherobot/World.html diff --git a/karel/test.cc b/karel/test.cc index 67d005f..7439fee 100644 --- a/karel/test.cc +++ b/karel/test.cc @@ -6,11 +6,15 @@ void KarelProgram() { TurnLeft(); Move(); Move(); + PickBeeper(); + Move(); + PutBeeper(); + PickBeeper(); TurnLeft(); Move(); + PutBeeper(); TurnLeft(); Move(); - //TurnLeft(); } int main() { From b065603806643a257ed5192b7576cf3552be7d94 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 3 Dec 2020 13:41:17 -0800 Subject: [PATCH 25/48] Beginning file loading --- karel/karel.cc | 217 ++++++++++++++++++++++----- karel/karel.h | 2 + karel/test.cc | 30 ++-- karel/worlds/1x8.w | 4 + karel/worlds/8x1.w | 4 + karel/worlds/8x8.w | 4 + karel/worlds/CollectNewspaperKarel.w | 15 ++ 7 files changed, 221 insertions(+), 55 deletions(-) create mode 100644 karel/worlds/1x8.w create mode 100644 karel/worlds/8x1.w create mode 100644 karel/worlds/8x8.w create mode 100644 karel/worlds/CollectNewspaperKarel.w diff --git a/karel/karel.cc b/karel/karel.cc index cf6fd1d..c273a03 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -2,7 +2,9 @@ #include +#include #include +#include #include namespace karel { @@ -16,21 +18,32 @@ enum Orientation { class Cell { public: - int GetNumBeepers() { return num_beepers_; } + int GetNumBeepers() const { return num_beepers_; } void SetNumBeepers(int beepers) { num_beepers_ = beepers; } - // bool HasNorthWall() { return north_wall_; } - // bool HasSouthWall() { return south_wall_; } - // bool HasSouthWall() { return south_wall_; } - // bool HasWestWall() { return west_wall_; } + bool HasNorthWall() const { return north_wall_; } + bool HasEastWall() const { return south_wall_; } + bool HasSouthWall() const { return south_wall_; } + bool HasWestWall() const { return west_wall_; } + void SetHasNorthWall(bool has_wall) { north_wall_ = has_wall; } + void SetHasEastWall(bool has_wall) { south_wall_ = has_wall; } + void SetHasSouthWall(bool has_wall) { south_wall_ = has_wall; } + void SetHasWestWall(bool has_wall) { west_wall_ = has_wall; } + private: bool num_beepers_ = 0; - // bool north_wall_ = false; - // bool east_wall_ = false; - // bool south_wall_ = false; - // bool west_wall_ = false; + bool north_wall_ = false; + bool east_wall_ = false; + bool south_wall_ = false; + bool west_wall_ = false; }; -const int dimen = 10; +// ms for a long animation duration to show Karel. +const int kLongDuration = 500; + +// ms for a short animation duration to show Karel. +const int kShortDuration = 50; + +const int kDefaultDimen = 10; const int pxPerCell = 50; const int markSize = 10; const int robotSize = 30; @@ -47,9 +60,22 @@ const graphics::Color kWhite(255, 255, 255); class Robot { public: - static karel::Robot& GetInstance() { + // Get the Robot singleton. + + static karel::Robot& PrivateGetInstance() { static Robot instance; - instance.Initialize(); + return instance; + } + + static karel::Robot& GetInstance() { + karel::Robot& instance = PrivateGetInstance(); + instance.Initialize(""); + return instance; + } + + static karel::Robot& InitializeInstance(std::string filename) { + karel::Robot& instance = PrivateGetInstance(); + instance.Initialize(filename); return instance; } @@ -57,24 +83,123 @@ class Robot { Robot(const Robot&) = delete; karel::Robot& operator=(const Robot&) = delete; - void Initialize() { + void Initialize(std::string filename) { + // Ensure only intitialized once. if (initialized_) return; initialized_ = true; - image_.Initialize(dimen * pxPerCell, dimen * pxPerCell); - for (int i = 0; i < dimen; i++) { - world_.push_back(std::vector()); - for (int j = 0; j < dimen; j++) { - world_[i].push_back(Cell()); + + if (!filename.size()) { + // No file. Default 10x10 blank world with no walls and no beepers. + x_dimen_ = kDefaultDimen; + y_dimen_ = kDefaultDimen; + for (int i = 0; i < x_dimen_; i++) { + world_.push_back(std::vector()); + for (int j = 0; j < y_dimen_; j++) { + world_[i].push_back(Cell()); + } + } + // Nearly infinite beepers. + beeper_count_ = std::numeric_limits::max(); + x_ = 0; + y_ = y_dimen_ - 1; + } else { + std::fstream world_file; + world_file.open(filename); + if (!world_file.is_open()) { + // TODO: Replace throwables with better error codes? + throw std::string("Error opening file " + filename); + } + std::string line; + + const std::string dimension_prefix = "Dimension:"; + const std::string beeper_prefix = "Beeper:"; + const std::string wall_prefix = "Wall:"; + const std::string bag_prefix = "BeeperBag:"; + const std::string karel_prefix = "Karel:"; + const std::string speed_prefix = "Speed:"; + + std::string line_prefix; + char open_paren, comma, closed_paren; + if (!(world_file >> line_prefix >> open_paren >> x_dimen_ >> comma >> + y_dimen_ >> closed_paren)) { + throw std::string("Could not find Dimension in first line"); + } + if (line_prefix != dimension_prefix) { + throw std::string("Could not find Dimension in first line"); } + for (int i = 0; i < x_dimen_; i++) { + world_.push_back(std::vector()); + for (int j = 0; j < y_dimen_; j++) { + world_[i].push_back(Cell()); + } + } + + // Read the rest of the file to get beepers and walls. + // May need better error checking. + while (world_file >> line_prefix) { + if (line_prefix == wall_prefix) { + std::cout << "wall " << std::endl; + } else if (line_prefix == beeper_prefix) { + // TODO + std::cout << "beeper in cell " << std::endl; + } else if (line_prefix == bag_prefix) { + std::string beepers; + world_file >> beepers; + if (beepers == "INFINITY") { + beeper_count_ = std::numeric_limits::max(); + } else { + beeper_count_ = stoi(beepers); + } + std::cout << "num beepers set to " << beeper_count_; + } else if (line_prefix == karel_prefix) { + std::cout << "karel_prefix " << std::endl; + + // set x, y and direction + } else if (line_prefix == speed_prefix) { + world_file >> speed_; + std::cout << "Speed set to " << speed_; + } else { + std::cout << "Default?? " << line_prefix << std::endl; + break; + } + } + + // if (!getline(world_file, line)) { + // throw std::string("File " + filename + " is empty."); + // } + // size_t dimension_index = line.find(dimension_prefix); + // if (dimension_index != std::string::npos) { + // std::string dimension_suffix = line.substr(dimension_prefix.size()); + // + // } else { + // // Error: first line should be dimension. + // throw std::string("Could not find Dimension in first line"); + // } + + // example worlds: + // https://github.com/thisdotrob/karel-the-robot/tree/master/worlds + + // get walls and beepers from file (optional in file) + + // karel initial state + x_ = 2; // from file but map x + y and dimen_ - y + y_ = y_dimen_ - 3; + + // get speed from file too. + speed_ = 1.25; + world_file.close(); } - world_[5][3].SetNumBeepers(1); - world_[2][7].SetNumBeepers(1); + + image_.Initialize(x_dimen_ * pxPerCell, y_dimen_ * pxPerCell); + DrawWorld(); DrawRobot(x_ * pxPerCell + pxPerCell / 2, y_ * pxPerCell + pxPerCell / 2); - image_.ShowForMs(500, "Karel's World"); + Show(kLongDuration); } - void Show() { image_.Show("Karel's World"); } + void Show(int duration) { + image_.ShowForMs(duration / speed_, "Karel's World"); + } void Move() { switch (orientation_) { @@ -86,13 +211,13 @@ class Robot { } break; case Orientation::kEast: - if (x_ == dimen - 1) { + if (x_ == x_dimen_ - 1) { } else { AnimateMove(x_ + 1, y_); } break; case Orientation::kSouth: - if (y_ == dimen - 1) { + if (y_ == y_dimen_ - 1) { } else { AnimateMove(x_, y_ + 1); } @@ -123,8 +248,7 @@ class Robot { } DrawWorld(); DrawRobot(); - // todo make this 500 a param or refactor this line as a fn. - image_.ShowForMs(500, "Karel's World"); + Show(kLongDuration); } void PutBeeper() { @@ -136,7 +260,7 @@ class Robot { world_[x_][y_].SetNumBeepers(world_[x_][y_].GetNumBeepers() + 1); DrawWorld(); DrawRobot(); - image_.ShowForMs(500, "Karel's World"); + Show(kLongDuration); } void PickBeeper() { @@ -149,7 +273,7 @@ class Robot { beeper_count_++; DrawWorld(); DrawRobot(); - image_.ShowForMs(500, "Karel's World"); + Show(kLongDuration); } bool HasBeepersInBag() { return beeper_count_ > 0; } @@ -160,9 +284,10 @@ class Robot { Robot() {} void DrawWorld() { - image_.DrawRectangle(0, 0, dimen * pxPerCell, dimen * pxPerCell, kWhite); - for (int i = 0; i < dimen; i++) { - for (int j = 0; j < dimen; j++) { + image_.DrawRectangle(0, 0, x_dimen_ * pxPerCell, y_dimen_ * pxPerCell, + kWhite); + for (int i = 0; i < x_dimen_; i++) { + for (int j = 0; j < y_dimen_; j++) { int x_center = i * pxPerCell + pxPerCell / 2; int y_center = j * pxPerCell + pxPerCell / 2; image_.DrawLine(x_center - markSize / 2, y_center, @@ -170,18 +295,23 @@ class Robot { image_.DrawLine(x_center, y_center - markSize / 2, x_center, y_center + markSize / 2, markColor, 3); // trig! - double dimen = sqrt((beeperSize / 2) * (beeperSize / 2) / 2); + double line_size = sqrt((beeperSize / 2) * (beeperSize / 2) / 2); if (world_[i][j].GetNumBeepers() > 0) { - image_.DrawLine(x_center - dimen, y_center - dimen, x_center + dimen, - y_center + dimen, beeperColor, beeperSize); + image_.DrawLine(x_center - line_size, y_center - line_size, + x_center + line_size, y_center + line_size, + beeperColor, beeperSize); } // TODO: Check for walls and draw them here in a thick darker grey. } } - for (int i = 0; i < dimen; i++) { - image_.DrawLine(0, i * pxPerCell, 499, i * pxPerCell, + for (int i = 0; i < y_dimen_; i++) { + // Draw horizontal lines. + image_.DrawLine(0, i * pxPerCell, pxPerCell * x_dimen_ - 1, i * pxPerCell, graphics::Color(200, 200, 200)); - image_.DrawLine(i * pxPerCell, 0, i * pxPerCell, 499, + } + for (int i = 0; i < x_dimen_; i++) { + // Draw vertical lines. + image_.DrawLine(i * pxPerCell, 0, i * pxPerCell, pxPerCell * y_dimen_ - 1, graphics::Color(200, 200, 200)); } } @@ -260,24 +390,31 @@ class Robot { double x = x_ * (1 - fraction) + next_x * fraction; double y = y_ * (1 - fraction) + next_y * fraction; DrawRobot(x * pxPerCell + pxPerCell / 2, y * pxPerCell + pxPerCell / 2); - image_.ShowForMs(60, "Karel's World"); + Show(kShortDuration); } x_ = next_x; y_ = next_y; - image_.ShowForMs(500, "Karel's World"); + Show(kLongDuration); } graphics::Image image_; + int x_dimen_ = kDefaultDimen; + int y_dimen_ = kDefaultDimen; int x_ = 0; - int y_ = 9; + int y_ = y_dimen_ - 1; Orientation orientation_ = Orientation::kEast; int beeper_count_ = 0; std::vector> world_; bool initialized_ = false; + double speed_ = 1.0; }; } // namespace karel +void LoadWorld(std::string filename) { + karel::Robot& r = karel::Robot::InitializeInstance(filename); +} + void Move() { karel::Robot& r = karel::Robot::GetInstance(); r.Move(); diff --git a/karel/karel.h b/karel/karel.h index 9ec941c..fa96ee6 100644 --- a/karel/karel.h +++ b/karel/karel.h @@ -20,3 +20,5 @@ void SetDimensions(int width, int height); void PlaceBeeperAt(int x, int y); void Finish(); + +void LoadWorld(std::string filename); diff --git a/karel/test.cc b/karel/test.cc index 7439fee..d5c8493 100644 --- a/karel/test.cc +++ b/karel/test.cc @@ -1,24 +1,24 @@ #include "karel.h" void KarelProgram() { - Move(); - Move(); - TurnLeft(); - Move(); - Move(); - PickBeeper(); - Move(); - PutBeeper(); - PickBeeper(); - TurnLeft(); - Move(); - PutBeeper(); - TurnLeft(); - Move(); + // Move(); + // Move(); + // TurnLeft(); + // Move(); + // Move(); + // PickBeeper(); + // Move(); + // PutBeeper(); + // PickBeeper(); + // TurnLeft(); + // Move(); + // PutBeeper(); + // TurnLeft(); + // Move(); } int main() { - //LoadFromFile("file.kar"); + LoadWorld("worlds/8x1.w"); KarelProgram(); Finish(); return 0; diff --git a/karel/worlds/1x8.w b/karel/worlds/1x8.w new file mode 100644 index 0000000..052a28a --- /dev/null +++ b/karel/worlds/1x8.w @@ -0,0 +1,4 @@ +Dimension: (1, 8) +BeeperBag: INFINITY +Karel: (1, 1) East +Speed: 0.75 diff --git a/karel/worlds/8x1.w b/karel/worlds/8x1.w new file mode 100644 index 0000000..b3c4412 --- /dev/null +++ b/karel/worlds/8x1.w @@ -0,0 +1,4 @@ +Dimension: (8, 1) +BeeperBag: INFINITY +Karel: (1, 1) East +Speed: 0.75 diff --git a/karel/worlds/8x8.w b/karel/worlds/8x8.w new file mode 100644 index 0000000..fe36721 --- /dev/null +++ b/karel/worlds/8x8.w @@ -0,0 +1,4 @@ +Dimension: (8, 8) +BeeperBag: INFINITY +Karel: (1, 1) East +Speed: 0.75 diff --git a/karel/worlds/CollectNewspaperKarel.w b/karel/worlds/CollectNewspaperKarel.w new file mode 100644 index 0000000..ddc1e1d --- /dev/null +++ b/karel/worlds/CollectNewspaperKarel.w @@ -0,0 +1,15 @@ +Dimension: (7, 5) +Wall: (3, 2) west +Wall: (3, 2) south +Wall: (3, 3) west +Wall: (3, 4) west +Wall: (3, 5) south +Wall: (4, 2) south +Wall: (4, 5) south +Wall: (5, 2) south +Wall: (5, 5) south +Wall: (6, 2) west +Wall: (6, 4) west +Beeper: (6, 3) 1 +Karel: (3, 4) east +Speed: 0.00 From b2ecddedfb74a7645c3f43e8e119591bb6dc8dd0 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 3 Dec 2020 14:24:41 -0800 Subject: [PATCH 26/48] Can load some worlds --- karel/karel.cc | 198 +++++++++++++++++++-------------- karel/test.cc | 4 +- karel/worlds/StoneMasonKarel.w | 39 +++++++ 3 files changed, 158 insertions(+), 83 deletions(-) create mode 100644 karel/worlds/StoneMasonKarel.w diff --git a/karel/karel.cc b/karel/karel.cc index c273a03..5559643 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -16,6 +16,12 @@ enum Orientation { kWest = 4, }; +struct PositionAndOrientation { + int x = 0; + int y = 0; + Orientation orientation = Orientation::kNorth; +}; + class Cell { public: int GetNumBeepers() const { return num_beepers_; } @@ -24,10 +30,22 @@ class Cell { bool HasEastWall() const { return south_wall_; } bool HasSouthWall() const { return south_wall_; } bool HasWestWall() const { return west_wall_; } - void SetHasNorthWall(bool has_wall) { north_wall_ = has_wall; } - void SetHasEastWall(bool has_wall) { south_wall_ = has_wall; } - void SetHasSouthWall(bool has_wall) { south_wall_ = has_wall; } - void SetHasWestWall(bool has_wall) { west_wall_ = has_wall; } + void AddWall(Orientation wall_orientation) { + switch (wall_orientation) { + case kNorth: + north_wall_ = true; + break; + case kEast: + east_wall_ = true; + break; + case kSouth: + south_wall_ = true; + break; + case kWest: + west_wall_ = true; + break; + } + } private: bool num_beepers_ = 0; @@ -51,12 +69,14 @@ const int beeperSize = 30; const int eyeSize = 4; const int legLength = 6; const int limbWidth = 5; +const int kWallThickness = 3; const graphics::Color eyeColor(50, 50, 50); const graphics::Color karelColor(125, 125, 125); const graphics::Color markColor(150, 150, 255); const graphics::Color beeperColor(172, 147, 194); const graphics::Color limbColor(105, 105, 105); const graphics::Color kWhite(255, 255, 255); +const graphics::Color kWallColor(125, 125, 125); class Robot { public: @@ -100,8 +120,8 @@ class Robot { } // Nearly infinite beepers. beeper_count_ = std::numeric_limits::max(); - x_ = 0; - y_ = y_dimen_ - 1; + position_.x = 0; + position_.y = y_dimen_ - 1; } else { std::fstream world_file; world_file.open(filename); @@ -135,13 +155,15 @@ class Robot { } // Read the rest of the file to get beepers and walls. - // May need better error checking. + // TODO: May need better error checking. while (world_file >> line_prefix) { if (line_prefix == wall_prefix) { - std::cout << "wall " << std::endl; + PositionAndOrientation wall = ParsePositionAndOrientation(world_file); + world_[wall.x][wall.y].AddWall(wall.orientation); } else if (line_prefix == beeper_prefix) { - // TODO - std::cout << "beeper in cell " << std::endl; + int x, y, count; + world_file >> open_paren >> x >> comma >> y >> closed_paren >> count; + world_[x][y].SetNumBeepers(count); } else if (line_prefix == bag_prefix) { std::string beepers; world_file >> beepers; @@ -150,50 +172,22 @@ class Robot { } else { beeper_count_ = stoi(beepers); } - std::cout << "num beepers set to " << beeper_count_; } else if (line_prefix == karel_prefix) { - std::cout << "karel_prefix " << std::endl; - - // set x, y and direction + position_ = ParsePositionAndOrientation(world_file); } else if (line_prefix == speed_prefix) { - world_file >> speed_; - std::cout << "Speed set to " << speed_; + world_file >> speed_; } else { - std::cout << "Default?? " << line_prefix << std::endl; - break; + std::cout << "unexpected token in file: " << line_prefix << std::endl; + break; } } - - // if (!getline(world_file, line)) { - // throw std::string("File " + filename + " is empty."); - // } - // size_t dimension_index = line.find(dimension_prefix); - // if (dimension_index != std::string::npos) { - // std::string dimension_suffix = line.substr(dimension_prefix.size()); - // - // } else { - // // Error: first line should be dimension. - // throw std::string("Could not find Dimension in first line"); - // } - - // example worlds: - // https://github.com/thisdotrob/karel-the-robot/tree/master/worlds - - // get walls and beepers from file (optional in file) - - // karel initial state - x_ = 2; // from file but map x + y and dimen_ - y - y_ = y_dimen_ - 3; - - // get speed from file too. - speed_ = 1.25; world_file.close(); } - image_.Initialize(x_dimen_ * pxPerCell, y_dimen_ * pxPerCell); DrawWorld(); - DrawRobot(x_ * pxPerCell + pxPerCell / 2, y_ * pxPerCell + pxPerCell / 2); + DrawRobot(position_.x * pxPerCell + pxPerCell / 2, + position_.y * pxPerCell + pxPerCell / 2); Show(kLongDuration); } @@ -202,48 +196,48 @@ class Robot { } void Move() { - switch (orientation_) { + switch (position_.orientation) { case Orientation::kNorth: - if (y_ == 0) { + if (position_.y == 0) { // Cannot move any further. draw an error. } else { - AnimateMove(x_, y_ - 1); + AnimateMove(position_.x, position_.y - 1); } break; case Orientation::kEast: - if (x_ == x_dimen_ - 1) { + if (position_.x == x_dimen_ - 1) { } else { - AnimateMove(x_ + 1, y_); + AnimateMove(position_.x + 1, position_.y); } break; case Orientation::kSouth: - if (y_ == y_dimen_ - 1) { + if (position_.y == y_dimen_ - 1) { } else { - AnimateMove(x_, y_ + 1); + AnimateMove(position_.x, position_.y + 1); } break; case Orientation::kWest: - if (x_ == 0) { + if (position_.x == 0) { } else { - AnimateMove(x_ - 1, y_); + AnimateMove(position_.x - 1, position_.y); } break; } } void TurnLeft() { - switch (orientation_) { + switch (position_.orientation) { case Orientation::kNorth: - orientation_ = Orientation::kWest; + position_.orientation = Orientation::kWest; break; case Orientation::kEast: - orientation_ = Orientation::kNorth; + position_.orientation = Orientation::kNorth; break; case Orientation::kSouth: - orientation_ = Orientation::kEast; + position_.orientation = Orientation::kEast; break; case Orientation::kWest: - orientation_ = Orientation::kSouth; + position_.orientation = Orientation::kSouth; break; } DrawWorld(); @@ -257,19 +251,20 @@ class Robot { return; } beeper_count_--; - world_[x_][y_].SetNumBeepers(world_[x_][y_].GetNumBeepers() + 1); + world_[position_.x][position_.y].SetNumBeepers( + world_[position_.x][position_.y].GetNumBeepers() + 1); DrawWorld(); DrawRobot(); Show(kLongDuration); } void PickBeeper() { - int count = world_[x_][y_].GetNumBeepers(); + int count = world_[position_.x][position_.y].GetNumBeepers(); if (count < 1) { // TODO error return; } - world_[x_][y_].SetNumBeepers(count - 1); + world_[position_.x][position_.y].SetNumBeepers(count - 1); beeper_count_++; DrawWorld(); DrawRobot(); @@ -286,46 +281,60 @@ class Robot { void DrawWorld() { image_.DrawRectangle(0, 0, x_dimen_ * pxPerCell, y_dimen_ * pxPerCell, kWhite); + for (int i = 0; i < y_dimen_; i++) { + // Draw horizontal lines. + image_.DrawLine(0, i * pxPerCell, pxPerCell * x_dimen_ - 1, i * pxPerCell, + graphics::Color(200, 200, 200)); + } + for (int i = 0; i < x_dimen_; i++) { + // Draw vertical lines. + image_.DrawLine(i * pxPerCell, 0, i * pxPerCell, pxPerCell * y_dimen_ - 1, + graphics::Color(200, 200, 200)); + } for (int i = 0; i < x_dimen_; i++) { for (int j = 0; j < y_dimen_; j++) { int x_center = i * pxPerCell + pxPerCell / 2; int y_center = j * pxPerCell + pxPerCell / 2; + // Draw the little plus at the center of the cell. image_.DrawLine(x_center - markSize / 2, y_center, x_center + markSize / 2, y_center, markColor, 3); image_.DrawLine(x_center, y_center - markSize / 2, x_center, y_center + markSize / 2, markColor, 3); // trig! double line_size = sqrt((beeperSize / 2) * (beeperSize / 2) / 2); - if (world_[i][j].GetNumBeepers() > 0) { + Cell& cell = world_[i][j]; + if (cell.GetNumBeepers() > 0) { + // Draw the beepers. Beepers are stacked so you can't tell if there's + // more than one in a stack. image_.DrawLine(x_center - line_size, y_center - line_size, x_center + line_size, y_center + line_size, beeperColor, beeperSize); } - // TODO: Check for walls and draw them here in a thick darker grey. + // Draw the walls. + if (cell.HasNorthWall()) { + image_.DrawLine(i * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell, j * pxPerCell, kWallColor, kWallThickness); + } else if (cell.HasSouthWall()) { + image_.DrawLine(i * pxPerCell, (j + 1) * pxPerCell, (i + 1) * pxPerCell, (j + 1) * pxPerCell, kWallColor, kWallThickness); + } else if (cell.HasWestWall()) { + image_.DrawLine(i * pxPerCell, j * pxPerCell, i * pxPerCell, (j + 1) * pxPerCell, kWallColor, kWallThickness); + } else if (cell.HasEastWall()) { + image_.DrawLine((i + 1) * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell, (j + 1) * pxPerCell, kWallColor, kWallThickness); + } } } - for (int i = 0; i < y_dimen_; i++) { - // Draw horizontal lines. - image_.DrawLine(0, i * pxPerCell, pxPerCell * x_dimen_ - 1, i * pxPerCell, - graphics::Color(200, 200, 200)); - } - for (int i = 0; i < x_dimen_; i++) { - // Draw vertical lines. - image_.DrawLine(i * pxPerCell, 0, i * pxPerCell, pxPerCell * y_dimen_ - 1, - graphics::Color(200, 200, 200)); - } } void DrawRobot() { // Center in the cell. - DrawRobot(x_ * pxPerCell + pxPerCell / 2, y_ * pxPerCell + pxPerCell / 2); + DrawRobot(position_.x * pxPerCell + pxPerCell / 2, + position_.y * pxPerCell + pxPerCell / 2); } // pixel_x and pixel_y are the center of the cell in pixels. void DrawRobot(int pixel_x, int pixel_y) { image_.DrawRectangle(pixel_x - robotSize / 2, pixel_y - robotSize / 2, robotSize, robotSize, karelColor); - switch (orientation_) { + switch (position_.orientation) { case Orientation::kNorth: image_.DrawCircle(pixel_x, pixel_y - robotSize / 2 + eyeSize / 2 + 1, eyeSize, kWhite); @@ -387,22 +396,47 @@ class Robot { for (int i = 1; i <= steps; i++) { DrawWorld(); double fraction = i * 1.0 / steps; - double x = x_ * (1 - fraction) + next_x * fraction; - double y = y_ * (1 - fraction) + next_y * fraction; + double x = position_.x * (1 - fraction) + next_x * fraction; + double y = position_.y * (1 - fraction) + next_y * fraction; DrawRobot(x * pxPerCell + pxPerCell / 2, y * pxPerCell + pxPerCell / 2); Show(kShortDuration); } - x_ = next_x; - y_ = next_y; + position_.x = next_x; + position_.y = next_y; Show(kLongDuration); } + PositionAndOrientation ParsePositionAndOrientation(std::fstream& file) { + std::string direction; + char open_paren, comma, closed_paren; + int x, y; + file >> open_paren >> x >> comma >> y >> closed_paren >> direction; + // Convert y in the file to y on-screen. In the file, (1, 1) is the + // bottom left corner. + // In Karel coordinates, that's (0, y_dimen - 1). + PositionAndOrientation result; + result.y = y_dimen_ - y; + result.x = x - 1; + // Ensure the first character is lower cased. + direction[0] = tolower(direction[0]); + if (direction == "north") { + result.orientation = Orientation::kNorth; + } else if (direction == "east") { + result.orientation = Orientation::kEast; + } else if (direction == "south") { + result.orientation = Orientation::kSouth; + } else if (direction == "west") { + result.orientation = Orientation::kWest; + } else { + throw std::string("Unknown direction " + direction); + } + return result; + } + graphics::Image image_; int x_dimen_ = kDefaultDimen; int y_dimen_ = kDefaultDimen; - int x_ = 0; - int y_ = y_dimen_ - 1; - Orientation orientation_ = Orientation::kEast; + PositionAndOrientation position_ = {0, y_dimen_ - 1, Orientation::kEast}; int beeper_count_ = 0; std::vector> world_; bool initialized_ = false; diff --git a/karel/test.cc b/karel/test.cc index d5c8493..a61450f 100644 --- a/karel/test.cc +++ b/karel/test.cc @@ -18,7 +18,9 @@ void KarelProgram() { } int main() { - LoadWorld("worlds/8x1.w"); + LoadWorld("worlds/CollectNewspaperKarel.w"); + // LoadWorld("worlds/8x8.w"); + //LoadWorld("worlds/StoneMasonKarel.w"); KarelProgram(); Finish(); return 0; diff --git a/karel/worlds/StoneMasonKarel.w b/karel/worlds/StoneMasonKarel.w new file mode 100644 index 0000000..6def864 --- /dev/null +++ b/karel/worlds/StoneMasonKarel.w @@ -0,0 +1,39 @@ +Dimension: (13, 13) +Beeper: (1, 4) 1 +Beeper: (1, 5) 1 +Wall: (1, 6) South +Wall: (2, 6) West +Wall: (2, 7) South +Wall: (3, 7) West +Wall: (3, 8) South +Wall: (4, 7) West +Wall: (4, 7) South +Beeper: (5, 1) 1 +Beeper: (5, 2) 1 +Beeper: (5, 4) 1 +Wall: (5, 6) West +Wall: (5, 6) South +Wall: (6, 6) West +Wall: (6, 7) South +Wall: (7, 7) West +Wall: (7, 8) South +Wall: (8, 7) West +Wall: (8, 7) South +Beeper: (9, 3) 1 +Beeper: (9, 5) 1 +Wall: (9, 6) West +Wall: (9, 6) South +Wall: (10, 6) West +Wall: (10, 7) South +Wall: (11, 7) West +Wall: (11, 8) South +Wall: (12, 7) West +Wall: (12, 7) South +Beeper: (13, 1) 1 +Beeper: (13, 3) 1 +Beeper: (13, 5) 1 +Wall: (13, 6) West +Wall: (13, 6) South +BeeperBag: INFINITE +Karel: (1, 1) East +Speed: 0.5 From 6d270d0729fc74ff91812cd1acf9acfed72a8984 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 3 Dec 2020 15:21:00 -0800 Subject: [PATCH 27/48] Complete loading worlds --- karel/karel.cc | 74 +++++++++++++++++++++++++++++++++------------- karel/test.cc | 4 +-- karel/worlds/8x8.w | 4 +++ 3 files changed, 59 insertions(+), 23 deletions(-) diff --git a/karel/karel.cc b/karel/karel.cc index 5559643..ef327c8 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -27,7 +27,7 @@ class Cell { int GetNumBeepers() const { return num_beepers_; } void SetNumBeepers(int beepers) { num_beepers_ = beepers; } bool HasNorthWall() const { return north_wall_; } - bool HasEastWall() const { return south_wall_; } + bool HasEastWall() const { return east_wall_; } bool HasSouthWall() const { return south_wall_; } bool HasWestWall() const { return west_wall_; } void AddWall(Orientation wall_orientation) { @@ -161,23 +161,35 @@ class Robot { PositionAndOrientation wall = ParsePositionAndOrientation(world_file); world_[wall.x][wall.y].AddWall(wall.orientation); } else if (line_prefix == beeper_prefix) { - int x, y, count; - world_file >> open_paren >> x >> comma >> y >> closed_paren >> count; - world_[x][y].SetNumBeepers(count); + PositionAndOrientation beeper = ParsePosition(world_file); + int count; + if (!(world_file >> count)) { + throw std::string("Error reading Beeper count"); + } + world_[beeper.x][beeper.y].SetNumBeepers(count); } else if (line_prefix == bag_prefix) { std::string beepers; - world_file >> beepers; - if (beepers == "INFINITY") { + if (!(world_file >> beepers)) { + throw std::string("Error reading quantity for BeeperBag"); + } + if (beepers == "INFINITY" || beepers == "INFINITE") { beeper_count_ = std::numeric_limits::max(); } else { - beeper_count_ = stoi(beepers); + try { + beeper_count_ = stoi(beepers); + } catch (std::invalid_argument& e) { + throw std::string("Unknown BeeperBag quanity, " + beepers); + } } } else if (line_prefix == karel_prefix) { position_ = ParsePositionAndOrientation(world_file); } else if (line_prefix == speed_prefix) { - world_file >> speed_; + if (!(world_file >> speed_)) { + throw std::string("Error reading Speed"); + } } else { - std::cout << "unexpected token in file: " << line_prefix << std::endl; + std::cout << "unexpected token in file: " << line_prefix << std::endl + << std::flush; break; } } @@ -312,13 +324,22 @@ class Robot { } // Draw the walls. if (cell.HasNorthWall()) { - image_.DrawLine(i * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell, j * pxPerCell, kWallColor, kWallThickness); - } else if (cell.HasSouthWall()) { - image_.DrawLine(i * pxPerCell, (j + 1) * pxPerCell, (i + 1) * pxPerCell, (j + 1) * pxPerCell, kWallColor, kWallThickness); - } else if (cell.HasWestWall()) { - image_.DrawLine(i * pxPerCell, j * pxPerCell, i * pxPerCell, (j + 1) * pxPerCell, kWallColor, kWallThickness); - } else if (cell.HasEastWall()) { - image_.DrawLine((i + 1) * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell, (j + 1) * pxPerCell, kWallColor, kWallThickness); + image_.DrawLine(i * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell - 1, + j * pxPerCell, kWallColor, kWallThickness); + } + if (cell.HasSouthWall()) { + image_.DrawLine(i * pxPerCell, (j + 1) * pxPerCell - 1, + (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, kWallColor, + kWallThickness); + } + if (cell.HasWestWall()) { + image_.DrawLine(i * pxPerCell, j * pxPerCell, i * pxPerCell, + (j + 1) * pxPerCell - 1, kWallColor, kWallThickness); + } + if (cell.HasEastWall()) { + image_.DrawLine((i + 1) * pxPerCell - 1, j * pxPerCell, + (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, kWallColor, + kWallThickness); } } } @@ -406,17 +427,28 @@ class Robot { Show(kLongDuration); } - PositionAndOrientation ParsePositionAndOrientation(std::fstream& file) { - std::string direction; + // Note that the orientation is unused. + PositionAndOrientation ParsePosition(std::fstream& file) { char open_paren, comma, closed_paren; int x, y; - file >> open_paren >> x >> comma >> y >> closed_paren >> direction; + if (!(file >> open_paren >> x >> comma >> y >> closed_paren)) { + throw std::string("Error reading position"); + } + PositionAndOrientation result; // Convert y in the file to y on-screen. In the file, (1, 1) is the // bottom left corner. // In Karel coordinates, that's (0, y_dimen - 1). - PositionAndOrientation result; result.y = y_dimen_ - y; result.x = x - 1; + return result; + } + + PositionAndOrientation ParsePositionAndOrientation(std::fstream& file) { + PositionAndOrientation result = ParsePosition(file); + std::string direction; + if (!(file >> direction)) { + throw std::string("Error reading orientation"); + } // Ensure the first character is lower cased. direction[0] = tolower(direction[0]); if (direction == "north") { @@ -428,7 +460,7 @@ class Robot { } else if (direction == "west") { result.orientation = Orientation::kWest; } else { - throw std::string("Unknown direction " + direction); + throw std::string("Unknown orientation " + direction); } return result; } diff --git a/karel/test.cc b/karel/test.cc index a61450f..59c8f7c 100644 --- a/karel/test.cc +++ b/karel/test.cc @@ -18,9 +18,9 @@ void KarelProgram() { } int main() { - LoadWorld("worlds/CollectNewspaperKarel.w"); + //LoadWorld("worlds/CollectNewspaperKarel.w"); // LoadWorld("worlds/8x8.w"); - //LoadWorld("worlds/StoneMasonKarel.w"); + LoadWorld("worlds/StoneMasonKarel.w"); KarelProgram(); Finish(); return 0; diff --git a/karel/worlds/8x8.w b/karel/worlds/8x8.w index fe36721..4a48dbe 100644 --- a/karel/worlds/8x8.w +++ b/karel/worlds/8x8.w @@ -1,4 +1,8 @@ Dimension: (8, 8) +Wall: (3, 2) west +Wall: (3, 2) south +Wall: (3, 2) north +Wall: (3, 2) east BeeperBag: INFINITY Karel: (1, 1) East Speed: 0.75 From 7b6a7ef8dda7d211d79b9e053e53a1041abcb203 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 3 Dec 2020 15:32:53 -0800 Subject: [PATCH 28/48] Nicer drawing --- karel/karel.cc | 40 +++++++++++++++++++++++----------------- karel/test.cc | 28 ++++++++++++++-------------- 2 files changed, 37 insertions(+), 31 deletions(-) diff --git a/karel/karel.cc b/karel/karel.cc index ef327c8..2fa3d54 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -56,10 +56,10 @@ class Cell { }; // ms for a long animation duration to show Karel. -const int kLongDuration = 500; +const int kLongDuration = 300; // ms for a short animation duration to show Karel. -const int kShortDuration = 50; +const int kShortDuration = 30; const int kDefaultDimen = 10; const int pxPerCell = 50; @@ -67,16 +67,17 @@ const int markSize = 10; const int robotSize = 30; const int beeperSize = 30; const int eyeSize = 4; +const int eyeOffset = 2; const int legLength = 6; const int limbWidth = 5; const int kWallThickness = 3; const graphics::Color eyeColor(50, 50, 50); const graphics::Color karelColor(125, 125, 125); const graphics::Color markColor(150, 150, 255); -const graphics::Color beeperColor(172, 147, 194); +const graphics::Color innerBeeperColor(172, 147, 194); const graphics::Color limbColor(105, 105, 105); const graphics::Color kWhite(255, 255, 255); -const graphics::Color kWallColor(125, 125, 125); +const graphics::Color kWallColor(50, 50, 50); class Robot { public: @@ -309,18 +310,23 @@ class Robot { int y_center = j * pxPerCell + pxPerCell / 2; // Draw the little plus at the center of the cell. image_.DrawLine(x_center - markSize / 2, y_center, - x_center + markSize / 2, y_center, markColor, 3); + x_center + markSize / 2, y_center, markColor, kWallThickness); image_.DrawLine(x_center, y_center - markSize / 2, x_center, - y_center + markSize / 2, markColor, 3); - // trig! - double line_size = sqrt((beeperSize / 2) * (beeperSize / 2) / 2); + y_center + markSize / 2, markColor, kWallThickness); Cell& cell = world_[i][j]; if (cell.GetNumBeepers() > 0) { // Draw the beepers. Beepers are stacked so you can't tell if there's // more than one in a stack. + // trig to get diamonds from thick lines! + double line_size = sqrt((beeperSize / 2) * (beeperSize / 2) / 2); + int inner_beeper_size = beeperSize - kWallThickness * 2; + double inner_line_size = sqrt((inner_beeper_size / 2) * (inner_beeper_size / 2) / 2); image_.DrawLine(x_center - line_size, y_center - line_size, x_center + line_size, y_center + line_size, - beeperColor, beeperSize); + kWallColor, beeperSize); + image_.DrawLine(x_center - inner_line_size, y_center - inner_line_size, + x_center + inner_line_size, y_center + inner_line_size, + innerBeeperColor, inner_beeper_size); } // Draw the walls. if (cell.HasNorthWall()) { @@ -357,9 +363,9 @@ class Robot { robotSize, robotSize, karelColor); switch (position_.orientation) { case Orientation::kNorth: - image_.DrawCircle(pixel_x, pixel_y - robotSize / 2 + eyeSize / 2 + 1, + image_.DrawCircle(pixel_x, pixel_y - robotSize / 2 + eyeSize / 2 + eyeOffset, eyeSize, kWhite); - image_.DrawCircle(pixel_x, pixel_y + 1, eyeSize, kWhite); + image_.DrawCircle(pixel_x, pixel_y + eyeOffset, eyeSize, kWhite); image_.DrawCircle(pixel_x, pixel_y - robotSize / 2 + eyeSize / 2, eyeSize, eyeColor); image_.DrawLine(pixel_x + robotSize / 2, pixel_y - legLength, @@ -370,8 +376,8 @@ class Robot { pixel_y + legLength, limbColor, limbWidth); break; case Orientation::kEast: - image_.DrawCircle(pixel_x - 1, pixel_y, eyeSize, kWhite); - image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2 - 1, pixel_y, + image_.DrawCircle(pixel_x - eyeOffset, pixel_y, eyeSize, kWhite); + image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2 - eyeOffset, pixel_y, eyeSize, kWhite); image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2, pixel_y, eyeSize, eyeColor); @@ -383,9 +389,9 @@ class Robot { pixel_y + robotSize / 2 + legLength, limbColor, limbWidth); break; case Orientation::kSouth: - image_.DrawCircle(pixel_x, pixel_y + robotSize / 2 - eyeSize / 2 - 1, + image_.DrawCircle(pixel_x, pixel_y + robotSize / 2 - eyeSize / 2 - eyeOffset, eyeSize, kWhite); - image_.DrawCircle(pixel_x, pixel_y - 1, eyeSize, kWhite); + image_.DrawCircle(pixel_x, pixel_y - eyeOffset, eyeSize, kWhite); image_.DrawCircle(pixel_x, pixel_y + robotSize / 2 - eyeSize / 2, eyeSize, eyeColor); image_.DrawLine(pixel_x - robotSize / 2, pixel_y - legLength, @@ -396,8 +402,8 @@ class Robot { pixel_y + legLength, limbColor, limbWidth); break; case Orientation::kWest: - image_.DrawCircle(pixel_x + 1, pixel_y, eyeSize, kWhite); - image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2 + 1, pixel_y, + image_.DrawCircle(pixel_x + eyeOffset, pixel_y, eyeSize, kWhite); + image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2 + eyeOffset, pixel_y, eyeSize, kWhite); image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2, pixel_y, eyeSize, eyeColor); diff --git a/karel/test.cc b/karel/test.cc index 59c8f7c..47ec892 100644 --- a/karel/test.cc +++ b/karel/test.cc @@ -1,20 +1,20 @@ #include "karel.h" void KarelProgram() { - // Move(); - // Move(); - // TurnLeft(); - // Move(); - // Move(); - // PickBeeper(); - // Move(); - // PutBeeper(); - // PickBeeper(); - // TurnLeft(); - // Move(); - // PutBeeper(); - // TurnLeft(); - // Move(); + Move(); + Move(); + TurnLeft(); + Move(); + Move(); + PickBeeper(); + Move(); + PutBeeper(); + PickBeeper(); + TurnLeft(); + Move(); + PutBeeper(); + TurnLeft(); + Move(); } int main() { From 4ef96ec9144138f97b3fcfe8e9c55ae47159f595 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 3 Dec 2020 16:32:04 -0800 Subject: [PATCH 29/48] Starting to get if statements --- karel/karel.cc | 186 ++++++++++++++++++++++----- karel/test.cc | 5 +- karel/worlds/CollectNewspaperKarel.w | 2 +- 3 files changed, 160 insertions(+), 33 deletions(-) diff --git a/karel/karel.cc b/karel/karel.cc index 2fa3d54..17def9d 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -7,6 +7,12 @@ #include #include +// TODO: Finish shouldn't showuntilclosed in testing. +// Testing should have a non-graphical way to go. +// Save to file +// document +// phew + namespace karel { enum Orientation { @@ -71,6 +77,8 @@ const int eyeOffset = 2; const int legLength = 6; const int limbWidth = 5; const int kWallThickness = 3; +const int fontSize = 16; +const int margin = 32; const graphics::Color eyeColor(50, 50, 50); const graphics::Color karelColor(125, 125, 125); const graphics::Color markColor(150, 150, 255); @@ -78,6 +86,8 @@ const graphics::Color innerBeeperColor(172, 147, 194); const graphics::Color limbColor(105, 105, 105); const graphics::Color kWhite(255, 255, 255); const graphics::Color kWallColor(50, 50, 50); +const graphics::Color kGridColor(220, 220, 220); +const graphics::Color kErrorColor(200, 0, 50); class Robot { public: @@ -196,7 +206,8 @@ class Robot { } world_file.close(); } - image_.Initialize(x_dimen_ * pxPerCell, y_dimen_ * pxPerCell); + image_.Initialize(x_dimen_ * pxPerCell + margin, + y_dimen_ * pxPerCell + margin); DrawWorld(); DrawRobot(position_.x * pxPerCell + pxPerCell / 2, @@ -205,6 +216,7 @@ class Robot { } void Show(int duration) { + if (finished_) return; image_.ShowForMs(duration / speed_, "Karel's World"); } @@ -212,25 +224,36 @@ class Robot { switch (position_.orientation) { case Orientation::kNorth: if (position_.y == 0) { - // Cannot move any further. draw an error. + Error("Cannot move north"); + } else if (world_[position_.x][position_.y].HasNorthWall() || world_[position_.x][position_.y - 1].HasSouthWall()) { + Error("Cannot move north"); } else { AnimateMove(position_.x, position_.y - 1); } break; case Orientation::kEast: if (position_.x == x_dimen_ - 1) { + Error("Cannot move east"); + } else if (world_[position_.x][position_.y].HasEastWall() || world_[position_.x + 1][position_.y].HasWestWall()) { + Error("Cannot move east"); } else { AnimateMove(position_.x + 1, position_.y); } break; case Orientation::kSouth: if (position_.y == y_dimen_ - 1) { + Error("Cannot move south"); + } else if (world_[position_.x][position_.y].HasSouthWall() || world_[position_.x][position_.y + 1].HasNorthWall()) { + Error("Cannot move south"); } else { AnimateMove(position_.x, position_.y + 1); } break; case Orientation::kWest: if (position_.x == 0) { + Error("Cannot move west"); + } else if (world_[position_.x][position_.y].HasWestWall() || world_[position_.x - 1][position_.y].HasEastWall()) { + Error("Cannot move west"); } else { AnimateMove(position_.x - 1, position_.y); } @@ -260,7 +283,7 @@ class Robot { void PutBeeper() { if (!HasBeepersInBag()) { - // TODO error + Error("No beepers left in bag"); return; } beeper_count_--; @@ -274,7 +297,7 @@ class Robot { void PickBeeper() { int count = world_[position_.x][position_.y].GetNumBeepers(); if (count < 1) { - // TODO error + Error("No beeper to pick up"); return; } world_[position_.x][position_.y].SetNumBeepers(count - 1); @@ -286,23 +309,102 @@ class Robot { bool HasBeepersInBag() { return beeper_count_ > 0; } - void Finish() { image_.ShowUntilClosed("Karel's World"); } + bool FrontIsClear() { + return DirectionIsClear(position_.orientation); + } + + bool FrontIsBlocked() { + return !DirectionIsClear(position_.orientation); + } + + bool LeftIsClear() { + return DirectionIsClear((Orientation) (((int) position_.orientation + 1) % 4)); + } + + bool LeftIsBlocked() { + return !DirectionIsClear((Orientation)(((int) position_.orientation + 1) % 4)); + } + + void Finish() { + if (finished_) return; + finished_ = true; + image_.ShowUntilClosed("Karel's World"); + } private: Robot() {} + // TODO: Take an error code instead of a message so that it's easier to + // test. + void Error(std::string message) { + std::cout << message << std::endl << std::flush; + image_.DrawText(image_.GetWidth() / 2, image_.GetHeight() / 2, message, fontSize, kErrorColor); + Finish(); + } + + bool DirectionIsClear(Orientation orientation) { + switch (orientation) { + case Orientation::kNorth: + if (position_.y == 0) { + return false; + } else if (world_[position_.x][position_.y].HasNorthWall() || world_[position_.x][position_.y - 1].HasSouthWall()) { + return false; + } else { + return true; + } + break; + case Orientation::kEast: + if (position_.x == x_dimen_ - 1) { + return false; + } else if (world_[position_.x][position_.y].HasEastWall() || world_[position_.x + 1][position_.y].HasWestWall()) { + return false; + } else { + return true; + } + break; + case Orientation::kSouth: + if (position_.y == y_dimen_ - 1) { + return false; + } else if (world_[position_.x][position_.y].HasSouthWall() || world_[position_.x][position_.y + 1].HasNorthWall()) { + return false; + } else { + return true; + } + break; + case Orientation::kWest: + if (position_.x == 0) { + return false; + } else if (world_[position_.x][position_.y].HasWestWall() || world_[position_.x - 1][position_.y].HasEastWall()) { + return false; + } else { + return true; + } + break; + } + } + void DrawWorld() { image_.DrawRectangle(0, 0, x_dimen_ * pxPerCell, y_dimen_ * pxPerCell, kWhite); - for (int i = 0; i < y_dimen_; i++) { - // Draw horizontal lines. - image_.DrawLine(0, i * pxPerCell, pxPerCell * x_dimen_ - 1, i * pxPerCell, - graphics::Color(200, 200, 200)); + for (int i = 0; i <= y_dimen_; i++) { + // Draw horizontal lines and indexes. + int x = pxPerCell * x_dimen_ - 1; + int y = i * pxPerCell; + image_.DrawLine(0, y, x, y, kGridColor, kWallThickness); + if (i < y_dimen_) { + image_.DrawText(x + fontSize / 2, y + (pxPerCell - fontSize) / 2, + std::to_string(i + 1), fontSize, kWallColor); + } } - for (int i = 0; i < x_dimen_; i++) { - // Draw vertical lines. - image_.DrawLine(i * pxPerCell, 0, i * pxPerCell, pxPerCell * y_dimen_ - 1, - graphics::Color(200, 200, 200)); + for (int i = 0; i <= x_dimen_; i++) { + // Draw vertical lines and indexes. + int x = i * pxPerCell; + int y = pxPerCell * y_dimen_ - 1; + image_.DrawLine(x, 0, x, y, kGridColor, kWallThickness); + if (i < x_dimen_) { + image_.DrawText(x + (pxPerCell - fontSize) / 2, y + fontSize / 2, + std::to_string(i + 1), fontSize, kWallColor); + } } for (int i = 0; i < x_dimen_; i++) { for (int j = 0; j < y_dimen_; j++) { @@ -310,7 +412,8 @@ class Robot { int y_center = j * pxPerCell + pxPerCell / 2; // Draw the little plus at the center of the cell. image_.DrawLine(x_center - markSize / 2, y_center, - x_center + markSize / 2, y_center, markColor, kWallThickness); + x_center + markSize / 2, y_center, markColor, + kWallThickness); image_.DrawLine(x_center, y_center - markSize / 2, x_center, y_center + markSize / 2, markColor, kWallThickness); Cell& cell = world_[i][j]; @@ -320,13 +423,15 @@ class Robot { // trig to get diamonds from thick lines! double line_size = sqrt((beeperSize / 2) * (beeperSize / 2) / 2); int inner_beeper_size = beeperSize - kWallThickness * 2; - double inner_line_size = sqrt((inner_beeper_size / 2) * (inner_beeper_size / 2) / 2); + double inner_line_size = + sqrt((inner_beeper_size / 2) * (inner_beeper_size / 2) / 2); image_.DrawLine(x_center - line_size, y_center - line_size, x_center + line_size, y_center + line_size, kWallColor, beeperSize); - image_.DrawLine(x_center - inner_line_size, y_center - inner_line_size, - x_center + inner_line_size, y_center + inner_line_size, - innerBeeperColor, inner_beeper_size); + image_.DrawLine( + x_center - inner_line_size, y_center - inner_line_size, + x_center + inner_line_size, y_center + inner_line_size, + innerBeeperColor, inner_beeper_size); } // Draw the walls. if (cell.HasNorthWall()) { @@ -335,8 +440,8 @@ class Robot { } if (cell.HasSouthWall()) { image_.DrawLine(i * pxPerCell, (j + 1) * pxPerCell - 1, - (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, kWallColor, - kWallThickness); + (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, + kWallColor, kWallThickness); } if (cell.HasWestWall()) { image_.DrawLine(i * pxPerCell, j * pxPerCell, i * pxPerCell, @@ -344,8 +449,8 @@ class Robot { } if (cell.HasEastWall()) { image_.DrawLine((i + 1) * pxPerCell - 1, j * pxPerCell, - (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, kWallColor, - kWallThickness); + (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, + kWallColor, kWallThickness); } } } @@ -363,7 +468,8 @@ class Robot { robotSize, robotSize, karelColor); switch (position_.orientation) { case Orientation::kNorth: - image_.DrawCircle(pixel_x, pixel_y - robotSize / 2 + eyeSize / 2 + eyeOffset, + image_.DrawCircle(pixel_x, + pixel_y - robotSize / 2 + eyeSize / 2 + eyeOffset, eyeSize, kWhite); image_.DrawCircle(pixel_x, pixel_y + eyeOffset, eyeSize, kWhite); image_.DrawCircle(pixel_x, pixel_y - robotSize / 2 + eyeSize / 2, @@ -377,8 +483,8 @@ class Robot { break; case Orientation::kEast: image_.DrawCircle(pixel_x - eyeOffset, pixel_y, eyeSize, kWhite); - image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2 - eyeOffset, pixel_y, - eyeSize, kWhite); + image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2 - eyeOffset, + pixel_y, eyeSize, kWhite); image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2, pixel_y, eyeSize, eyeColor); image_.DrawLine( @@ -389,7 +495,8 @@ class Robot { pixel_y + robotSize / 2 + legLength, limbColor, limbWidth); break; case Orientation::kSouth: - image_.DrawCircle(pixel_x, pixel_y + robotSize / 2 - eyeSize / 2 - eyeOffset, + image_.DrawCircle(pixel_x, + pixel_y + robotSize / 2 - eyeSize / 2 - eyeOffset, eyeSize, kWhite); image_.DrawCircle(pixel_x, pixel_y - eyeOffset, eyeSize, kWhite); image_.DrawCircle(pixel_x, pixel_y + robotSize / 2 - eyeSize / 2, @@ -403,8 +510,8 @@ class Robot { break; case Orientation::kWest: image_.DrawCircle(pixel_x + eyeOffset, pixel_y, eyeSize, kWhite); - image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2 + eyeOffset, pixel_y, - eyeSize, kWhite); + image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2 + eyeOffset, + pixel_y, eyeSize, kWhite); image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2, pixel_y, eyeSize, eyeColor); image_.DrawLine( @@ -433,7 +540,9 @@ class Robot { Show(kLongDuration); } - // Note that the orientation is unused. + // Note that the orientation is not populated. This is just a helper to + // get the x and y position from a file with the next items in the stream + // being (x, y) PositionAndOrientation ParsePosition(std::fstream& file) { char open_paren, comma, closed_paren; int x, y; @@ -449,6 +558,9 @@ class Robot { return result; } + // Helper to get orientation of the form, `(x, y) direction`, for example, + // (3, 7) East + // Direction may be lower-case or have an uppercase first letter. PositionAndOrientation ParsePositionAndOrientation(std::fstream& file) { PositionAndOrientation result = ParsePosition(file); std::string direction; @@ -471,13 +583,27 @@ class Robot { return result; } + // Underlying image. graphics::Image image_; + + // Grid dimensions. int x_dimen_ = kDefaultDimen; int y_dimen_ = kDefaultDimen; + + // Karel's position and orientation. PositionAndOrientation position_ = {0, y_dimen_ - 1, Orientation::kEast}; + + // Karel's beeper bag. int beeper_count_ = 0; + + // The cells in the world. std::vector> world_; + + // Whether the world has been initialized. It will not re-initialize. bool initialized_ = false; + bool finished_ = false; + + // Speed multiplier for animation. double speed_ = 1.0; }; @@ -514,7 +640,7 @@ void Finish() { bool FrontIsClear() { karel::Robot& r = karel::Robot::GetInstance(); - return false; + return r.FrontIsClear(); } bool HasBeepersInBag() { diff --git a/karel/test.cc b/karel/test.cc index 47ec892..b2cf412 100644 --- a/karel/test.cc +++ b/karel/test.cc @@ -1,6 +1,7 @@ #include "karel.h" void KarelProgram() { + Move(); Move(); Move(); TurnLeft(); @@ -18,9 +19,9 @@ void KarelProgram() { } int main() { - //LoadWorld("worlds/CollectNewspaperKarel.w"); + LoadWorld("worlds/CollectNewspaperKarel.w"); // LoadWorld("worlds/8x8.w"); - LoadWorld("worlds/StoneMasonKarel.w"); + // LoadWorld("worlds/StoneMasonKarel.w"); KarelProgram(); Finish(); return 0; diff --git a/karel/worlds/CollectNewspaperKarel.w b/karel/worlds/CollectNewspaperKarel.w index ddc1e1d..98805d7 100644 --- a/karel/worlds/CollectNewspaperKarel.w +++ b/karel/worlds/CollectNewspaperKarel.w @@ -12,4 +12,4 @@ Wall: (6, 2) west Wall: (6, 4) west Beeper: (6, 3) 1 Karel: (3, 4) east -Speed: 0.00 +Speed: 1.00 From 4a66069b0358c4a9b842e6ce5c5ce0c4b3c9265e Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 3 Dec 2020 16:46:07 -0800 Subject: [PATCH 30/48] Needs lots of testing but all functions exist now --- karel/karel.cc | 180 ++++++++++++++++++++++++++++++++++++++++++------- karel/karel.h | 39 +++++++++-- 2 files changed, 187 insertions(+), 32 deletions(-) diff --git a/karel/karel.cc b/karel/karel.cc index 17def9d..f74d9ad 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -7,6 +7,8 @@ #include #include +#include "../graphics/image.h" + // TODO: Finish shouldn't showuntilclosed in testing. // Testing should have a non-graphical way to go. // Save to file @@ -28,6 +30,8 @@ struct PositionAndOrientation { Orientation orientation = Orientation::kNorth; }; +// Class representing a cell in Karel's world, including a count of beepers +// and whether or not there are walls. class Cell { public: int GetNumBeepers() const { return num_beepers_; } @@ -92,18 +96,13 @@ const graphics::Color kErrorColor(200, 0, 50); class Robot { public: // Get the Robot singleton. - - static karel::Robot& PrivateGetInstance() { - static Robot instance; - return instance; - } - static karel::Robot& GetInstance() { karel::Robot& instance = PrivateGetInstance(); instance.Initialize(""); return instance; } + // Get the Robot singleton and intialize it from a file. static karel::Robot& InitializeInstance(std::string filename) { karel::Robot& instance = PrivateGetInstance(); instance.Initialize(filename); @@ -221,11 +220,13 @@ class Robot { } void Move() { + if (finished_) return; switch (position_.orientation) { case Orientation::kNorth: if (position_.y == 0) { Error("Cannot move north"); - } else if (world_[position_.x][position_.y].HasNorthWall() || world_[position_.x][position_.y - 1].HasSouthWall()) { + } else if (world_[position_.x][position_.y].HasNorthWall() || + world_[position_.x][position_.y - 1].HasSouthWall()) { Error("Cannot move north"); } else { AnimateMove(position_.x, position_.y - 1); @@ -234,7 +235,8 @@ class Robot { case Orientation::kEast: if (position_.x == x_dimen_ - 1) { Error("Cannot move east"); - } else if (world_[position_.x][position_.y].HasEastWall() || world_[position_.x + 1][position_.y].HasWestWall()) { + } else if (world_[position_.x][position_.y].HasEastWall() || + world_[position_.x + 1][position_.y].HasWestWall()) { Error("Cannot move east"); } else { AnimateMove(position_.x + 1, position_.y); @@ -243,7 +245,8 @@ class Robot { case Orientation::kSouth: if (position_.y == y_dimen_ - 1) { Error("Cannot move south"); - } else if (world_[position_.x][position_.y].HasSouthWall() || world_[position_.x][position_.y + 1].HasNorthWall()) { + } else if (world_[position_.x][position_.y].HasSouthWall() || + world_[position_.x][position_.y + 1].HasNorthWall()) { Error("Cannot move south"); } else { AnimateMove(position_.x, position_.y + 1); @@ -252,7 +255,8 @@ class Robot { case Orientation::kWest: if (position_.x == 0) { Error("Cannot move west"); - } else if (world_[position_.x][position_.y].HasWestWall() || world_[position_.x - 1][position_.y].HasEastWall()) { + } else if (world_[position_.x][position_.y].HasWestWall() || + world_[position_.x - 1][position_.y].HasEastWall()) { Error("Cannot move west"); } else { AnimateMove(position_.x - 1, position_.y); @@ -262,6 +266,7 @@ class Robot { } void TurnLeft() { + if (finished_) return; switch (position_.orientation) { case Orientation::kNorth: position_.orientation = Orientation::kWest; @@ -282,6 +287,7 @@ class Robot { } void PutBeeper() { + if (finished_) return; if (!HasBeepersInBag()) { Error("No beepers left in bag"); return; @@ -295,12 +301,13 @@ class Robot { } void PickBeeper() { - int count = world_[position_.x][position_.y].GetNumBeepers(); - if (count < 1) { + if (finished_) return; + if (!BeepersPresent()) { Error("No beeper to pick up"); return; } - world_[position_.x][position_.y].SetNumBeepers(count - 1); + world_[position_.x][position_.y].SetNumBeepers( + world_[position_.x][position_.y].GetNumBeepers() - 1); beeper_count_++; DrawWorld(); DrawRobot(); @@ -309,22 +316,54 @@ class Robot { bool HasBeepersInBag() { return beeper_count_ > 0; } - bool FrontIsClear() { - return DirectionIsClear(position_.orientation); - } + bool NoBeepersInBag() { return !HasBeepersInBag(); } - bool FrontIsBlocked() { - return !DirectionIsClear(position_.orientation); + bool BeepersPresent() { + return world_[position_.x][position_.y].GetNumBeepers() > 0; } + bool NoBeepersPresent() { return !BeepersPresent(); } + + bool FrontIsClear() { return DirectionIsClear(position_.orientation); } + + bool FrontIsBlocked() { return !DirectionIsClear(position_.orientation); } + bool LeftIsClear() { - return DirectionIsClear((Orientation) (((int) position_.orientation + 1) % 4)); + return DirectionIsClear( + (Orientation)(((int)position_.orientation + 1) % 4)); } bool LeftIsBlocked() { - return !DirectionIsClear((Orientation)(((int) position_.orientation + 1) % 4)); + return !DirectionIsClear( + (Orientation)(((int)position_.orientation + 1) % 4)); } + bool RightIsClear() { + return DirectionIsClear( + (Orientation)(((int)position_.orientation - 1) % 4)); + } + + bool RightIsBlocked() { + return !DirectionIsClear( + (Orientation)(((int)position_.orientation - 1) % 4)); + } + + bool FacingNorth() { return position_.orientation == Orientation::kNorth; } + + bool NotFacingNorth() { return !FacingNorth(); } + + bool FacingEast() { return position_.orientation == Orientation::kEast; } + + bool NotFacingEast() { return !FacingEast(); } + + bool FacingSouth() { return position_.orientation == Orientation::kSouth; } + + bool NotFacingSouth() { return !FacingSouth(); } + + bool FacingWest() { return position_.orientation == Orientation::kWest; } + + bool NotFacingWest() { return !FacingWest(); } + void Finish() { if (finished_) return; finished_ = true; @@ -334,11 +373,18 @@ class Robot { private: Robot() {} + // Singleton. + static karel::Robot& PrivateGetInstance() { + static Robot instance; + return instance; + } + // TODO: Take an error code instead of a message so that it's easier to // test. void Error(std::string message) { std::cout << message << std::endl << std::flush; - image_.DrawText(image_.GetWidth() / 2, image_.GetHeight() / 2, message, fontSize, kErrorColor); + image_.DrawText(image_.GetWidth() / 2, image_.GetHeight() / 2, message, + fontSize, kErrorColor); Finish(); } @@ -347,7 +393,8 @@ class Robot { case Orientation::kNorth: if (position_.y == 0) { return false; - } else if (world_[position_.x][position_.y].HasNorthWall() || world_[position_.x][position_.y - 1].HasSouthWall()) { + } else if (world_[position_.x][position_.y].HasNorthWall() || + world_[position_.x][position_.y - 1].HasSouthWall()) { return false; } else { return true; @@ -356,7 +403,8 @@ class Robot { case Orientation::kEast: if (position_.x == x_dimen_ - 1) { return false; - } else if (world_[position_.x][position_.y].HasEastWall() || world_[position_.x + 1][position_.y].HasWestWall()) { + } else if (world_[position_.x][position_.y].HasEastWall() || + world_[position_.x + 1][position_.y].HasWestWall()) { return false; } else { return true; @@ -365,7 +413,8 @@ class Robot { case Orientation::kSouth: if (position_.y == y_dimen_ - 1) { return false; - } else if (world_[position_.x][position_.y].HasSouthWall() || world_[position_.x][position_.y + 1].HasNorthWall()) { + } else if (world_[position_.x][position_.y].HasSouthWall() || + world_[position_.x][position_.y + 1].HasNorthWall()) { return false; } else { return true; @@ -374,7 +423,8 @@ class Robot { case Orientation::kWest: if (position_.x == 0) { return false; - } else if (world_[position_.x][position_.y].HasWestWall() || world_[position_.x - 1][position_.y].HasEastWall()) { + } else if (world_[position_.x][position_.y].HasWestWall() || + world_[position_.x - 1][position_.y].HasEastWall()) { return false; } else { return true; @@ -643,7 +693,87 @@ bool FrontIsClear() { return r.FrontIsClear(); } +bool FrontIsBlocked() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.FrontIsBlocked(); +} + +bool LeftIsClear() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.LeftIsClear(); +} + +bool LeftIsBlocked() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.LeftIsBlocked(); +} + +bool RightIsClear() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.RightIsClear(); +} + +bool RightIsBlocked() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.RightIsBlocked(); +} + bool HasBeepersInBag() { karel::Robot& r = karel::Robot::GetInstance(); return r.HasBeepersInBag(); } + +bool NoBeepersInBag() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.NoBeepersInBag(); +} + +bool BeepersPresent() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.BeepersPresent(); +} + +bool NoBeepersPresent() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.NoBeepersPresent(); +} + +bool FacingNorth() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.FacingNorth(); +} + +bool NotFacingNorth() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.NotFacingNorth(); +} + +bool FacingEast() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.FacingEast(); +} + +bool NotFacingEast() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.NotFacingEast(); +} + +bool FacingSouth() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.FacingSouth(); +} + +bool NotFacingSouth() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.NotFacingSouth(); +} + +bool FacingWest() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.FacingWest(); +} + +bool NotFacingWest() { + karel::Robot& r = karel::Robot::GetInstance(); + return r.NotFacingWest(); +} diff --git a/karel/karel.h b/karel/karel.h index fa96ee6..d0ac118 100644 --- a/karel/karel.h +++ b/karel/karel.h @@ -1,5 +1,4 @@ -#include "../graphics/image.h" -#include "../graphics/image_event.h" +#include void Move(); @@ -11,14 +10,40 @@ void PickBeeper(); bool FrontIsClear(); +bool FrontIsBlocked(); + +bool LeftIsClear(); + +bool LeftIsBlocked(); + +bool RightIsClear(); + +bool RightIsBlocked(); + bool HasBeepersInBag(); -// Set-up for professors? -// https://csis.pace.edu/~bergin/KarelJava2ed/KJRdocs/kareltherobot/World.html -void SetDimensions(int width, int height); +bool NoBeepersInBag(); -void PlaceBeeperAt(int x, int y); +bool BeepersPresent(); -void Finish(); +bool NoBeepersPresent(); + +bool FacingNorth(); + +bool NotFacingNorth(); +bool FacingEast(); + +bool NotFacingEast(); + +bool FacingSouth(); + +bool NotFacingSouth(); + +bool FacingWest(); + +bool NotFacingWest(); + +// For the instructor void LoadWorld(std::string filename); +void Finish(); From 10d6710813db1fedccb311656897b48f61d15e07 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Fri, 4 Dec 2020 14:31:13 -0800 Subject: [PATCH 31/48] Better error handling and refactoring --- karel/karel.cc | 666 +--------------------------- karel/src/cell.h | 45 ++ karel/src/error.h | 20 + karel/src/orientation.h | 21 + karel/src/robot.cc | 666 ++++++++++++++++++++++++++++ karel/src/robot.h | 195 ++++++++ karel/test.cc | 6 +- karel/worlds/2x1.w | 4 + karel/worlds/MidpointFindingKarel.w | 4 + karel/worlds/SampleQuad2.w | 35 ++ 10 files changed, 999 insertions(+), 663 deletions(-) create mode 100644 karel/src/cell.h create mode 100644 karel/src/error.h create mode 100644 karel/src/orientation.h create mode 100644 karel/src/robot.cc create mode 100644 karel/src/robot.h create mode 100644 karel/worlds/2x1.w create mode 100644 karel/worlds/MidpointFindingKarel.w create mode 100644 karel/worlds/SampleQuad2.w diff --git a/karel/karel.cc b/karel/karel.cc index f74d9ad..d149ad3 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -1,666 +1,14 @@ #include "karel.h" -#include - -#include -#include -#include -#include - -#include "../graphics/image.h" - -// TODO: Finish shouldn't showuntilclosed in testing. -// Testing should have a non-graphical way to go. -// Save to file -// document -// phew - -namespace karel { - -enum Orientation { - kNorth = 1, - kEast = 2, - kSouth = 3, - kWest = 4, -}; - -struct PositionAndOrientation { - int x = 0; - int y = 0; - Orientation orientation = Orientation::kNorth; -}; - -// Class representing a cell in Karel's world, including a count of beepers -// and whether or not there are walls. -class Cell { - public: - int GetNumBeepers() const { return num_beepers_; } - void SetNumBeepers(int beepers) { num_beepers_ = beepers; } - bool HasNorthWall() const { return north_wall_; } - bool HasEastWall() const { return east_wall_; } - bool HasSouthWall() const { return south_wall_; } - bool HasWestWall() const { return west_wall_; } - void AddWall(Orientation wall_orientation) { - switch (wall_orientation) { - case kNorth: - north_wall_ = true; - break; - case kEast: - east_wall_ = true; - break; - case kSouth: - south_wall_ = true; - break; - case kWest: - west_wall_ = true; - break; - } - } - - private: - bool num_beepers_ = 0; - bool north_wall_ = false; - bool east_wall_ = false; - bool south_wall_ = false; - bool west_wall_ = false; -}; - -// ms for a long animation duration to show Karel. -const int kLongDuration = 300; - -// ms for a short animation duration to show Karel. -const int kShortDuration = 30; - -const int kDefaultDimen = 10; -const int pxPerCell = 50; -const int markSize = 10; -const int robotSize = 30; -const int beeperSize = 30; -const int eyeSize = 4; -const int eyeOffset = 2; -const int legLength = 6; -const int limbWidth = 5; -const int kWallThickness = 3; -const int fontSize = 16; -const int margin = 32; -const graphics::Color eyeColor(50, 50, 50); -const graphics::Color karelColor(125, 125, 125); -const graphics::Color markColor(150, 150, 255); -const graphics::Color innerBeeperColor(172, 147, 194); -const graphics::Color limbColor(105, 105, 105); -const graphics::Color kWhite(255, 255, 255); -const graphics::Color kWallColor(50, 50, 50); -const graphics::Color kGridColor(220, 220, 220); -const graphics::Color kErrorColor(200, 0, 50); - -class Robot { - public: - // Get the Robot singleton. - static karel::Robot& GetInstance() { - karel::Robot& instance = PrivateGetInstance(); - instance.Initialize(""); - return instance; - } - - // Get the Robot singleton and intialize it from a file. - static karel::Robot& InitializeInstance(std::string filename) { - karel::Robot& instance = PrivateGetInstance(); - instance.Initialize(filename); - return instance; - } - - // Disallow copy and assign. - Robot(const Robot&) = delete; - karel::Robot& operator=(const Robot&) = delete; - - void Initialize(std::string filename) { - // Ensure only intitialized once. - if (initialized_) return; - initialized_ = true; - - if (!filename.size()) { - // No file. Default 10x10 blank world with no walls and no beepers. - x_dimen_ = kDefaultDimen; - y_dimen_ = kDefaultDimen; - for (int i = 0; i < x_dimen_; i++) { - world_.push_back(std::vector()); - for (int j = 0; j < y_dimen_; j++) { - world_[i].push_back(Cell()); - } - } - // Nearly infinite beepers. - beeper_count_ = std::numeric_limits::max(); - position_.x = 0; - position_.y = y_dimen_ - 1; - } else { - std::fstream world_file; - world_file.open(filename); - if (!world_file.is_open()) { - // TODO: Replace throwables with better error codes? - throw std::string("Error opening file " + filename); - } - std::string line; - - const std::string dimension_prefix = "Dimension:"; - const std::string beeper_prefix = "Beeper:"; - const std::string wall_prefix = "Wall:"; - const std::string bag_prefix = "BeeperBag:"; - const std::string karel_prefix = "Karel:"; - const std::string speed_prefix = "Speed:"; - - std::string line_prefix; - char open_paren, comma, closed_paren; - if (!(world_file >> line_prefix >> open_paren >> x_dimen_ >> comma >> - y_dimen_ >> closed_paren)) { - throw std::string("Could not find Dimension in first line"); - } - if (line_prefix != dimension_prefix) { - throw std::string("Could not find Dimension in first line"); - } - for (int i = 0; i < x_dimen_; i++) { - world_.push_back(std::vector()); - for (int j = 0; j < y_dimen_; j++) { - world_[i].push_back(Cell()); - } - } - - // Read the rest of the file to get beepers and walls. - // TODO: May need better error checking. - while (world_file >> line_prefix) { - if (line_prefix == wall_prefix) { - PositionAndOrientation wall = ParsePositionAndOrientation(world_file); - world_[wall.x][wall.y].AddWall(wall.orientation); - } else if (line_prefix == beeper_prefix) { - PositionAndOrientation beeper = ParsePosition(world_file); - int count; - if (!(world_file >> count)) { - throw std::string("Error reading Beeper count"); - } - world_[beeper.x][beeper.y].SetNumBeepers(count); - } else if (line_prefix == bag_prefix) { - std::string beepers; - if (!(world_file >> beepers)) { - throw std::string("Error reading quantity for BeeperBag"); - } - if (beepers == "INFINITY" || beepers == "INFINITE") { - beeper_count_ = std::numeric_limits::max(); - } else { - try { - beeper_count_ = stoi(beepers); - } catch (std::invalid_argument& e) { - throw std::string("Unknown BeeperBag quanity, " + beepers); - } - } - } else if (line_prefix == karel_prefix) { - position_ = ParsePositionAndOrientation(world_file); - } else if (line_prefix == speed_prefix) { - if (!(world_file >> speed_)) { - throw std::string("Error reading Speed"); - } - } else { - std::cout << "unexpected token in file: " << line_prefix << std::endl - << std::flush; - break; - } - } - world_file.close(); - } - image_.Initialize(x_dimen_ * pxPerCell + margin, - y_dimen_ * pxPerCell + margin); - - DrawWorld(); - DrawRobot(position_.x * pxPerCell + pxPerCell / 2, - position_.y * pxPerCell + pxPerCell / 2); - Show(kLongDuration); - } - - void Show(int duration) { - if (finished_) return; - image_.ShowForMs(duration / speed_, "Karel's World"); - } - - void Move() { - if (finished_) return; - switch (position_.orientation) { - case Orientation::kNorth: - if (position_.y == 0) { - Error("Cannot move north"); - } else if (world_[position_.x][position_.y].HasNorthWall() || - world_[position_.x][position_.y - 1].HasSouthWall()) { - Error("Cannot move north"); - } else { - AnimateMove(position_.x, position_.y - 1); - } - break; - case Orientation::kEast: - if (position_.x == x_dimen_ - 1) { - Error("Cannot move east"); - } else if (world_[position_.x][position_.y].HasEastWall() || - world_[position_.x + 1][position_.y].HasWestWall()) { - Error("Cannot move east"); - } else { - AnimateMove(position_.x + 1, position_.y); - } - break; - case Orientation::kSouth: - if (position_.y == y_dimen_ - 1) { - Error("Cannot move south"); - } else if (world_[position_.x][position_.y].HasSouthWall() || - world_[position_.x][position_.y + 1].HasNorthWall()) { - Error("Cannot move south"); - } else { - AnimateMove(position_.x, position_.y + 1); - } - break; - case Orientation::kWest: - if (position_.x == 0) { - Error("Cannot move west"); - } else if (world_[position_.x][position_.y].HasWestWall() || - world_[position_.x - 1][position_.y].HasEastWall()) { - Error("Cannot move west"); - } else { - AnimateMove(position_.x - 1, position_.y); - } - break; - } - } - - void TurnLeft() { - if (finished_) return; - switch (position_.orientation) { - case Orientation::kNorth: - position_.orientation = Orientation::kWest; - break; - case Orientation::kEast: - position_.orientation = Orientation::kNorth; - break; - case Orientation::kSouth: - position_.orientation = Orientation::kEast; - break; - case Orientation::kWest: - position_.orientation = Orientation::kSouth; - break; - } - DrawWorld(); - DrawRobot(); - Show(kLongDuration); - } - - void PutBeeper() { - if (finished_) return; - if (!HasBeepersInBag()) { - Error("No beepers left in bag"); - return; - } - beeper_count_--; - world_[position_.x][position_.y].SetNumBeepers( - world_[position_.x][position_.y].GetNumBeepers() + 1); - DrawWorld(); - DrawRobot(); - Show(kLongDuration); - } - - void PickBeeper() { - if (finished_) return; - if (!BeepersPresent()) { - Error("No beeper to pick up"); - return; - } - world_[position_.x][position_.y].SetNumBeepers( - world_[position_.x][position_.y].GetNumBeepers() - 1); - beeper_count_++; - DrawWorld(); - DrawRobot(); - Show(kLongDuration); - } - - bool HasBeepersInBag() { return beeper_count_ > 0; } - - bool NoBeepersInBag() { return !HasBeepersInBag(); } - - bool BeepersPresent() { - return world_[position_.x][position_.y].GetNumBeepers() > 0; - } - - bool NoBeepersPresent() { return !BeepersPresent(); } - - bool FrontIsClear() { return DirectionIsClear(position_.orientation); } - - bool FrontIsBlocked() { return !DirectionIsClear(position_.orientation); } - - bool LeftIsClear() { - return DirectionIsClear( - (Orientation)(((int)position_.orientation + 1) % 4)); - } - - bool LeftIsBlocked() { - return !DirectionIsClear( - (Orientation)(((int)position_.orientation + 1) % 4)); - } - - bool RightIsClear() { - return DirectionIsClear( - (Orientation)(((int)position_.orientation - 1) % 4)); - } - - bool RightIsBlocked() { - return !DirectionIsClear( - (Orientation)(((int)position_.orientation - 1) % 4)); - } - - bool FacingNorth() { return position_.orientation == Orientation::kNorth; } - - bool NotFacingNorth() { return !FacingNorth(); } - - bool FacingEast() { return position_.orientation == Orientation::kEast; } - - bool NotFacingEast() { return !FacingEast(); } - - bool FacingSouth() { return position_.orientation == Orientation::kSouth; } - - bool NotFacingSouth() { return !FacingSouth(); } - - bool FacingWest() { return position_.orientation == Orientation::kWest; } - - bool NotFacingWest() { return !FacingWest(); } - - void Finish() { - if (finished_) return; - finished_ = true; - image_.ShowUntilClosed("Karel's World"); - } - - private: - Robot() {} - - // Singleton. - static karel::Robot& PrivateGetInstance() { - static Robot instance; - return instance; - } - - // TODO: Take an error code instead of a message so that it's easier to - // test. - void Error(std::string message) { - std::cout << message << std::endl << std::flush; - image_.DrawText(image_.GetWidth() / 2, image_.GetHeight() / 2, message, - fontSize, kErrorColor); - Finish(); - } - - bool DirectionIsClear(Orientation orientation) { - switch (orientation) { - case Orientation::kNorth: - if (position_.y == 0) { - return false; - } else if (world_[position_.x][position_.y].HasNorthWall() || - world_[position_.x][position_.y - 1].HasSouthWall()) { - return false; - } else { - return true; - } - break; - case Orientation::kEast: - if (position_.x == x_dimen_ - 1) { - return false; - } else if (world_[position_.x][position_.y].HasEastWall() || - world_[position_.x + 1][position_.y].HasWestWall()) { - return false; - } else { - return true; - } - break; - case Orientation::kSouth: - if (position_.y == y_dimen_ - 1) { - return false; - } else if (world_[position_.x][position_.y].HasSouthWall() || - world_[position_.x][position_.y + 1].HasNorthWall()) { - return false; - } else { - return true; - } - break; - case Orientation::kWest: - if (position_.x == 0) { - return false; - } else if (world_[position_.x][position_.y].HasWestWall() || - world_[position_.x - 1][position_.y].HasEastWall()) { - return false; - } else { - return true; - } - break; - } - } - - void DrawWorld() { - image_.DrawRectangle(0, 0, x_dimen_ * pxPerCell, y_dimen_ * pxPerCell, - kWhite); - for (int i = 0; i <= y_dimen_; i++) { - // Draw horizontal lines and indexes. - int x = pxPerCell * x_dimen_ - 1; - int y = i * pxPerCell; - image_.DrawLine(0, y, x, y, kGridColor, kWallThickness); - if (i < y_dimen_) { - image_.DrawText(x + fontSize / 2, y + (pxPerCell - fontSize) / 2, - std::to_string(i + 1), fontSize, kWallColor); - } - } - for (int i = 0; i <= x_dimen_; i++) { - // Draw vertical lines and indexes. - int x = i * pxPerCell; - int y = pxPerCell * y_dimen_ - 1; - image_.DrawLine(x, 0, x, y, kGridColor, kWallThickness); - if (i < x_dimen_) { - image_.DrawText(x + (pxPerCell - fontSize) / 2, y + fontSize / 2, - std::to_string(i + 1), fontSize, kWallColor); - } - } - for (int i = 0; i < x_dimen_; i++) { - for (int j = 0; j < y_dimen_; j++) { - int x_center = i * pxPerCell + pxPerCell / 2; - int y_center = j * pxPerCell + pxPerCell / 2; - // Draw the little plus at the center of the cell. - image_.DrawLine(x_center - markSize / 2, y_center, - x_center + markSize / 2, y_center, markColor, - kWallThickness); - image_.DrawLine(x_center, y_center - markSize / 2, x_center, - y_center + markSize / 2, markColor, kWallThickness); - Cell& cell = world_[i][j]; - if (cell.GetNumBeepers() > 0) { - // Draw the beepers. Beepers are stacked so you can't tell if there's - // more than one in a stack. - // trig to get diamonds from thick lines! - double line_size = sqrt((beeperSize / 2) * (beeperSize / 2) / 2); - int inner_beeper_size = beeperSize - kWallThickness * 2; - double inner_line_size = - sqrt((inner_beeper_size / 2) * (inner_beeper_size / 2) / 2); - image_.DrawLine(x_center - line_size, y_center - line_size, - x_center + line_size, y_center + line_size, - kWallColor, beeperSize); - image_.DrawLine( - x_center - inner_line_size, y_center - inner_line_size, - x_center + inner_line_size, y_center + inner_line_size, - innerBeeperColor, inner_beeper_size); - } - // Draw the walls. - if (cell.HasNorthWall()) { - image_.DrawLine(i * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell - 1, - j * pxPerCell, kWallColor, kWallThickness); - } - if (cell.HasSouthWall()) { - image_.DrawLine(i * pxPerCell, (j + 1) * pxPerCell - 1, - (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, - kWallColor, kWallThickness); - } - if (cell.HasWestWall()) { - image_.DrawLine(i * pxPerCell, j * pxPerCell, i * pxPerCell, - (j + 1) * pxPerCell - 1, kWallColor, kWallThickness); - } - if (cell.HasEastWall()) { - image_.DrawLine((i + 1) * pxPerCell - 1, j * pxPerCell, - (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, - kWallColor, kWallThickness); - } - } - } - } - - void DrawRobot() { - // Center in the cell. - DrawRobot(position_.x * pxPerCell + pxPerCell / 2, - position_.y * pxPerCell + pxPerCell / 2); - } - - // pixel_x and pixel_y are the center of the cell in pixels. - void DrawRobot(int pixel_x, int pixel_y) { - image_.DrawRectangle(pixel_x - robotSize / 2, pixel_y - robotSize / 2, - robotSize, robotSize, karelColor); - switch (position_.orientation) { - case Orientation::kNorth: - image_.DrawCircle(pixel_x, - pixel_y - robotSize / 2 + eyeSize / 2 + eyeOffset, - eyeSize, kWhite); - image_.DrawCircle(pixel_x, pixel_y + eyeOffset, eyeSize, kWhite); - image_.DrawCircle(pixel_x, pixel_y - robotSize / 2 + eyeSize / 2, - eyeSize, eyeColor); - image_.DrawLine(pixel_x + robotSize / 2, pixel_y - legLength, - pixel_x + robotSize / 2 + legLength, - pixel_y - legLength, limbColor, limbWidth); - image_.DrawLine(pixel_x + robotSize / 2, pixel_y + legLength, - pixel_x + robotSize / 2 + legLength, - pixel_y + legLength, limbColor, limbWidth); - break; - case Orientation::kEast: - image_.DrawCircle(pixel_x - eyeOffset, pixel_y, eyeSize, kWhite); - image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2 - eyeOffset, - pixel_y, eyeSize, kWhite); - image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2, pixel_y, - eyeSize, eyeColor); - image_.DrawLine( - pixel_x - legLength, pixel_y + robotSize / 2, pixel_x - legLength, - pixel_y + robotSize / 2 + legLength, limbColor, limbWidth); - image_.DrawLine( - pixel_x + legLength, pixel_y + robotSize / 2, pixel_x + legLength, - pixel_y + robotSize / 2 + legLength, limbColor, limbWidth); - break; - case Orientation::kSouth: - image_.DrawCircle(pixel_x, - pixel_y + robotSize / 2 - eyeSize / 2 - eyeOffset, - eyeSize, kWhite); - image_.DrawCircle(pixel_x, pixel_y - eyeOffset, eyeSize, kWhite); - image_.DrawCircle(pixel_x, pixel_y + robotSize / 2 - eyeSize / 2, - eyeSize, eyeColor); - image_.DrawLine(pixel_x - robotSize / 2, pixel_y - legLength, - pixel_x - robotSize / 2 - legLength, - pixel_y - legLength, limbColor, limbWidth); - image_.DrawLine(pixel_x - robotSize / 2, pixel_y + legLength, - pixel_x - robotSize / 2 - legLength, - pixel_y + legLength, limbColor, limbWidth); - break; - case Orientation::kWest: - image_.DrawCircle(pixel_x + eyeOffset, pixel_y, eyeSize, kWhite); - image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2 + eyeOffset, - pixel_y, eyeSize, kWhite); - image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2, pixel_y, - eyeSize, eyeColor); - image_.DrawLine( - pixel_x - legLength, pixel_y - robotSize / 2, pixel_x - legLength, - pixel_y - robotSize / 2 - legLength, limbColor, limbWidth); - image_.DrawLine( - pixel_x + legLength, pixel_y - robotSize / 2, pixel_x + legLength, - pixel_y - robotSize / 2 - legLength, limbColor, limbWidth); - break; - } - image_.DrawCircle(pixel_x, pixel_y, eyeSize, eyeColor); - } - - void AnimateMove(int next_x, int next_y) { - int steps = 10; - for (int i = 1; i <= steps; i++) { - DrawWorld(); - double fraction = i * 1.0 / steps; - double x = position_.x * (1 - fraction) + next_x * fraction; - double y = position_.y * (1 - fraction) + next_y * fraction; - DrawRobot(x * pxPerCell + pxPerCell / 2, y * pxPerCell + pxPerCell / 2); - Show(kShortDuration); - } - position_.x = next_x; - position_.y = next_y; - Show(kLongDuration); - } - - // Note that the orientation is not populated. This is just a helper to - // get the x and y position from a file with the next items in the stream - // being (x, y) - PositionAndOrientation ParsePosition(std::fstream& file) { - char open_paren, comma, closed_paren; - int x, y; - if (!(file >> open_paren >> x >> comma >> y >> closed_paren)) { - throw std::string("Error reading position"); - } - PositionAndOrientation result; - // Convert y in the file to y on-screen. In the file, (1, 1) is the - // bottom left corner. - // In Karel coordinates, that's (0, y_dimen - 1). - result.y = y_dimen_ - y; - result.x = x - 1; - return result; - } - - // Helper to get orientation of the form, `(x, y) direction`, for example, - // (3, 7) East - // Direction may be lower-case or have an uppercase first letter. - PositionAndOrientation ParsePositionAndOrientation(std::fstream& file) { - PositionAndOrientation result = ParsePosition(file); - std::string direction; - if (!(file >> direction)) { - throw std::string("Error reading orientation"); - } - // Ensure the first character is lower cased. - direction[0] = tolower(direction[0]); - if (direction == "north") { - result.orientation = Orientation::kNorth; - } else if (direction == "east") { - result.orientation = Orientation::kEast; - } else if (direction == "south") { - result.orientation = Orientation::kSouth; - } else if (direction == "west") { - result.orientation = Orientation::kWest; - } else { - throw std::string("Unknown orientation " + direction); - } - return result; - } - - // Underlying image. - graphics::Image image_; - - // Grid dimensions. - int x_dimen_ = kDefaultDimen; - int y_dimen_ = kDefaultDimen; - - // Karel's position and orientation. - PositionAndOrientation position_ = {0, y_dimen_ - 1, Orientation::kEast}; - - // Karel's beeper bag. - int beeper_count_ = 0; - - // The cells in the world. - std::vector> world_; - - // Whether the world has been initialized. It will not re-initialize. - bool initialized_ = false; - bool finished_ = false; - - // Speed multiplier for animation. - double speed_ = 1.0; -}; - -} // namespace karel +#include "src/robot.h" void LoadWorld(std::string filename) { - karel::Robot& r = karel::Robot::InitializeInstance(filename); + try { + karel::Robot& r = karel::Robot::InitializeInstance(filename); + } catch (std::string error) { + std::cout << "Error loading world file " << filename << ": \n" << error << std::endl; + exit(1); + } } void Move() { diff --git a/karel/src/cell.h b/karel/src/cell.h new file mode 100644 index 0000000..95f0b4b --- /dev/null +++ b/karel/src/cell.h @@ -0,0 +1,45 @@ +#include "orientation.h" + +#ifndef CELL_H +#define CELL_H + +namespace karel { + +// Class representing a cell in Karel's world, including a count of beepers +// and whether or not there are walls. +class Cell { + public: + int GetNumBeepers() const { return num_beepers_; } + void SetNumBeepers(int beepers) { num_beepers_ = beepers; } + bool HasNorthWall() const { return north_wall_; } + bool HasEastWall() const { return east_wall_; } + bool HasSouthWall() const { return south_wall_; } + bool HasWestWall() const { return west_wall_; } + void AddWall(Orientation wall_orientation) { + switch (wall_orientation) { + case kNorth: + north_wall_ = true; + break; + case kEast: + east_wall_ = true; + break; + case kSouth: + south_wall_ = true; + break; + case kWest: + west_wall_ = true; + break; + } + } + + private: + bool num_beepers_ = 0; + bool north_wall_ = false; + bool east_wall_ = false; + bool south_wall_ = false; + bool west_wall_ = false; +}; + +} // namespace karel + +#endif // CELL_H diff --git a/karel/src/error.h b/karel/src/error.h new file mode 100644 index 0000000..0432812 --- /dev/null +++ b/karel/src/error.h @@ -0,0 +1,20 @@ +#include "orientation.h" + +#ifndef ERROR_H +#define ERROR_H + +namespace karel { + +enum RobotError { + kNoError = 0, + kCannotMoveNorth, + kCannotMoveEast, + kCannotMoveSouth, + kCannotMoveWest, + kCannotPutBeeper, + kCannotPickBeeper, +}; + +} // namespace karel + +#endif diff --git a/karel/src/orientation.h b/karel/src/orientation.h new file mode 100644 index 0000000..979f263 --- /dev/null +++ b/karel/src/orientation.h @@ -0,0 +1,21 @@ +#ifndef ORIENTATION_H +#define ORIENTATION_H + +namespace karel { + +enum Orientation { + kNorth = 1, + kEast = 2, + kSouth = 3, + kWest = 4, +}; + +struct PositionAndOrientation { + int x = 0; + int y = 0; + Orientation orientation = Orientation::kNorth; +}; + +} // namespace karel + +#endif // ORIENTATION_H diff --git a/karel/src/robot.cc b/karel/src/robot.cc new file mode 100644 index 0000000..5412f09 --- /dev/null +++ b/karel/src/robot.cc @@ -0,0 +1,666 @@ +#include "robot.h" + +#include + +#include +#include +#include +#include + +#include "../../graphics/image.h" +#include "cell.h" +#include "error.h" +#include "orientation.h" + +// TODO: Finish shouldn't showuntilclosed in testing. +// Testing should have a non-graphical way to go. +// Save to file +// document +// phew + +namespace karel { + +namespace { + +// Default width and height in cells. +const int kDefaultDimen = 10; + +// Milliseconds for a long animation duration to show Karel, used after each +// Karel action. +const int kLongDuration = 300; + +// Milliseconds for a short animation duration to show Karel, used when Karel +// is moving. +const int kShortDuration = 30; + +// Number of steps to take in the animation moving karel between cells. +const int kNumAnimationSteps = 10; + +// Pixel constants. +const int pxPerCell = 50; +const int markSize = 10; +const int robotSize = 30; +const int beeperSize = 30; +const int eyeSize = 4; +const int eyeOffset = 2; +const int legLength = 6; +const int limbWidth = 5; +const int kWallThickness = 3; +const int fontSize = 16; +const int kErrorFontSize = 20; +const int margin = 32; + +// Color constants. +const graphics::Color eyeColor(50, 50, 50); +const graphics::Color karelColor(125, 125, 125); +const graphics::Color markColor(150, 150, 255); +const graphics::Color innerBeeperColor(172, 147, 194); +const graphics::Color limbColor(105, 105, 105); +const graphics::Color kWhite(255, 255, 255); +const graphics::Color kWallColor(50, 50, 50); +const graphics::Color kGridColor(220, 220, 220); +const graphics::Color kErrorColor(173, 0, 35); + +} // namespace + +Robot::Robot() {} + +// Singleton. Static. +karel::Robot& Robot::PrivateGetInstance() { + static Robot instance; + return instance; +} + +// static. +karel::Robot& Robot::GetInstance() { + karel::Robot& instance = PrivateGetInstance(); + instance.Initialize("", /* enable graphics */ true); + return instance; +} + +// Get the Robot singleton and intialize it from a file. +// static. +karel::Robot& Robot::InitializeInstance(std::string filename, + bool enable_graphics) { + karel::Robot& instance = PrivateGetInstance(); + instance.Initialize(filename, enable_graphics); + return instance; +} + +void Robot::Initialize(std::string filename, bool enable_graphics) { + // Ensure only intitialized once. + if (initialized_) return; + initialized_ = true; + + enable_animations_ = enable_graphics; + + if (!filename.size()) { + // No file. Default 10x10 blank world with no walls and no beepers. + x_dimen_ = kDefaultDimen; + y_dimen_ = kDefaultDimen; + for (int i = 0; i < x_dimen_; i++) { + world_.push_back(std::vector()); + for (int j = 0; j < y_dimen_; j++) { + world_[i].push_back(Cell()); + } + } + // Nearly infinite beepers. + beeper_count_ = std::numeric_limits::max(); + PositionAndOrientation position_ = {0, y_dimen_ - 1, Orientation::kEast}; + } else { + std::fstream world_file; + world_file.open(filename); + if (!world_file.is_open()) { + // TODO: Replace throwables with better error codes? + throw std::string("Error opening file"); + } + std::string line; + + const std::string dimension_prefix = "Dimension:"; + const std::string beeper_prefix = "Beeper:"; + const std::string wall_prefix = "Wall:"; + const std::string bag_prefix = "BeeperBag:"; + const std::string karel_prefix = "Karel:"; + const std::string speed_prefix = "Speed:"; + + std::string line_prefix; + char open_paren, comma, closed_paren; + if (!(world_file >> line_prefix >> open_paren >> x_dimen_ >> comma >> + y_dimen_ >> closed_paren)) { + throw std::string("Could not find Dimension in first line"); + } + if (line_prefix != dimension_prefix) { + throw std::string("Could not find Dimension in first line"); + } + if (x_dimen_ < 2 || y_dimen_ < 1) { + throw std::string( + "Cannot load a world less than 2 cells wide or less than 1 cell " + "tall"); + } + for (int i = 0; i < x_dimen_; i++) { + world_.push_back(std::vector()); + for (int j = 0; j < y_dimen_; j++) { + world_[i].push_back(Cell()); + } + } + + // Read the rest of the file to get beepers and walls. + // TODO: May need better error checking. + while (world_file >> line_prefix) { + if (line_prefix == wall_prefix) { + PositionAndOrientation wall = ParsePositionAndOrientation(world_file); + world_[wall.x][wall.y].AddWall(wall.orientation); + } else if (line_prefix == beeper_prefix) { + PositionAndOrientation beeper = ParsePosition(world_file); + int count; + if (!(world_file >> count)) { + throw std::string("Error reading Beeper count"); + } + world_[beeper.x][beeper.y].SetNumBeepers(count); + } else if (line_prefix == bag_prefix) { + std::string beepers; + if (!(world_file >> beepers)) { + throw std::string("Error reading quantity for BeeperBag"); + } + if (beepers == "INFINITY" || beepers == "INFINITE") { + beeper_count_ = std::numeric_limits::max(); + } else { + try { + beeper_count_ = stoi(beepers); + } catch (std::invalid_argument& e) { + throw std::string("Unknown BeeperBag quanity, " + beepers); + } + } + } else if (line_prefix == karel_prefix) { + position_ = ParsePositionAndOrientation(world_file); + } else if (line_prefix == speed_prefix) { + if (!(world_file >> speed_)) { + throw std::string("Error reading Speed"); + } + } else { + std::cout << "unexpected token in file: " << line_prefix << std::endl + << std::flush; + break; + } + } + world_file.close(); + } + image_.Initialize(x_dimen_ * pxPerCell + margin, + y_dimen_ * pxPerCell + margin); + + DrawWorld(); + DrawRobot(position_.x * pxPerCell + pxPerCell / 2, + position_.y * pxPerCell + pxPerCell / 2); + Show(kLongDuration); +} + +void Robot::Move() { + if (finished_) return; + switch (position_.orientation) { + case Orientation::kNorth: + if (position_.y == 0) { + Error(RobotError::kCannotMoveNorth); + } else if (world_[position_.x][position_.y].HasNorthWall() || + world_[position_.x][position_.y - 1].HasSouthWall()) { + Error(RobotError::kCannotMoveNorth); + } else { + AnimateMove(position_.x, position_.y - 1); + } + break; + case Orientation::kEast: + if (position_.x == x_dimen_ - 1) { + Error(RobotError::kCannotMoveEast); + } else if (world_[position_.x][position_.y].HasEastWall() || + world_[position_.x + 1][position_.y].HasWestWall()) { + Error(RobotError::kCannotMoveEast); + } else { + AnimateMove(position_.x + 1, position_.y); + } + break; + case Orientation::kSouth: + if (position_.y == y_dimen_ - 1) { + Error(RobotError::kCannotMoveSouth); + } else if (world_[position_.x][position_.y].HasSouthWall() || + world_[position_.x][position_.y + 1].HasNorthWall()) { + Error(RobotError::kCannotMoveSouth); + } else { + AnimateMove(position_.x, position_.y + 1); + } + break; + case Orientation::kWest: + if (position_.x == 0) { + Error(RobotError::kCannotMoveWest); + } else if (world_[position_.x][position_.y].HasWestWall() || + world_[position_.x - 1][position_.y].HasEastWall()) { + Error(RobotError::kCannotMoveWest); + } else { + AnimateMove(position_.x - 1, position_.y); + } + break; + } +} + +void Robot::TurnLeft() { + if (finished_) return; + switch (position_.orientation) { + case Orientation::kNorth: + position_.orientation = Orientation::kWest; + break; + case Orientation::kEast: + position_.orientation = Orientation::kNorth; + break; + case Orientation::kSouth: + position_.orientation = Orientation::kEast; + break; + case Orientation::kWest: + position_.orientation = Orientation::kSouth; + break; + } + DrawWorld(); + DrawRobot(); + Show(kLongDuration); +} + +void Robot::PutBeeper() { + if (finished_) return; + if (!HasBeepersInBag()) { + Error(RobotError::kCannotPutBeeper); + return; + } + beeper_count_--; + Cell& cell = world_[position_.x][position_.y]; + cell.SetNumBeepers(cell.GetNumBeepers() + 1); + DrawWorld(); + DrawRobot(); + Show(kLongDuration); +} + +void Robot::PickBeeper() { + if (finished_) return; + if (!BeepersPresent()) { + Error(RobotError::kCannotPickBeeper); + return; + } + Cell& cell = world_[position_.x][position_.y]; + cell.SetNumBeepers(cell.GetNumBeepers() - 1); + beeper_count_++; + DrawWorld(); + DrawRobot(); + Show(kLongDuration); +} + +bool Robot::HasBeepersInBag() const { return beeper_count_ > 0; } + +bool Robot::NoBeepersInBag() const { return !HasBeepersInBag(); } + +bool Robot::BeepersPresent() const { + return world_[position_.x][position_.y].GetNumBeepers() > 0; +} + +bool Robot::NoBeepersPresent() const { return !BeepersPresent(); } + +bool Robot::FrontIsClear() const { + return DirectionIsClear(position_.orientation); +} + +bool Robot::FrontIsBlocked() const { + return !DirectionIsClear(position_.orientation); +} + +bool Robot::LeftIsClear() const { + return DirectionIsClear((Orientation)(((int)position_.orientation + 1) % 4)); +} + +bool Robot::LeftIsBlocked() const { + return !DirectionIsClear((Orientation)(((int)position_.orientation + 1) % 4)); +} + +bool Robot::RightIsClear() const { + return DirectionIsClear((Orientation)(((int)position_.orientation - 1) % 4)); +} + +bool Robot::RightIsBlocked() const { + return !DirectionIsClear((Orientation)(((int)position_.orientation - 1) % 4)); +} + +bool Robot::FacingNorth() const { + return position_.orientation == Orientation::kNorth; +} + +bool Robot::NotFacingNorth() const { return !FacingNorth(); } + +bool Robot::FacingEast() const { + return position_.orientation == Orientation::kEast; +} + +bool Robot::NotFacingEast() const { return !FacingEast(); } + +bool Robot::FacingSouth() const { + return position_.orientation == Orientation::kSouth; +} + +bool Robot::NotFacingSouth() const { return !FacingSouth(); } + +bool Robot::FacingWest() const { + return position_.orientation == Orientation::kWest; +} + +bool Robot::NotFacingWest() const { return !FacingWest(); } + +void Robot::Finish() { + if (finished_) return; + finished_ = true; + if (enable_animations_) { + image_.ShowUntilClosed("Karel's World"); + } +} + +Orientation Robot::GetOrientation() const { return position_.orientation; } + +int Robot::GetXPosition() const { return position_.x + 1; } + +int Robot::GetYPosition() const { return y_dimen_ - position_.y; } + +int Robot::GetNumBeepersInBag() const { return beeper_count_; } + +const Cell& Robot::GetCell(int x, int y) const { + return world_[x - 1][y_dimen_ - y]; +} + +RobotError Robot::GetError() const { return error_; } + +void Robot::Show(int duration) { + if (finished_) return; + if (enable_animations_) { + image_.ShowForMs(duration / speed_, "Karel's World"); + } +} + +void Robot::Error(RobotError error) { + error_ = error; + std::string message = "Error: "; + switch (error) { + case kNoError: + return; + case kCannotMoveNorth: + message += " Cannot move north"; + break; + case kCannotMoveEast: + message += " Cannot move east"; + break; + case kCannotMoveSouth: + message += " Cannot move south"; + break; + case kCannotMoveWest: + message += " Cannot move west"; + break; + case kCannotPickBeeper: + message += "Cannot pick beeper\n(No beepers present)"; + break; + case kCannotPutBeeper: + message += " Cannot put beeper\n(No beepers in bag)"; + break; + } + std::cout << message << std::endl << std::flush; + int approx_width = 25 * kErrorFontSize / 4; + int text_x = std::max(2, image_.GetWidth() / 2 - approx_width); + int text_y = image_.GetHeight() / 2 - kErrorFontSize / 2; + image_.DrawText(text_x - 2, text_y - 2, message, + kErrorFontSize, kWhite); + image_.DrawText(text_x + 2, text_y - 2, message, + kErrorFontSize, kWhite); + image_.DrawText(text_x - 2, text_y + 2, message, + kErrorFontSize, kWhite); + image_.DrawText(text_x + 2, text_y + 2, message, + kErrorFontSize, kWhite); + image_.DrawText(text_x, text_y, message, kErrorFontSize, + kErrorColor); + Finish(); +} + +bool Robot::DirectionIsClear(Orientation orientation) const { + switch (orientation) { + case Orientation::kNorth: + if (position_.y == 0) { + return false; + } else if (world_[position_.x][position_.y].HasNorthWall() || + world_[position_.x][position_.y - 1].HasSouthWall()) { + return false; + } else { + return true; + } + break; + case Orientation::kEast: + if (position_.x == x_dimen_ - 1) { + return false; + } else if (world_[position_.x][position_.y].HasEastWall() || + world_[position_.x + 1][position_.y].HasWestWall()) { + return false; + } else { + return true; + } + break; + case Orientation::kSouth: + if (position_.y == y_dimen_ - 1) { + return false; + } else if (world_[position_.x][position_.y].HasSouthWall() || + world_[position_.x][position_.y + 1].HasNorthWall()) { + return false; + } else { + return true; + } + break; + case Orientation::kWest: + if (position_.x == 0) { + return false; + } else if (world_[position_.x][position_.y].HasWestWall() || + world_[position_.x - 1][position_.y].HasEastWall()) { + return false; + } else { + return true; + } + break; + } +} + +void Robot::DrawWorld() { + image_.DrawRectangle(0, 0, x_dimen_ * pxPerCell, y_dimen_ * pxPerCell, + kWhite); + for (int i = 0; i <= y_dimen_; i++) { + // Draw horizontal lines and indexes. + int x = pxPerCell * x_dimen_ - 1; + int y = i * pxPerCell; + image_.DrawLine(0, y, x, y, kGridColor, kWallThickness); + if (i < y_dimen_) { + image_.DrawText(x + fontSize / 2, y + (pxPerCell - fontSize) / 2, + std::to_string(i + 1), fontSize, kWallColor); + } + } + for (int i = 0; i <= x_dimen_; i++) { + // Draw vertical lines and indexes. + int x = i * pxPerCell; + int y = pxPerCell * y_dimen_ - 1; + image_.DrawLine(x, 0, x, y, kGridColor, kWallThickness); + if (i < x_dimen_) { + image_.DrawText(x + (pxPerCell - fontSize) / 2, y + fontSize / 2, + std::to_string(i + 1), fontSize, kWallColor); + } + } + for (int i = 0; i < x_dimen_; i++) { + for (int j = 0; j < y_dimen_; j++) { + int x_center = i * pxPerCell + pxPerCell / 2; + int y_center = j * pxPerCell + pxPerCell / 2; + // Draw the little plus at the center of the cell. + image_.DrawLine(x_center - markSize / 2, y_center, + x_center + markSize / 2, y_center, markColor, + kWallThickness); + image_.DrawLine(x_center, y_center - markSize / 2, x_center, + y_center + markSize / 2, markColor, kWallThickness); + Cell& cell = world_[i][j]; + if (cell.GetNumBeepers() > 0) { + // Draw the beepers. Beepers are stacked so you can't tell if there's + // more than one in a stack. + // trig to get diamonds from thick lines! + double line_size = sqrt((beeperSize / 2) * (beeperSize / 2) / 2); + int inner_beeper_size = beeperSize - kWallThickness * 2; + double inner_line_size = + sqrt((inner_beeper_size / 2) * (inner_beeper_size / 2) / 2); + image_.DrawLine(x_center - line_size, y_center - line_size, + x_center + line_size, y_center + line_size, kWallColor, + beeperSize); + image_.DrawLine(x_center - inner_line_size, y_center - inner_line_size, + x_center + inner_line_size, y_center + inner_line_size, + innerBeeperColor, inner_beeper_size); + } + // Draw the walls. + if (cell.HasNorthWall()) { + image_.DrawLine(i * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell - 1, + j * pxPerCell, kWallColor, kWallThickness); + } + if (cell.HasSouthWall()) { + image_.DrawLine(i * pxPerCell, (j + 1) * pxPerCell - 1, + (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, + kWallColor, kWallThickness); + } + if (cell.HasWestWall()) { + image_.DrawLine(i * pxPerCell, j * pxPerCell, i * pxPerCell, + (j + 1) * pxPerCell - 1, kWallColor, kWallThickness); + } + if (cell.HasEastWall()) { + image_.DrawLine((i + 1) * pxPerCell - 1, j * pxPerCell, + (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, + kWallColor, kWallThickness); + } + } + } +} + +void Robot::DrawRobot() { + // Center in the cell. + DrawRobot(position_.x * pxPerCell + pxPerCell / 2, + position_.y * pxPerCell + pxPerCell / 2); +} + +// pixel_x and pixel_y are the center of the cell in pixels. +void Robot::DrawRobot(int pixel_x, int pixel_y) { + image_.DrawRectangle(pixel_x - robotSize / 2, pixel_y - robotSize / 2, + robotSize, robotSize, karelColor); + switch (position_.orientation) { + case Orientation::kNorth: + image_.DrawCircle(pixel_x, + pixel_y - robotSize / 2 + eyeSize / 2 + eyeOffset, + eyeSize, kWhite); + image_.DrawCircle(pixel_x, pixel_y + eyeOffset, eyeSize, kWhite); + image_.DrawCircle(pixel_x, pixel_y - robotSize / 2 + eyeSize / 2, eyeSize, + eyeColor); + image_.DrawLine(pixel_x + robotSize / 2, pixel_y - legLength, + pixel_x + robotSize / 2 + legLength, pixel_y - legLength, + limbColor, limbWidth); + image_.DrawLine(pixel_x + robotSize / 2, pixel_y + legLength, + pixel_x + robotSize / 2 + legLength, pixel_y + legLength, + limbColor, limbWidth); + break; + case Orientation::kEast: + image_.DrawCircle(pixel_x - eyeOffset, pixel_y, eyeSize, kWhite); + image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2 - eyeOffset, + pixel_y, eyeSize, kWhite); + image_.DrawCircle(pixel_x + robotSize / 2 - eyeSize / 2, pixel_y, eyeSize, + eyeColor); + image_.DrawLine(pixel_x - legLength, pixel_y + robotSize / 2, + pixel_x - legLength, pixel_y + robotSize / 2 + legLength, + limbColor, limbWidth); + image_.DrawLine(pixel_x + legLength, pixel_y + robotSize / 2, + pixel_x + legLength, pixel_y + robotSize / 2 + legLength, + limbColor, limbWidth); + break; + case Orientation::kSouth: + image_.DrawCircle(pixel_x, + pixel_y + robotSize / 2 - eyeSize / 2 - eyeOffset, + eyeSize, kWhite); + image_.DrawCircle(pixel_x, pixel_y - eyeOffset, eyeSize, kWhite); + image_.DrawCircle(pixel_x, pixel_y + robotSize / 2 - eyeSize / 2, eyeSize, + eyeColor); + image_.DrawLine(pixel_x - robotSize / 2, pixel_y - legLength, + pixel_x - robotSize / 2 - legLength, pixel_y - legLength, + limbColor, limbWidth); + image_.DrawLine(pixel_x - robotSize / 2, pixel_y + legLength, + pixel_x - robotSize / 2 - legLength, pixel_y + legLength, + limbColor, limbWidth); + break; + case Orientation::kWest: + image_.DrawCircle(pixel_x + eyeOffset, pixel_y, eyeSize, kWhite); + image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2 + eyeOffset, + pixel_y, eyeSize, kWhite); + image_.DrawCircle(pixel_x - robotSize / 2 + eyeSize / 2, pixel_y, eyeSize, + eyeColor); + image_.DrawLine(pixel_x - legLength, pixel_y - robotSize / 2, + pixel_x - legLength, pixel_y - robotSize / 2 - legLength, + limbColor, limbWidth); + image_.DrawLine(pixel_x + legLength, pixel_y - robotSize / 2, + pixel_x + legLength, pixel_y - robotSize / 2 - legLength, + limbColor, limbWidth); + break; + } + image_.DrawCircle(pixel_x, pixel_y, eyeSize, eyeColor); +} + +void Robot::AnimateMove(int next_x, int next_y) { + int steps = enable_animations_ ? kNumAnimationSteps : 0; + for (int i = 1; i <= steps; i++) { + DrawWorld(); + double fraction = i * 1.0 / steps; + double x = position_.x * (1 - fraction) + next_x * fraction; + double y = position_.y * (1 - fraction) + next_y * fraction; + DrawRobot(x * pxPerCell + pxPerCell / 2, y * pxPerCell + pxPerCell / 2); + Show(kShortDuration); + } + position_.x = next_x; + position_.y = next_y; + Show(kLongDuration); +} + +// Note that the orientation is not populated. This is just a helper to +// get the x and y position from a file with the next items in the stream +// being (x, y) +PositionAndOrientation Robot::ParsePosition(std::fstream& file) const { + char open_paren, comma, closed_paren; + int x, y; + if (!(file >> open_paren >> x >> comma >> y >> closed_paren)) { + throw std::string("Error reading position"); + } + PositionAndOrientation result; + // Convert y in the file to y on-screen. In the file, (1, 1) is the + // bottom left corner. + // In Karel coordinates, that's (0, y_dimen - 1). + result.y = y_dimen_ - y; + result.x = x - 1; + return result; +} + +// Helper to get orientation of the form, `(x, y) direction`, for example, +// (3, 7) East +// Direction may be lower-case or have an uppercase first letter. +PositionAndOrientation Robot::ParsePositionAndOrientation( + std::fstream& file) const { + PositionAndOrientation result = ParsePosition(file); + std::string direction; + if (!(file >> direction)) { + throw std::string("Error reading orientation"); + } + // Ensure the first character is lower cased. + direction[0] = tolower(direction[0]); + if (direction == "north") { + result.orientation = Orientation::kNorth; + } else if (direction == "east") { + result.orientation = Orientation::kEast; + } else if (direction == "south") { + result.orientation = Orientation::kSouth; + } else if (direction == "west") { + result.orientation = Orientation::kWest; + } else { + throw std::string("Unknown orientation " + direction); + } + return result; +} + +} // namespace karel diff --git a/karel/src/robot.h b/karel/src/robot.h new file mode 100644 index 0000000..48780ff --- /dev/null +++ b/karel/src/robot.h @@ -0,0 +1,195 @@ +#include + +#include +#include +#include +#include + +#include "../../graphics/image.h" +#include "cell.h" +#include "orientation.h" +#include "error.h" + +#ifndef ROBOT_H +#define ROBOT_H + +namespace karel { + +class Robot { + public: + /** + * Get the Robot singleton. Initializes it with default values if it isn't + * already initialized. + */ + static karel::Robot& GetInstance(); + + /** + * Get the Robot singleton and intialize it from a file. + */ + static karel::Robot& InitializeInstance(std::string filename, + bool enable_graphics = true); + + // Disallow copy and assign. + Robot(const Robot&) = delete; + karel::Robot& operator=(const Robot&) = delete; + + /** + * Move Karel forward one step. Results in an error if Karel cannot move + * forward. + */ + void Move(); + + void TurnLeft(); + + void PutBeeper(); + + void PickBeeper(); + + bool HasBeepersInBag() const; + + bool NoBeepersInBag() const; + + bool BeepersPresent() const; + + bool NoBeepersPresent() const; + + bool FrontIsClear() const; + + bool FrontIsBlocked() const; + + bool LeftIsClear() const; + + bool LeftIsBlocked() const; + + bool RightIsClear() const; + + bool RightIsBlocked() const; + + bool FacingNorth() const; + + bool NotFacingNorth() const; + + bool FacingEast() const; + + bool NotFacingEast() const; + + bool FacingSouth() const; + + bool NotFacingSouth() const; + + bool FacingWest() const; + + bool NotFacingWest() const; + + void Finish(); + + // Methods for tests. Tests should access robot with GetInstance + // and may inspect its state with these methods. + + /** + * Gets the orientation that Karel is facing. May be simpler to use this in + * tests than Facing* functions. + */ + Orientation GetOrientation() const; + + /** + * Gets the X position with respect to the grid coordinates. 1 is the + * left-most cell. + */ + int GetXPosition() const; + + /** + * Gets the Y position with respect to the grid coordinates. 1 is the bottom + * cell. + */ + int GetYPosition() const; + + /** + * Gets the total number of beepers in Karel's bag. + */ + int GetNumBeepersInBag() const; + + /** + * Gets the current grid. Takes in grid coordinates, where (1, 1) is the + * bottom left cell. + */ + const Cell& GetCell(int x, int y) const; + + /** + * Returns the robot's current error state or kNoError if it has none. + */ + RobotError GetError() const; + + private: + // Private constructor: Robot can only be accessed with GetInstance. + Robot(); + + // Singleton. + static karel::Robot& PrivateGetInstance(); + + /** + * Loads a Karel world from a file, or if |filename| is the empty string loads + * a default world with Karel in a default position. + */ + void Initialize(std::string filename, bool enable_graphics); + + void Show(int duration); + + void Error(RobotError error); + + bool DirectionIsClear(Orientation orientation) const; + + void DrawWorld(); + + void DrawRobot(); + + /** + * Draws Karel at a location on the image. |pixel_x| and |pixel_y| are the + * center of the cell in pixels. + */ + void DrawRobot(int pixel_x, int pixel_y); + + void AnimateMove(int next_x, int next_y); + + // Note that the orientation is not populated. This is just a helper to + // get the x and y position from a file with the next items in the stream + // being (x, y) + PositionAndOrientation ParsePosition(std::fstream& file) const; + + // Helper to get orientation of the form, `(x, y) direction`, for example, + // (3, 7) East + // Direction may be lower-case or have an uppercase first letter. + PositionAndOrientation ParsePositionAndOrientation(std::fstream& file) const; + + // Whether animations are enabled. They should probably be disabled for + // testing. + bool enable_animations_ = true; + + // Underlying image. + graphics::Image image_; + + // Grid dimensions. + int x_dimen_; + int y_dimen_; + + // Karel's position and orientation. + PositionAndOrientation position_; + + // Karel's beeper bag. + int beeper_count_ = 0; + + // The cells in the world. + std::vector> world_; + + // Whether the world has been initialized. It will not re-initialize. + bool initialized_ = false; + bool finished_ = false; + RobotError error_ = RobotError::kNoError; + + // Speed multiplier for animation. + double speed_ = 1.0; +}; + +} // namespace karel + +#endif // ROBOT_H diff --git a/karel/test.cc b/karel/test.cc index b2cf412..ab5bbc6 100644 --- a/karel/test.cc +++ b/karel/test.cc @@ -1,13 +1,13 @@ #include "karel.h" void KarelProgram() { + TurnLeft(); Move(); + PickBeeper(); Move(); Move(); - TurnLeft(); Move(); Move(); - PickBeeper(); Move(); PutBeeper(); PickBeeper(); @@ -20,8 +20,6 @@ void KarelProgram() { int main() { LoadWorld("worlds/CollectNewspaperKarel.w"); - // LoadWorld("worlds/8x8.w"); - // LoadWorld("worlds/StoneMasonKarel.w"); KarelProgram(); Finish(); return 0; diff --git a/karel/worlds/2x1.w b/karel/worlds/2x1.w new file mode 100644 index 0000000..7a09778 --- /dev/null +++ b/karel/worlds/2x1.w @@ -0,0 +1,4 @@ +Dimension: (2, 1) +Karel: (1, 1) east +BeeperBag: INFINITE +Speed: 0.75 diff --git a/karel/worlds/MidpointFindingKarel.w b/karel/worlds/MidpointFindingKarel.w new file mode 100644 index 0000000..914d87e --- /dev/null +++ b/karel/worlds/MidpointFindingKarel.w @@ -0,0 +1,4 @@ +Dimension: (9, 9) +BeeperBag: INFINITE +Karel: (1, 1) East +Speed: 0.50 diff --git a/karel/worlds/SampleQuad2.w b/karel/worlds/SampleQuad2.w new file mode 100644 index 0000000..3382e46 --- /dev/null +++ b/karel/worlds/SampleQuad2.w @@ -0,0 +1,35 @@ +Dimension: (13, 9) +Beeper: (1, 1) 1 +Beeper: (1, 2) 1 +Wall: (1, 4) South +Wall: (2, 4) West +Wall: (2, 5) South +Wall: (3, 4) West +Wall: (3, 4) South +Wall: (4, 4) West +Wall: (4, 5) South +Beeper: (5, 1) 1 +Wall: (5, 5) West +Beeper: (5, 5) 1 +Wall: (5, 6) South +Wall: (6, 5) West +Wall: (6, 5) South +Wall: (7, 4) West +Wall: (7, 4) South +Wall: (8, 3) West +Wall: (8, 3) South +Wall: (9, 2) West +Wall: (9, 2) South +Wall: (10, 2) West +Wall: (10, 3) South +Wall: (11, 3) West +Wall: (11, 4) South +Wall: (12, 4) West +Wall: (12, 5) South +Beeper: (13, 1) 1 +Beeper: (13, 3) 1 +Wall: (13, 4) West +Wall: (13, 4) South +BeeperBag: INFINITE +Karel: (1, 1) East +Speed: 0.5 From 40b2e826b715c495e7e26b1473199fa35ee0088c Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 7 Dec 2020 11:18:33 -0800 Subject: [PATCH 32/48] Add to README and some unittest --- .github/workflows/c-cpp.yml | 3 + .gitignore | 1 + README.md | 18 +- karel/README.md | 97 ++++++++ karel/karel.cc | 6 + karel/karel.h | 6 + karel/src/cell.h | 8 +- karel/src/error.h | 6 + karel/src/orientation.h | 6 + karel/src/robot.cc | 52 +++-- karel/src/robot.h | 44 +++- karel/src/test/Makefile | 48 ++++ karel/src/test/karel_unittest.cc | 216 ++++++++++++++++++ karel/{ => src/test}/worlds/1x8.w | 0 karel/{ => src/test}/worlds/2x1.w | 0 karel/{ => src/test}/worlds/8x1.w | 0 karel/{ => src/test}/worlds/8x8.w | 0 .../test}/worlds/CollectNewspaperKarel.w | 0 .../test}/worlds/MidpointFindingKarel.w | 0 karel/{ => src/test}/worlds/SampleQuad2.w | 0 karel/{ => src/test}/worlds/StoneMasonKarel.w | 0 karel/test.cc | 13 +- 22 files changed, 488 insertions(+), 36 deletions(-) create mode 100644 karel/README.md create mode 100644 karel/src/test/Makefile create mode 100644 karel/src/test/karel_unittest.cc rename karel/{ => src/test}/worlds/1x8.w (100%) rename karel/{ => src/test}/worlds/2x1.w (100%) rename karel/{ => src/test}/worlds/8x1.w (100%) rename karel/{ => src/test}/worlds/8x8.w (100%) rename karel/{ => src/test}/worlds/CollectNewspaperKarel.w (100%) rename karel/{ => src/test}/worlds/MidpointFindingKarel.w (100%) rename karel/{ => src/test}/worlds/SampleQuad2.w (100%) rename karel/{ => src/test}/worlds/StoneMasonKarel.w (100%) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index cdfa76f..7b1bc32 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -21,3 +21,6 @@ jobs: - name: make image_unittest run: make image_unittest working-directory: graphics/test + - name: make karel_unittest + run: make karel_unittest + working-directory: karel/src/test diff --git a/.gitignore b/.gitignore index a684e47..0ece1af 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ graphics/test/image_unittest graphics/test/*.bmp !graphics/test/example_bmp.bmp +karel/src/test/karel_unittest diff --git a/README.md b/README.md index ea844dd..0f8426a 100644 --- a/README.md +++ b/README.md @@ -2,15 +2,27 @@ Libraries for student C++ code available under the MIT license. -## Graphics +## Graphics: Image library -graphics/image.h can be used to create, view, load and save images. Example: +``graphics/image.h`` can be used to create, view, load and save images. Example: ![example fractal tree](graphics/test/example_fractal_tree.png) +``graphics/image_event.h`` allows for interactive graphical programs with animation and mouse event handling. + +### Usage + +Learn more about how to use the C++ Utils graphics class in this [interactive tutorial](https://lab.cs50.io/ILXL-guides/intro-to-graphics). + +## Karel the Robot in C++ + +Karel the Robot is a gentle introductory programming language created by [Dr. Richard Pattis](https://www.ics.uci.edu/~pattis/) in [*Karel the Robot: A Gentle Introduction to The Art of Programming*](https://www.google.com/books/edition/_/ghcZAQAAIAAJ?hl=en&gbpv=1). The Karel language emphasizes logic while hiding tricky syntax, allowing anyone to begin making exciting graphical programs with very little background. + +To create graphical Karel the Robot programs in C++, include ``karel/karel.h``. + ### Usage -Learn more about how to C++ Utils graphics class on [ILXL-Guides](https://github.com/ILXL-guides/intro-to-graphics). +(TODO): Learn more about how to use the C++ Utils Karel the Robot functions in this [interactive tutorial](https://github.com/ILXL-guides/intro-to-karel) ## For developers and instructors diff --git a/karel/README.md b/karel/README.md new file mode 100644 index 0000000..436ceae --- /dev/null +++ b/karel/README.md @@ -0,0 +1,97 @@ +# Karel the Robot in C++ + +TODO: Port README to a ILXL guide and the CPPUtils wiki. + +## History + +Karel the Robot is a gentle introductory programming language created by [Dr. Richard Pattis](https://www.ics.uci.edu/~pattis/) in [*Karel the Robot: A Gentle Introduction to The Art of Programming*](https://www.google.com/books/edition/_/ghcZAQAAIAAJ?hl=en&gbpv=1). The Karel language emphasizes logic while hiding tricky syntax, allowing students to begin making exciting graphical programs with very little background. + +Karel is named "after the Czech playwright Karel Čapek, whose 1923 play R.U.R. (Rossum’s Universal Robots) gave the word robot to the English language." ([Karel Reader](https://web.stanford.edu/class/archive/cs/cs106a/cs106a.1194/karelReader/en/chapter1.html)) + +This C++ version of Karel the Robot was created with permission from Dr. Pattis. + +## Overview + +Karel lives in a two-dimensional grid where (1, 1) is at the bottom left corner. Karel has a position and an orientation in the grid (north, east, south or west). + +Each square of the grid may contain one or more beepers, or no beepers at all. Karel has a bag of beepers which may be empty or may contain many or even infinite beepers. + +Karel can move one cell and turn left. Karel can put down a beeper or pick up a beeper. In addition, Karel is able to check state of the area around themselves. + +Cells may be separated by walls. Karel cannot move through walls or off the edge of the world. + +Karel has four actions: + +```cpp +void Move(); +void TurnLeft(); +void PutBeeper(); +void PickBeeper(); +``` + +Karel has several booleans for getting robot state: +```cpp +bool FrontIsClear(); +bool FrontIsBlocked(); +bool LeftIsClear(); +bool LeftIsBlocked(); +bool RightIsClear(); +bool RightIsBlocked(); +bool HasBeepersInBag(); +bool NoBeepersInBag(); +bool BeepersPresent(); +bool NoBeepersPresent(); +bool FacingNorth(); +bool NotFacingNorth(); +bool FacingEast(); +bool NotFacingEast(); +bool FacingSouth(); +bool NotFacingSouth(); +bool FacingWest(); +bool NotFacingWest(); +``` + +``robot.h`` provides a Karel the Robot implementation in C++. This is functional programming: simply ``#include "cpputils/karel/karel.h"`` and call the Karel functions in the global namespace. + +### Building + +Compile (from the directory containing cpputils) with: + +``clang++ -std=c++17 main.cc cpputils/karel/karel.cc cpputils/karel/src/robot.cc cpputils/graphics/image.cc -o main -lm -lX11 -lpthread`` + +A few more flags are needed in Mac. + +## For instructors + +Instructors should call ``LoadWorld`` before student code and ``Finish`` after. + +```cpp +void LoadWorld(std::string filename); +void Finish(); +``` + +### World files + +Same as Stanford 106A. Dimension must be the first line. + +### Unit testing + +See ``src/test/karel_unittest.cc`` + +Must get robot instance with enable animations set to false -- so unittest shouldn't run over code that does Setup (and maybe not Finish either). Should just run over student functions. + +### Example CS1 course structure with Karel + +first weeks: +`make build` +karel: + logic + vars (ints) + loops & ifs + functions --> TurnRight() { TurnLeft(); TurnLeft(); TurnLeft(); } + +later weeks: +clang++ main.cc -o main +doubles +vectors +strings diff --git a/karel/karel.cc b/karel/karel.cc index d149ad3..0ec68cf 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include "karel.h" #include "src/robot.h" diff --git a/karel/karel.h b/karel/karel.h index d0ac118..dc7405e 100644 --- a/karel/karel.h +++ b/karel/karel.h @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include void Move(); diff --git a/karel/src/cell.h b/karel/src/cell.h index 95f0b4b..976dd89 100644 --- a/karel/src/cell.h +++ b/karel/src/cell.h @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include "orientation.h" #ifndef CELL_H @@ -33,7 +39,7 @@ class Cell { } private: - bool num_beepers_ = 0; + int num_beepers_ = 0; bool north_wall_ = false; bool east_wall_ = false; bool south_wall_ = false; diff --git a/karel/src/error.h b/karel/src/error.h index 0432812..e5df255 100644 --- a/karel/src/error.h +++ b/karel/src/error.h @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include "orientation.h" #ifndef ERROR_H diff --git a/karel/src/orientation.h b/karel/src/orientation.h index 979f263..c12b784 100644 --- a/karel/src/orientation.h +++ b/karel/src/orientation.h @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #ifndef ORIENTATION_H #define ORIENTATION_H diff --git a/karel/src/robot.cc b/karel/src/robot.cc index 5412f09..414e2a8 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include "robot.h" #include @@ -12,11 +18,8 @@ #include "error.h" #include "orientation.h" -// TODO: Finish shouldn't showuntilclosed in testing. -// Testing should have a non-graphical way to go. -// Save to file +// TODO: Save to image file (maybe for testing) // document -// phew namespace karel { @@ -72,25 +75,27 @@ karel::Robot& Robot::PrivateGetInstance() { } // static. -karel::Robot& Robot::GetInstance() { +karel::Robot& Robot::GetInstance(bool enable_graphics, bool force_initialize) { karel::Robot& instance = PrivateGetInstance(); - instance.Initialize("", /* enable graphics */ true); + instance.Initialize("", enable_graphics, force_initialize); return instance; } // Get the Robot singleton and intialize it from a file. // static. karel::Robot& Robot::InitializeInstance(std::string filename, - bool enable_graphics) { + bool enable_graphics, bool force_initialize) { karel::Robot& instance = PrivateGetInstance(); - instance.Initialize(filename, enable_graphics); + instance.Initialize(filename, enable_graphics, force_initialize); return instance; } -void Robot::Initialize(std::string filename, bool enable_graphics) { - // Ensure only intitialized once. - if (initialized_) return; +void Robot::Initialize(std::string filename, bool enable_graphics, bool force_initialize) { + // Ensure only intitialized once unless |force_initialize| is true. + if (initialized_ && !force_initialize) return; initialized_ = true; + error_ = RobotError::kNoError; + finished_ = false; enable_animations_ = enable_graphics; @@ -106,10 +111,14 @@ void Robot::Initialize(std::string filename, bool enable_graphics) { } // Nearly infinite beepers. beeper_count_ = std::numeric_limits::max(); - PositionAndOrientation position_ = {0, y_dimen_ - 1, Orientation::kEast}; + position_ = {0, kDefaultDimen - 1, Orientation::kEast}; } else { std::fstream world_file; - world_file.open(filename); + try { + world_file.open(filename); + } catch (std::ifstream::failure e) { + throw std::string("Error opening file"); + } if (!world_file.is_open()) { // TODO: Replace throwables with better error codes? throw std::string("Error opening file"); @@ -132,9 +141,9 @@ void Robot::Initialize(std::string filename, bool enable_graphics) { if (line_prefix != dimension_prefix) { throw std::string("Could not find Dimension in first line"); } - if (x_dimen_ < 2 || y_dimen_ < 1) { + if (x_dimen_ < 1 || y_dimen_ < 1) { throw std::string( - "Cannot load a world less than 2 cells wide or less than 1 cell " + "Cannot load a world less than 1 cell wide or less than 1 cell " "tall"); } for (int i = 0; i < x_dimen_; i++) { @@ -177,6 +186,9 @@ void Robot::Initialize(std::string filename, bool enable_graphics) { if (!(world_file >> speed_)) { throw std::string("Error reading Speed"); } + if (speed_ < 0) { + throw std::string("Speed must be greater than 0"); + } } else { std::cout << "unexpected token in file: " << line_prefix << std::endl << std::flush; @@ -185,7 +197,8 @@ void Robot::Initialize(std::string filename, bool enable_graphics) { } world_file.close(); } - image_.Initialize(x_dimen_ * pxPerCell + margin, + int min_width = 5 * pxPerCell + margin; + image_.Initialize(std::max(x_dimen_ * pxPerCell + margin, min_width), y_dimen_ * pxPerCell + margin); DrawWorld(); @@ -367,12 +380,16 @@ const Cell& Robot::GetCell(int x, int y) const { return world_[x - 1][y_dimen_ - y]; } +int Robot::GetWorldWidth() const { return x_dimen_; } + +int Robot::GetWorldHeight() const { return y_dimen_; } + RobotError Robot::GetError() const { return error_; } void Robot::Show(int duration) { if (finished_) return; if (enable_animations_) { - image_.ShowForMs(duration / speed_, "Karel's World"); + image_.ShowForMs(duration * speed_, "Karel's World"); } } @@ -381,6 +398,7 @@ void Robot::Error(RobotError error) { std::string message = "Error: "; switch (error) { case kNoError: + // This shouldn't happen. return; case kCannotMoveNorth: message += " Cannot move north"; diff --git a/karel/src/robot.h b/karel/src/robot.h index 48780ff..4011c4a 100644 --- a/karel/src/robot.h +++ b/karel/src/robot.h @@ -1,3 +1,9 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include #include @@ -7,8 +13,8 @@ #include "../../graphics/image.h" #include "cell.h" -#include "orientation.h" #include "error.h" +#include "orientation.h" #ifndef ROBOT_H #define ROBOT_H @@ -19,15 +25,19 @@ class Robot { public: /** * Get the Robot singleton. Initializes it with default values if it isn't - * already initialized. + * already initialized. Set |enable_graphics| to false for testing, which + * will disable animations. Use |force_initialize| for testing which resets + * the singleton state. */ - static karel::Robot& GetInstance(); + static karel::Robot& GetInstance(bool enable_graphics = true, bool force_initialize = false); /** - * Get the Robot singleton and intialize it from a file. + * Get the Robot singleton and intialize it from a file. Set |enable_graphics| + * to false for testing, which will disable animations. Use |force_initialize| for testing which resets + * the singleton state. */ static karel::Robot& InitializeInstance(std::string filename, - bool enable_graphics = true); + bool enable_graphics = true, bool force_initialize = false); // Disallow copy and assign. Robot(const Robot&) = delete; @@ -83,8 +93,10 @@ class Robot { void Finish(); - // Methods for tests. Tests should access robot with GetInstance - // and may inspect its state with these methods. + // + // Methods for tests. Tests should access Robot with GetInstance + // and may inspect its state with the following methods. + // /** * Gets the orientation that Karel is facing. May be simpler to use this in @@ -115,6 +127,16 @@ class Robot { */ const Cell& GetCell(int x, int y) const; + /** + * Gets the width of the current world. + */ + int GetWorldWidth() const; + + /** + * Gets the height of the current world. + */ + int GetWorldHeight() const; + /** * Returns the robot's current error state or kNoError if it has none. */ @@ -131,7 +153,7 @@ class Robot { * Loads a Karel world from a file, or if |filename| is the empty string loads * a default world with Karel in a default position. */ - void Initialize(std::string filename, bool enable_graphics); + void Initialize(std::string filename, bool enable_graphics, bool force_initialize); void Show(int duration); @@ -165,6 +187,9 @@ class Robot { // testing. bool enable_animations_ = true; + // Speed multiplier for animation. + double speed_ = 1.0; + // Underlying image. graphics::Image image_; @@ -185,9 +210,6 @@ class Robot { bool initialized_ = false; bool finished_ = false; RobotError error_ = RobotError::kNoError; - - // Speed multiplier for animation. - double speed_ = 1.0; }; } // namespace karel diff --git a/karel/src/test/Makefile b/karel/src/test/Makefile new file mode 100644 index 0000000..6cd9b29 --- /dev/null +++ b/karel/src/test/Makefile @@ -0,0 +1,48 @@ +# Copyright 2020 Paul Salvador Inventado and Google LLC +# +# Use of this source code is governed by an MIT-style +# license that can be found in the LICENSE file or at +# https://opensource.org/licenses/MIT. + +.PHONY: install_gtest karel_unittest + +OS_NAME := $(shell uname -s | tr A-Z a-z) +SHELL := /bin/bash +HAS_GTEST := $(shell echo -e "int main() { }" >> test.cc ; clang++ test.cc -o test -lgtest 2> /dev/null; echo $$?; rm -f test.cc test;) +COMPILE_FLAGS := -lm -lX11 -lpthread + +ifeq ($(OS_NAME), darwin) + COMPILE_FLAGS := -lm -lpthread -lX11 -I/usr/X11R6/include -L/usr/X11R6/lib + HAS_BREW := $(shell command -v brew 2> /dev/null) +endif + +install_gtest: +ifeq ($(HAS_GTEST),1) + @echo -e "google test not installed\n" +ifeq ($(OS_NAME), darwin) +ifndef ($(HAS_BREW)) + @echo -e "Installing brew, please provide your password when asked.\n" + @/bin/bash -c "$$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" + @brew install coreutils + # Need to redefine the path directories otherwise this will fail the first time. +endif + @echo -e "Installing cmake. Please provide the password when asked\n" + @brew install cmake + @echo -e "\nDownloading and installing googletest\n" + @cd /tmp/; git clone https://github.com/google/googletest; cd googletest; mkdir build; cd build; cmake .. -DCMAKE_CXX_STANDARD=17; make; make install + @echo -e "Finished installing google test\n" +else +ifneq ($(shell lsb_release -sr), 20.04) + @cd /tmp/; git clone https://github.com/google/googletest.git; cd googletest; cmake CMakeLists.txt; make; sudo cp -r googletest/include/. /usr/include; sudo cp -r googlemock/include/. /usr/include; sudo cp lib/*.a /usr/lib +else + @echo -e "Installing cmake. Please provide the password when asked\n" + @sudo apt-get install cmake # install cmake + @echo -e "\nDownloading and installing googletest\n" + @sudo apt-get install libgtest-dev libgmock-dev + @echo -e "Finished installing google test\n" +endif +endif +endif + +karel_unittest: install_gtest + @clang++ -std=c++17 ../../../graphics/image.cc ../robot.cc ../../karel.cc karel_unittest.cc -o karel_unittest -pthread -lgtest $(COMPILE_FLAGS) && ./karel_unittest diff --git a/karel/src/test/karel_unittest.cc b/karel/src/test/karel_unittest.cc new file mode 100644 index 0000000..c02de63 --- /dev/null +++ b/karel/src/test/karel_unittest.cc @@ -0,0 +1,216 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + +#include "../../karel.h" + +#include +#include + +#include "../../../graphics/image.h" +#include "../cell.h" +#include "../error.h" +#include "../orientation.h" +#include "../robot.h" + +using karel::Cell; +using karel::Orientation; +using karel::Robot; +using karel::RobotError; + +// Test TODOs: +// Test walls, loading maps with walls, not walking through walls +// Test error states +// Test loading beepers +// Test putting/picking beepers not at (1, 1) + +bool IsBasicallyInfinite(int number) { + return number > std::numeric_limits::max() / 2; +} + +void CellIsEmptyWithNoWalls(const Cell& cell) { + ASSERT_EQ(0, cell.GetNumBeepers()); + ASSERT_FALSE(cell.HasNorthWall()); + ASSERT_FALSE(cell.HasEastWall()); + ASSERT_FALSE(cell.HasSouthWall()); + ASSERT_FALSE(cell.HasWestWall()); +} + +class KarelTest : public testing::Test { + public: + void SetUp() override { + // TODO. + } +}; + +TEST_F(KarelTest, GetsKarelInstance) { + Robot& r = Robot::GetInstance(/* enable animations */ false, + /* force initialize */ true); +} + +TEST_F(KarelTest, DefaultWorld) { + Robot& r = Robot::GetInstance(/* enable animations */ false, + /* force initialize */ true); + + // Default world is 10x10. + ASSERT_EQ(10, r.GetWorldWidth()); + ASSERT_EQ(10, r.GetWorldHeight()); + + // Default world has no beepers and no walls. + for (int i = 1; i <= 10; i++) { + for (int j = 1; j <= 10; j++) { + CellIsEmptyWithNoWalls(r.GetCell(i, j)); + } + } + + // Default Karel is in bottom left with infinite beepers. + ASSERT_EQ(1, r.GetXPosition()); + ASSERT_EQ(1, r.GetYPosition()); + ASSERT_EQ(Orientation::kEast, r.GetOrientation()); + ASSERT_TRUE(IsBasicallyInfinite(r.GetNumBeepersInBag())); +} + +TEST_F(KarelTest, LoadsWorld) { + Robot& r = + Robot::InitializeInstance("worlds/2x1.w", /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(2, r.GetWorldWidth()); + ASSERT_EQ(1, r.GetWorldHeight()); + CellIsEmptyWithNoWalls(r.GetCell(1, 1)); + CellIsEmptyWithNoWalls(r.GetCell(2, 1)); + + ASSERT_EQ(1, r.GetXPosition()); + ASSERT_EQ(1, r.GetYPosition()); + ASSERT_EQ(Orientation::kEast, r.GetOrientation()); + ASSERT_TRUE(IsBasicallyInfinite(r.GetNumBeepersInBag())); +} + +TEST_F(KarelTest, PutsAndPicksBeeper) { + // Default world has no beepers, and Karel has infinite. + Robot& r = Robot::GetInstance(/* enable animations */ false, + /* force initialize */ true); + ASSERT_FALSE(BeepersPresent()); + ASSERT_EQ(0, r.GetCell(1, 1).GetNumBeepers()); + int count = 10; + for (int i = 1; i <= count; i++) { + PutBeeper(); + ASSERT_TRUE(BeepersPresent()); + EXPECT_EQ(i, r.GetCell(1, 1).GetNumBeepers()); + } + for (int i = count - 1; i >= 0; i--) { + PickBeeper(); + if (i > 0) { + ASSERT_TRUE(BeepersPresent()); + } else { + ASSERT_FALSE(BeepersPresent()); + } + EXPECT_EQ(i, r.GetCell(1, 1).GetNumBeepers()); + } +} + +TEST_F(KarelTest, TurnsLeft) { + Robot& r = Robot::GetInstance(/* enable animations */ false, + /* force initialize */ true); + int count = 10; + // Starts facing East. + for (int i = 0; i < count; i++) { + if (i % 4 == 0) { + // Facing east. + ASSERT_EQ(Orientation::kEast, r.GetOrientation()); + EXPECT_FALSE(FacingNorth()); + EXPECT_TRUE(NotFacingNorth()); + EXPECT_TRUE(FacingEast()); + EXPECT_FALSE(NotFacingEast()); + EXPECT_FALSE(FacingSouth()); + EXPECT_TRUE(NotFacingSouth()); + EXPECT_FALSE(FacingWest()); + EXPECT_TRUE(NotFacingWest()); + } else if (i % 4 == 1) { + // Facing north. + ASSERT_EQ(Orientation::kNorth, r.GetOrientation()); + EXPECT_TRUE(FacingNorth()); + EXPECT_FALSE(NotFacingNorth()); + EXPECT_FALSE(FacingEast()); + EXPECT_TRUE(NotFacingEast()); + EXPECT_FALSE(FacingSouth()); + EXPECT_TRUE(NotFacingSouth()); + EXPECT_FALSE(FacingWest()); + EXPECT_TRUE(NotFacingWest()); + } else if (i % 4 == 2) { + // Facing west. + ASSERT_EQ(Orientation::kWest, r.GetOrientation()); + EXPECT_FALSE(FacingNorth()); + EXPECT_TRUE(NotFacingNorth()); + EXPECT_FALSE(FacingEast()); + EXPECT_TRUE(NotFacingEast()); + EXPECT_FALSE(FacingSouth()); + EXPECT_TRUE(NotFacingSouth()); + EXPECT_TRUE(FacingWest()); + EXPECT_FALSE(NotFacingWest()); + } else { + // Facing south. + ASSERT_EQ(Orientation::kSouth, r.GetOrientation()); + EXPECT_FALSE(FacingNorth()); + EXPECT_TRUE(NotFacingNorth()); + EXPECT_FALSE(FacingEast()); + EXPECT_TRUE(NotFacingEast()); + EXPECT_TRUE(FacingSouth()); + EXPECT_FALSE(NotFacingSouth()); + EXPECT_FALSE(FacingWest()); + EXPECT_TRUE(NotFacingWest()); + } + TurnLeft(); + } +} + +TEST_F(KarelTest, MovesEastAndWest) { + Robot& r = + Robot::InitializeInstance("worlds/8x1.w", /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(8, r.GetWorldWidth()); + ASSERT_EQ(1, r.GetWorldHeight()); + for (int i = 2; i <= 8; i++) { + Move(); + ASSERT_EQ(i, r.GetXPosition()); + EXPECT_EQ(1, r.GetYPosition()); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + } + TurnLeft(); + TurnLeft(); + for (int i = 7; i > 0; i--) { + Move(); + ASSERT_EQ(i, r.GetXPosition()); + EXPECT_EQ(1, r.GetYPosition()); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + } +} + +TEST_F(KarelTest, MovesNorthAndSouth) { + Robot& r = + Robot::InitializeInstance("worlds/1x8.w", /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(1, r.GetWorldWidth()); + ASSERT_EQ(8, r.GetWorldHeight()); + TurnLeft(); // Face north. + for (int i = 2; i <= 8; i++) { + Move(); + ASSERT_EQ(1, r.GetXPosition()); + EXPECT_EQ(i, r.GetYPosition()); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + } + TurnLeft(); + TurnLeft(); + for (int i = 7; i > 0; i--) { + Move(); + ASSERT_EQ(1, r.GetXPosition()); + EXPECT_EQ(i, r.GetYPosition()); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + } +} + +int main(int argc, char** argv) { + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); +} diff --git a/karel/worlds/1x8.w b/karel/src/test/worlds/1x8.w similarity index 100% rename from karel/worlds/1x8.w rename to karel/src/test/worlds/1x8.w diff --git a/karel/worlds/2x1.w b/karel/src/test/worlds/2x1.w similarity index 100% rename from karel/worlds/2x1.w rename to karel/src/test/worlds/2x1.w diff --git a/karel/worlds/8x1.w b/karel/src/test/worlds/8x1.w similarity index 100% rename from karel/worlds/8x1.w rename to karel/src/test/worlds/8x1.w diff --git a/karel/worlds/8x8.w b/karel/src/test/worlds/8x8.w similarity index 100% rename from karel/worlds/8x8.w rename to karel/src/test/worlds/8x8.w diff --git a/karel/worlds/CollectNewspaperKarel.w b/karel/src/test/worlds/CollectNewspaperKarel.w similarity index 100% rename from karel/worlds/CollectNewspaperKarel.w rename to karel/src/test/worlds/CollectNewspaperKarel.w diff --git a/karel/worlds/MidpointFindingKarel.w b/karel/src/test/worlds/MidpointFindingKarel.w similarity index 100% rename from karel/worlds/MidpointFindingKarel.w rename to karel/src/test/worlds/MidpointFindingKarel.w diff --git a/karel/worlds/SampleQuad2.w b/karel/src/test/worlds/SampleQuad2.w similarity index 100% rename from karel/worlds/SampleQuad2.w rename to karel/src/test/worlds/SampleQuad2.w diff --git a/karel/worlds/StoneMasonKarel.w b/karel/src/test/worlds/StoneMasonKarel.w similarity index 100% rename from karel/worlds/StoneMasonKarel.w rename to karel/src/test/worlds/StoneMasonKarel.w diff --git a/karel/test.cc b/karel/test.cc index ab5bbc6..4b7f555 100644 --- a/karel/test.cc +++ b/karel/test.cc @@ -1,9 +1,12 @@ +// Copyright 2020 Paul Salvador Inventado and Google LLC +// +// Use of this source code is governed by an MIT-style +// license that can be found in the LICENSE file or at +// https://opensource.org/licenses/MIT. + #include "karel.h" void KarelProgram() { - TurnLeft(); - Move(); - PickBeeper(); Move(); Move(); Move(); @@ -16,10 +19,12 @@ void KarelProgram() { PutBeeper(); TurnLeft(); Move(); + TurnLeft(); + TurnLeft(); } int main() { - LoadWorld("worlds/CollectNewspaperKarel.w"); + LoadWorld("src/test/worlds/1x8.w"); KarelProgram(); Finish(); return 0; From 42e17f77b6148216bcb8c9f4749d3eb3578c75d3 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 7 Dec 2020 20:29:34 -0800 Subject: [PATCH 33/48] Refactor and clean-up --- karel/karel.cc | 72 ++++++------------ karel/karel.h | 114 ++++++++++++++++++++++++++--- karel/src/robot.cc | 45 +++--------- karel/src/robot.h | 121 ++++++++++++++++++++++--------- karel/src/test/karel_unittest.cc | 1 + 5 files changed, 224 insertions(+), 129 deletions(-) diff --git a/karel/karel.cc b/karel/karel.cc index 0ec68cf..2cbd515 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -12,7 +12,8 @@ void LoadWorld(std::string filename) { try { karel::Robot& r = karel::Robot::InitializeInstance(filename); } catch (std::string error) { - std::cout << "Error loading world file " << filename << ": \n" << error << std::endl; + std::cout << "Error loading world file " << filename << ": \n" + << error << std::endl; exit(1); } } @@ -37,97 +38,70 @@ void PickBeeper() { r.PickBeeper(); } -void Finish() { +bool HasBeepersInBag() { karel::Robot& r = karel::Robot::GetInstance(); - r.Finish(); + return r.HasBeepersInBag(); } -bool FrontIsClear() { +bool NoBeepersInBag() { return !HasBeepersInBag(); } + +bool BeepersPresent() { karel::Robot& r = karel::Robot::GetInstance(); - return r.FrontIsClear(); + return r.BeepersPresent(); } -bool FrontIsBlocked() { +bool NoBeepersPresent() { return !BeepersPresent(); } + +bool FrontIsClear() { karel::Robot& r = karel::Robot::GetInstance(); - return r.FrontIsBlocked(); + return r.FrontIsClear(); } +bool FrontIsBlocked() { return !FrontIsClear(); } + bool LeftIsClear() { karel::Robot& r = karel::Robot::GetInstance(); return r.LeftIsClear(); } -bool LeftIsBlocked() { - karel::Robot& r = karel::Robot::GetInstance(); - return r.LeftIsBlocked(); -} +bool LeftIsBlocked() { return !LeftIsClear(); } bool RightIsClear() { karel::Robot& r = karel::Robot::GetInstance(); return r.RightIsClear(); } -bool RightIsBlocked() { - karel::Robot& r = karel::Robot::GetInstance(); - return r.RightIsBlocked(); -} - -bool HasBeepersInBag() { - karel::Robot& r = karel::Robot::GetInstance(); - return r.HasBeepersInBag(); -} - -bool NoBeepersInBag() { - karel::Robot& r = karel::Robot::GetInstance(); - return r.NoBeepersInBag(); -} - -bool BeepersPresent() { - karel::Robot& r = karel::Robot::GetInstance(); - return r.BeepersPresent(); -} - -bool NoBeepersPresent() { - karel::Robot& r = karel::Robot::GetInstance(); - return r.NoBeepersPresent(); -} +bool RightIsBlocked() { return !RightIsClear(); } bool FacingNorth() { karel::Robot& r = karel::Robot::GetInstance(); return r.FacingNorth(); } -bool NotFacingNorth() { - karel::Robot& r = karel::Robot::GetInstance(); - return r.NotFacingNorth(); -} +bool NotFacingNorth() { return !FacingNorth(); } bool FacingEast() { karel::Robot& r = karel::Robot::GetInstance(); return r.FacingEast(); } -bool NotFacingEast() { - karel::Robot& r = karel::Robot::GetInstance(); - return r.NotFacingEast(); -} +bool NotFacingEast() { return !FacingEast(); } bool FacingSouth() { karel::Robot& r = karel::Robot::GetInstance(); return r.FacingSouth(); } -bool NotFacingSouth() { - karel::Robot& r = karel::Robot::GetInstance(); - return r.NotFacingSouth(); -} +bool NotFacingSouth() { return !FacingSouth(); } bool FacingWest() { karel::Robot& r = karel::Robot::GetInstance(); return r.FacingWest(); } -bool NotFacingWest() { +bool NotFacingWest() { return !FacingWest(); } + +void Finish() { karel::Robot& r = karel::Robot::GetInstance(); - return r.NotFacingWest(); + r.Finish(); } diff --git a/karel/karel.h b/karel/karel.h index dc7405e..d53d5f3 100644 --- a/karel/karel.h +++ b/karel/karel.h @@ -6,50 +6,146 @@ #include +///////////////////////////////////////////////////////// +// Methods for core Karel functionality // +// These methods allow interaction with Karel. // +///////////////////////////////////////////////////////// + +/** + * Move Karel forward one step. Results in an error if Karel cannot move + * forward because of a wall or an edge. + */ void Move(); +/** + * Turns Karel to the left. + */ void TurnLeft(); +/** + * Places a beeper from Karel's beeper bag onto the current cell where Karel + * is. Results in an error if Karel has no beepers left in their bag. + */ void PutBeeper(); +/** + * Picks a beeper from the cell where Karel is standing and places it in + * their beeper bag. Results in an error if there are no beepers in Karel's + * current cell. + */ void PickBeeper(); +/** + * Returns true if Karel has beepers in their bag, or false otherwise. + */ +bool HasBeepersInBag(); + +/** + * Returns true if Karel has no beepers in their bag, or true otherwise. + */ +bool NoBeepersInBag(); + +/** + * Returns true if Karel is standing on a cell with at least one beeper, or + * false otherwise. + */ +bool BeepersPresent(); + +/** + * Returns true if Karel is standing on a cell no beepers at all, or + * false otherwise. + */ +bool NoBeepersPresent(); + +/** + * Returns true if there is no wall nor edge in front of Karel and they could + * move forward, or false otherwise. + */ bool FrontIsClear(); +/** + * Returns true if there is a wall or edge in front of Karel or false otherwise. + */ bool FrontIsBlocked(); +/** + * Returns true if there is no wall nor edge directly to Karel's left, or false + * otherwise. + */ bool LeftIsClear(); +/** + * Returns true if there is a wall or edge directly to Karel's left, or false + * otherwise. + */ bool LeftIsBlocked(); +/** + * Returns true if there is no wall nor edge directly to Karel's right, or false + * otherwise. + */ bool RightIsClear(); +/** + * Returns true if there is a wall or edge directly to Karel's right or false + * otherwise. + */ bool RightIsBlocked(); -bool HasBeepersInBag(); - -bool NoBeepersInBag(); - -bool BeepersPresent(); - -bool NoBeepersPresent(); - +/** + * Returns true if Karel is facing north or false otherwise. + */ bool FacingNorth(); +/** + * Returns true if Karel is not facing north or false otherwise. + */ bool NotFacingNorth(); +/** + * Returns true if Karel is facing east or false otherwise. + */ bool FacingEast(); +/** + * Returns true if Karel is not facing east or false otherwise. + */ bool NotFacingEast(); +/** + * Returns true if Karel is facing south or false otherwise. + */ bool FacingSouth(); +/** + * Returns true if Karel is facing south or false otherwise. + */ bool NotFacingSouth(); +/** + * Returns true if Karel is facing west or false otherwise. + */ bool FacingWest(); +/** + * Returns true if Karel is not facing west or false otherwise. + */ bool NotFacingWest(); -// For the instructor +///////////////////////////////////////////////////////////////////////////// +// Methods for setting up a Karel program. // +// Instructors may use these methods wrapping student's Karel commands. // +///////////////////////////////////////////////////////////////////////////// + +/** + * Loads a Karel world from a file. + * If this is not the first Karel function called a default world will be + * created instead and this will have no effect. + */ void LoadWorld(std::string filename); + +/** + * Completes a Karel program. Continues to show the image but will not + * do any more actions. + */ void Finish(); diff --git a/karel/src/robot.cc b/karel/src/robot.cc index 414e2a8..7bbc2a1 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -84,13 +84,15 @@ karel::Robot& Robot::GetInstance(bool enable_graphics, bool force_initialize) { // Get the Robot singleton and intialize it from a file. // static. karel::Robot& Robot::InitializeInstance(std::string filename, - bool enable_graphics, bool force_initialize) { + bool enable_graphics, + bool force_initialize) { karel::Robot& instance = PrivateGetInstance(); instance.Initialize(filename, enable_graphics, force_initialize); return instance; } -void Robot::Initialize(std::string filename, bool enable_graphics, bool force_initialize) { +void Robot::Initialize(std::string filename, bool enable_graphics, + bool force_initialize) { // Ensure only intitialized once unless |force_initialize| is true. if (initialized_ && !force_initialize) return; initialized_ = true; @@ -304,62 +306,38 @@ void Robot::PickBeeper() { bool Robot::HasBeepersInBag() const { return beeper_count_ > 0; } -bool Robot::NoBeepersInBag() const { return !HasBeepersInBag(); } - bool Robot::BeepersPresent() const { return world_[position_.x][position_.y].GetNumBeepers() > 0; } -bool Robot::NoBeepersPresent() const { return !BeepersPresent(); } - bool Robot::FrontIsClear() const { return DirectionIsClear(position_.orientation); } -bool Robot::FrontIsBlocked() const { - return !DirectionIsClear(position_.orientation); -} - bool Robot::LeftIsClear() const { return DirectionIsClear((Orientation)(((int)position_.orientation + 1) % 4)); } -bool Robot::LeftIsBlocked() const { - return !DirectionIsClear((Orientation)(((int)position_.orientation + 1) % 4)); -} - bool Robot::RightIsClear() const { return DirectionIsClear((Orientation)(((int)position_.orientation - 1) % 4)); } -bool Robot::RightIsBlocked() const { - return !DirectionIsClear((Orientation)(((int)position_.orientation - 1) % 4)); -} - bool Robot::FacingNorth() const { return position_.orientation == Orientation::kNorth; } -bool Robot::NotFacingNorth() const { return !FacingNorth(); } - bool Robot::FacingEast() const { return position_.orientation == Orientation::kEast; } -bool Robot::NotFacingEast() const { return !FacingEast(); } - bool Robot::FacingSouth() const { return position_.orientation == Orientation::kSouth; } -bool Robot::NotFacingSouth() const { return !FacingSouth(); } - bool Robot::FacingWest() const { return position_.orientation == Orientation::kWest; } -bool Robot::NotFacingWest() const { return !FacingWest(); } - void Robot::Finish() { if (finished_) return; finished_ = true; @@ -423,16 +401,11 @@ void Robot::Error(RobotError error) { int approx_width = 25 * kErrorFontSize / 4; int text_x = std::max(2, image_.GetWidth() / 2 - approx_width); int text_y = image_.GetHeight() / 2 - kErrorFontSize / 2; - image_.DrawText(text_x - 2, text_y - 2, message, - kErrorFontSize, kWhite); - image_.DrawText(text_x + 2, text_y - 2, message, - kErrorFontSize, kWhite); - image_.DrawText(text_x - 2, text_y + 2, message, - kErrorFontSize, kWhite); - image_.DrawText(text_x + 2, text_y + 2, message, - kErrorFontSize, kWhite); - image_.DrawText(text_x, text_y, message, kErrorFontSize, - kErrorColor); + image_.DrawText(text_x - 2, text_y - 2, message, kErrorFontSize, kWhite); + image_.DrawText(text_x + 2, text_y - 2, message, kErrorFontSize, kWhite); + image_.DrawText(text_x - 2, text_y + 2, message, kErrorFontSize, kWhite); + image_.DrawText(text_x + 2, text_y + 2, message, kErrorFontSize, kWhite); + image_.DrawText(text_x, text_y, message, kErrorFontSize, kErrorColor); Finish(); } diff --git a/karel/src/robot.h b/karel/src/robot.h index 4011c4a..a6c7e6d 100644 --- a/karel/src/robot.h +++ b/karel/src/robot.h @@ -29,74 +29,110 @@ class Robot { * will disable animations. Use |force_initialize| for testing which resets * the singleton state. */ - static karel::Robot& GetInstance(bool enable_graphics = true, bool force_initialize = false); + static karel::Robot& GetInstance(bool enable_graphics = true, + bool force_initialize = false); /** * Get the Robot singleton and intialize it from a file. Set |enable_graphics| - * to false for testing, which will disable animations. Use |force_initialize| for testing which resets - * the singleton state. + * to false for testing, which will disable animations. Use |force_initialize| + * for testing which resets the singleton state. */ static karel::Robot& InitializeInstance(std::string filename, - bool enable_graphics = true, bool force_initialize = false); + bool enable_graphics = true, + bool force_initialize = false); - // Disallow copy and assign. + // Disallow copy and assignment. Robot(const Robot&) = delete; karel::Robot& operator=(const Robot&) = delete; + ///////////////////////////////////////////////////////// + // Methods for core Karel functionality // + // These methods allow interaction with Karel. // + ///////////////////////////////////////////////////////// + /** * Move Karel forward one step. Results in an error if Karel cannot move - * forward. + * forward because of a wall or an edge. */ void Move(); + /** + * Turns Karel to the left. + */ void TurnLeft(); + /** + * Places a beeper from Karel's beeper bag onto the current cell where Karel + * is. Results in an error if Karel has no beepers left in their bag. + */ void PutBeeper(); + /** + * Picks a beeper from the cell where Karel is standing and places it in + * their beeper bag. Results in an error if there are no beepers in Karel's + * current cell. + */ void PickBeeper(); + /** + * Returns true if Karel has beepers in their bag, or false otherwise. + */ bool HasBeepersInBag() const; - bool NoBeepersInBag() const; - + /** + * Returns true if Karel is standing on a cell with at least one beeper, or + * false otherwise. + */ bool BeepersPresent() const; - bool NoBeepersPresent() const; - + /** + * Returns true if there is no wall nor edge in front of Karel and they could + * move forward, or false otherwise. + */ bool FrontIsClear() const; - bool FrontIsBlocked() const; - + /** + * Returns true if there is no wall nor edge directly to Karel's left, or + * false otherwise. + */ bool LeftIsClear() const; - bool LeftIsBlocked() const; - + /** + * Returns true if there is no wall nor edge directly to Karel's right, or + * false otherwise. + */ bool RightIsClear() const; - bool RightIsBlocked() const; - + /** + * Returns true if Karel is facing north or false otherwise. + */ bool FacingNorth() const; - bool NotFacingNorth() const; - + /** + * Returns true if Karel is facing east or false otherwise. + */ bool FacingEast() const; - bool NotFacingEast() const; - + /** + * Returns true if Karel is facing south or false otherwise. + */ bool FacingSouth() const; - bool NotFacingSouth() const; - + /** + * Returns true if Karel is facing west or false otherwise. + */ bool FacingWest() const; - bool NotFacingWest() const; - + /** + * Completes a Karel program. Continues to show the image but will not + * do any more actions. + */ void Finish(); - // - // Methods for tests. Tests should access Robot with GetInstance - // and may inspect its state with the following methods. - // + ///////////////////////////////////////////////////////////////////// + // Methods for tests. Tests should access Robot with GetInstance // + // and may inspect its state with the following methods. // + ///////////////////////////////////////////////////////////////////// /** * Gets the orientation that Karel is facing. May be simpler to use this in @@ -153,12 +189,22 @@ class Robot { * Loads a Karel world from a file, or if |filename| is the empty string loads * a default world with Karel in a default position. */ - void Initialize(std::string filename, bool enable_graphics, bool force_initialize); + void Initialize(std::string filename, bool enable_graphics, + bool force_initialize); + /** + * Shows karel's world, blocking for the given |duration| in milliseconds. + */ void Show(int duration); + /** + * Displays an error and finishes the program. + */ void Error(RobotError error); + /** + * Helper method to see if a compass direction is clear. + */ bool DirectionIsClear(Orientation orientation) const; void DrawWorld(); @@ -173,14 +219,19 @@ class Robot { void AnimateMove(int next_x, int next_y); - // Note that the orientation is not populated. This is just a helper to - // get the x and y position from a file with the next items in the stream - // being (x, y) + /** + * Helper method to parse position from the next item in a file stream. + * Note that the orientation is not populated. This is just a helper to + * get the x and y position from a file with the next items in the stream + * being (x, y) + */ PositionAndOrientation ParsePosition(std::fstream& file) const; - // Helper to get orientation of the form, `(x, y) direction`, for example, - // (3, 7) East - // Direction may be lower-case or have an uppercase first letter. + /** + * Helper to get orientation of the form, `(x, y) direction`, for example, + * (3, 7) East + * Direction may be lower-case or have an uppercase first letter. + */ PositionAndOrientation ParsePositionAndOrientation(std::fstream& file) const; // Whether animations are enabled. They should probably be disabled for diff --git a/karel/src/test/karel_unittest.cc b/karel/src/test/karel_unittest.cc index c02de63..3e86487 100644 --- a/karel/src/test/karel_unittest.cc +++ b/karel/src/test/karel_unittest.cc @@ -23,6 +23,7 @@ using karel::RobotError; // Test TODOs: // Test walls, loading maps with walls, not walking through walls // Test error states +// Test stops taking action after reaching an error state. // Test loading beepers // Test putting/picking beepers not at (1, 1) From 2f49bc5be7f04d16134ef29a04fdd5dc01235b7e Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 7 Dec 2020 20:30:26 -0800 Subject: [PATCH 34/48] Add Karel branch to workflow --- .github/workflows/c-cpp.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 7b1bc32..3eceffa 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -2,7 +2,7 @@ name: C/C++ CI on: push: - branches: [ master, v1, v2, animation ] + branches: [ master, v1, v2, karel ] pull_request: branches: [ master ] From 0cc50bf04f6c69dd1ca430868439753c09cf15f4 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 7 Dec 2020 20:50:35 -0800 Subject: [PATCH 35/48] Clean up demo code, update README --- README.md | 2 + karel/README.md | 68 +++++++++++++++--- karel/src/test/karel.png | Bin 0 -> 18851 bytes karel/src/test/worlds/CollectNewspaperKarel.w | 15 ---- karel/src/test/worlds/MidpointFindingKarel.w | 4 -- karel/src/test/worlds/SampleQuad2.w | 35 --------- karel/src/test/worlds/StoneMasonKarel.w | 39 ---------- karel/test.cc | 31 -------- 8 files changed, 61 insertions(+), 133 deletions(-) create mode 100644 karel/src/test/karel.png delete mode 100644 karel/src/test/worlds/CollectNewspaperKarel.w delete mode 100644 karel/src/test/worlds/MidpointFindingKarel.w delete mode 100644 karel/src/test/worlds/SampleQuad2.w delete mode 100644 karel/src/test/worlds/StoneMasonKarel.w delete mode 100644 karel/test.cc diff --git a/README.md b/README.md index 0f8426a..a52c4d6 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ Learn more about how to use the C++ Utils graphics class in this [interactive tu Karel the Robot is a gentle introductory programming language created by [Dr. Richard Pattis](https://www.ics.uci.edu/~pattis/) in [*Karel the Robot: A Gentle Introduction to The Art of Programming*](https://www.google.com/books/edition/_/ghcZAQAAIAAJ?hl=en&gbpv=1). The Karel language emphasizes logic while hiding tricky syntax, allowing anyone to begin making exciting graphical programs with very little background. +![karel the robot screenshot](karel/src/test/karel.png) + To create graphical Karel the Robot programs in C++, include ``karel/karel.h``. ### Usage diff --git a/karel/README.md b/karel/README.md index 436ceae..dec24ac 100644 --- a/karel/README.md +++ b/karel/README.md @@ -2,14 +2,6 @@ TODO: Port README to a ILXL guide and the CPPUtils wiki. -## History - -Karel the Robot is a gentle introductory programming language created by [Dr. Richard Pattis](https://www.ics.uci.edu/~pattis/) in [*Karel the Robot: A Gentle Introduction to The Art of Programming*](https://www.google.com/books/edition/_/ghcZAQAAIAAJ?hl=en&gbpv=1). The Karel language emphasizes logic while hiding tricky syntax, allowing students to begin making exciting graphical programs with very little background. - -Karel is named "after the Czech playwright Karel Čapek, whose 1923 play R.U.R. (Rossum’s Universal Robots) gave the word robot to the English language." ([Karel Reader](https://web.stanford.edu/class/archive/cs/cs106a/cs106a.1194/karelReader/en/chapter1.html)) - -This C++ version of Karel the Robot was created with permission from Dr. Pattis. - ## Overview Karel lives in a two-dimensional grid where (1, 1) is at the bottom left corner. Karel has a position and an orientation in the grid (north, east, south or west). @@ -53,11 +45,49 @@ bool NotFacingWest(); ``robot.h`` provides a Karel the Robot implementation in C++. This is functional programming: simply ``#include "cpputils/karel/karel.h"`` and call the Karel functions in the global namespace. +### Example program + +```cpp +#include "cpputils/karel/karel.h" + +void TurnRight() { + TurnLeft(); + TurnLeft(); + TurnLeft(); +} + +void KarelProgram() { + while(FrontIsClear()) { + Move(); + } + TurnRight(); + Move(); + TurnLeft(); + Move(); + PickBeeper(); + TurnLeft(); + TurnLeft(); + while(FrontIsClear()) { + Move(); + } + TurnRight(); + Move(); + TurnRight(); +} + +int main() { + LoadWorld("src/test/worlds/CollectNewspaperKarel.w"); + KarelProgram(); + Finish(); + return 0; +} +``` + ### Building Compile (from the directory containing cpputils) with: -``clang++ -std=c++17 main.cc cpputils/karel/karel.cc cpputils/karel/src/robot.cc cpputils/graphics/image.cc -o main -lm -lX11 -lpthread`` +``clang++ -std=c++17 test.cc cpputils/karel/karel.cc cpputils/karel/src/robot.cc cpputils/graphics/image.cc -o main -lm -lX11 -lpthread`` A few more flags are needed in Mac. @@ -74,6 +104,26 @@ void Finish(); Same as Stanford 106A. Dimension must be the first line. +`CollectNewspaperKarel.w`: + +``` +Dimension: (7, 5) +Wall: (3, 2) west +Wall: (3, 2) south +Wall: (3, 3) west +Wall: (3, 4) west +Wall: (3, 5) south +Wall: (4, 2) south +Wall: (4, 5) south +Wall: (5, 2) south +Wall: (5, 5) south +Wall: (6, 2) west +Wall: (6, 4) west +Beeper: (6, 3) 1 +Karel: (3, 4) east +Speed: 1.00 +``` + ### Unit testing See ``src/test/karel_unittest.cc`` diff --git a/karel/src/test/karel.png b/karel/src/test/karel.png new file mode 100644 index 0000000000000000000000000000000000000000..f0b9a5e6f014ac73c975f701c56cf2bd7ccdd154 GIT binary patch literal 18851 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 Nqo{VPNFMJ0e*pTS%2)sZ literal 0 HcmV?d00001 diff --git a/karel/src/test/worlds/CollectNewspaperKarel.w b/karel/src/test/worlds/CollectNewspaperKarel.w deleted file mode 100644 index 98805d7..0000000 --- a/karel/src/test/worlds/CollectNewspaperKarel.w +++ /dev/null @@ -1,15 +0,0 @@ -Dimension: (7, 5) -Wall: (3, 2) west -Wall: (3, 2) south -Wall: (3, 3) west -Wall: (3, 4) west -Wall: (3, 5) south -Wall: (4, 2) south -Wall: (4, 5) south -Wall: (5, 2) south -Wall: (5, 5) south -Wall: (6, 2) west -Wall: (6, 4) west -Beeper: (6, 3) 1 -Karel: (3, 4) east -Speed: 1.00 diff --git a/karel/src/test/worlds/MidpointFindingKarel.w b/karel/src/test/worlds/MidpointFindingKarel.w deleted file mode 100644 index 914d87e..0000000 --- a/karel/src/test/worlds/MidpointFindingKarel.w +++ /dev/null @@ -1,4 +0,0 @@ -Dimension: (9, 9) -BeeperBag: INFINITE -Karel: (1, 1) East -Speed: 0.50 diff --git a/karel/src/test/worlds/SampleQuad2.w b/karel/src/test/worlds/SampleQuad2.w deleted file mode 100644 index 3382e46..0000000 --- a/karel/src/test/worlds/SampleQuad2.w +++ /dev/null @@ -1,35 +0,0 @@ -Dimension: (13, 9) -Beeper: (1, 1) 1 -Beeper: (1, 2) 1 -Wall: (1, 4) South -Wall: (2, 4) West -Wall: (2, 5) South -Wall: (3, 4) West -Wall: (3, 4) South -Wall: (4, 4) West -Wall: (4, 5) South -Beeper: (5, 1) 1 -Wall: (5, 5) West -Beeper: (5, 5) 1 -Wall: (5, 6) South -Wall: (6, 5) West -Wall: (6, 5) South -Wall: (7, 4) West -Wall: (7, 4) South -Wall: (8, 3) West -Wall: (8, 3) South -Wall: (9, 2) West -Wall: (9, 2) South -Wall: (10, 2) West -Wall: (10, 3) South -Wall: (11, 3) West -Wall: (11, 4) South -Wall: (12, 4) West -Wall: (12, 5) South -Beeper: (13, 1) 1 -Beeper: (13, 3) 1 -Wall: (13, 4) West -Wall: (13, 4) South -BeeperBag: INFINITE -Karel: (1, 1) East -Speed: 0.5 diff --git a/karel/src/test/worlds/StoneMasonKarel.w b/karel/src/test/worlds/StoneMasonKarel.w deleted file mode 100644 index 6def864..0000000 --- a/karel/src/test/worlds/StoneMasonKarel.w +++ /dev/null @@ -1,39 +0,0 @@ -Dimension: (13, 13) -Beeper: (1, 4) 1 -Beeper: (1, 5) 1 -Wall: (1, 6) South -Wall: (2, 6) West -Wall: (2, 7) South -Wall: (3, 7) West -Wall: (3, 8) South -Wall: (4, 7) West -Wall: (4, 7) South -Beeper: (5, 1) 1 -Beeper: (5, 2) 1 -Beeper: (5, 4) 1 -Wall: (5, 6) West -Wall: (5, 6) South -Wall: (6, 6) West -Wall: (6, 7) South -Wall: (7, 7) West -Wall: (7, 8) South -Wall: (8, 7) West -Wall: (8, 7) South -Beeper: (9, 3) 1 -Beeper: (9, 5) 1 -Wall: (9, 6) West -Wall: (9, 6) South -Wall: (10, 6) West -Wall: (10, 7) South -Wall: (11, 7) West -Wall: (11, 8) South -Wall: (12, 7) West -Wall: (12, 7) South -Beeper: (13, 1) 1 -Beeper: (13, 3) 1 -Beeper: (13, 5) 1 -Wall: (13, 6) West -Wall: (13, 6) South -BeeperBag: INFINITE -Karel: (1, 1) East -Speed: 0.5 diff --git a/karel/test.cc b/karel/test.cc deleted file mode 100644 index 4b7f555..0000000 --- a/karel/test.cc +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2020 Paul Salvador Inventado and Google LLC -// -// Use of this source code is governed by an MIT-style -// license that can be found in the LICENSE file or at -// https://opensource.org/licenses/MIT. - -#include "karel.h" - -void KarelProgram() { - Move(); - Move(); - Move(); - Move(); - Move(); - PutBeeper(); - PickBeeper(); - TurnLeft(); - Move(); - PutBeeper(); - TurnLeft(); - Move(); - TurnLeft(); - TurnLeft(); -} - -int main() { - LoadWorld("src/test/worlds/1x8.w"); - KarelProgram(); - Finish(); - return 0; -} From 4c602f300f5351cc35ef01a717ce266426a6b4f7 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Tue, 8 Dec 2020 15:04:21 -0800 Subject: [PATCH 36/48] Improve unittest and fix robot left/right clear bug --- karel/README.md | 2 +- karel/src/orientation.h | 8 +- karel/src/robot.cc | 26 +++--- karel/src/test/karel_unittest.cc | 137 +++++++++++++++++++++++++++- karel/src/test/worlds/8x8.w | 4 + karel/src/test/worlds/inner_walls.w | 8 ++ karel/src/test/worlds/outer_walls.w | 8 ++ 7 files changed, 174 insertions(+), 19 deletions(-) create mode 100644 karel/src/test/worlds/inner_walls.w create mode 100644 karel/src/test/worlds/outer_walls.w diff --git a/karel/README.md b/karel/README.md index dec24ac..e2c3557 100644 --- a/karel/README.md +++ b/karel/README.md @@ -76,7 +76,7 @@ void KarelProgram() { } int main() { - LoadWorld("src/test/worlds/CollectNewspaperKarel.w"); + LoadWorld("worlds/CollectNewspaperKarel.w"); KarelProgram(); Finish(); return 0; diff --git a/karel/src/orientation.h b/karel/src/orientation.h index c12b784..a7cbd29 100644 --- a/karel/src/orientation.h +++ b/karel/src/orientation.h @@ -10,10 +10,10 @@ namespace karel { enum Orientation { - kNorth = 1, - kEast = 2, - kSouth = 3, - kWest = 4, + kNorth = 0, + kEast = 1, + kSouth = 2, + kWest = 3, }; struct PositionAndOrientation { diff --git a/karel/src/robot.cc b/karel/src/robot.cc index 7bbc2a1..0133cb8 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -315,11 +315,13 @@ bool Robot::FrontIsClear() const { } bool Robot::LeftIsClear() const { - return DirectionIsClear((Orientation)(((int)position_.orientation + 1) % 4)); + return DirectionIsClear(static_cast( + (static_cast(position_.orientation) + 1) % 4)); } bool Robot::RightIsClear() const { - return DirectionIsClear((Orientation)(((int)position_.orientation - 1) % 4)); + return DirectionIsClear(static_cast( + (static_cast(position_.orientation) - 1 + 4) % 4)); } bool Robot::FacingNorth() const { @@ -459,18 +461,18 @@ void Robot::DrawWorld() { kWhite); for (int i = 0; i <= y_dimen_; i++) { // Draw horizontal lines and indexes. - int x = pxPerCell * x_dimen_ - 1; + int x = pxPerCell * x_dimen_; int y = i * pxPerCell; image_.DrawLine(0, y, x, y, kGridColor, kWallThickness); if (i < y_dimen_) { image_.DrawText(x + fontSize / 2, y + (pxPerCell - fontSize) / 2, - std::to_string(i + 1), fontSize, kWallColor); + std::to_string(y_dimen_ - i), fontSize, kWallColor); } } for (int i = 0; i <= x_dimen_; i++) { // Draw vertical lines and indexes. int x = i * pxPerCell; - int y = pxPerCell * y_dimen_ - 1; + int y = pxPerCell * y_dimen_; image_.DrawLine(x, 0, x, y, kGridColor, kWallThickness); if (i < x_dimen_) { image_.DrawText(x + (pxPerCell - fontSize) / 2, y + fontSize / 2, @@ -505,22 +507,20 @@ void Robot::DrawWorld() { } // Draw the walls. if (cell.HasNorthWall()) { - image_.DrawLine(i * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell - 1, + image_.DrawLine(i * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell, j * pxPerCell, kWallColor, kWallThickness); } if (cell.HasSouthWall()) { - image_.DrawLine(i * pxPerCell, (j + 1) * pxPerCell - 1, - (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, - kWallColor, kWallThickness); + image_.DrawLine(i * pxPerCell, (j + 1) * pxPerCell, (i + 1) * pxPerCell, + (j + 1) * pxPerCell, kWallColor, kWallThickness); } if (cell.HasWestWall()) { image_.DrawLine(i * pxPerCell, j * pxPerCell, i * pxPerCell, - (j + 1) * pxPerCell - 1, kWallColor, kWallThickness); + (j + 1) * pxPerCell, kWallColor, kWallThickness); } if (cell.HasEastWall()) { - image_.DrawLine((i + 1) * pxPerCell - 1, j * pxPerCell, - (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, - kWallColor, kWallThickness); + image_.DrawLine((i + 1) * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell, + (j + 1) * pxPerCell, kWallColor, kWallThickness); } } } diff --git a/karel/src/test/karel_unittest.cc b/karel/src/test/karel_unittest.cc index 3e86487..a257fc6 100644 --- a/karel/src/test/karel_unittest.cc +++ b/karel/src/test/karel_unittest.cc @@ -21,8 +21,10 @@ using karel::Robot; using karel::RobotError; // Test TODOs: -// Test walls, loading maps with walls, not walking through walls +// Test loading 1 and many beepers. +// Test loading world where karel has finite beepers. // Test error states +// Test loading bad files and helpful output // Test stops taking action after reaching an error state. // Test loading beepers // Test putting/picking beepers not at (1, 1) @@ -88,6 +90,139 @@ TEST_F(KarelTest, LoadsWorld) { ASSERT_TRUE(IsBasicallyInfinite(r.GetNumBeepersInBag())); } +TEST_F(KarelTest, LoadsWorldWithOuterWalls) { + Robot& r = + Robot::InitializeInstance("worlds/outer_walls.w", /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(8, r.GetWorldWidth()); + ASSERT_EQ(8, r.GetWorldHeight()); + + // Cell at (3, 5) has only north wall. + EXPECT_TRUE(r.GetCell(3, 5).HasNorthWall()); + // Cell at (2, 6) has only east wall. + EXPECT_TRUE(r.GetCell(2, 6).HasEastWall()); + // Cell at (3, 7) has only south wall + EXPECT_TRUE(r.GetCell(3, 7).HasSouthWall()); + // Cell at (4, 6) has only west wall. + EXPECT_TRUE(r.GetCell(4, 6).HasWestWall()); + + ASSERT_EQ(Orientation::kEast, r.GetOrientation()); + ASSERT_EQ(3, r.GetXPosition()); + ASSERT_EQ(6, r.GetYPosition()); +} + +TEST_F(KarelTest, LoadsWorldWithInnerWalls) { + Robot& r = + Robot::InitializeInstance("worlds/inner_walls.w", /* enable animations */ false, + /* force initialize */ true); + // Cell at (3, 2) has all four walls. + const Cell& c = r.GetCell(3, 2); + EXPECT_TRUE(c.HasNorthWall()); + EXPECT_TRUE(c.HasEastWall()); + EXPECT_TRUE(c.HasSouthWall()); + EXPECT_TRUE(c.HasWestWall()); + + ASSERT_EQ(Orientation::kEast, r.GetOrientation()); + ASSERT_EQ(3, r.GetXPosition()); + ASSERT_EQ(2, r.GetYPosition()); +} + +TEST_F(KarelTest, CannotMoveThroughOuterWalls) { + for (int i = 0; i < 4; i++) { + Robot& r = + Robot::InitializeInstance("worlds/outer_walls.w", + /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + for (int j = 0; j < i; j++) { + TurnLeft(); + } + EXPECT_FALSE(FrontIsClear()); + EXPECT_TRUE(FrontIsBlocked()); + EXPECT_FALSE(RightIsClear()); + EXPECT_TRUE(RightIsBlocked()); + EXPECT_FALSE(LeftIsClear()); + EXPECT_TRUE(LeftIsBlocked()); + Move(); + if (i == 0) { + ASSERT_TRUE(FacingEast()); + EXPECT_EQ(RobotError::kCannotMoveEast, r.GetError()); + } else if (i == 1) { + ASSERT_TRUE(FacingNorth()); + EXPECT_EQ(RobotError::kCannotMoveNorth, r.GetError()); + } else if (i == 2) { + ASSERT_TRUE(FacingWest()); + EXPECT_EQ(RobotError::kCannotMoveWest, r.GetError()); + } else { + ASSERT_TRUE(FacingSouth()); + EXPECT_EQ(RobotError::kCannotMoveSouth, r.GetError()); + } + } +} + +TEST_F(KarelTest, CannotMoveThroughInnerWalls) { + for (int i = 0; i < 4; i++) { + Robot& r = + Robot::InitializeInstance("worlds/inner_walls.w", + /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + for (int j = 0; j < i; j++) { + TurnLeft(); + } + Move(); + EXPECT_FALSE(FrontIsClear()); + EXPECT_TRUE(FrontIsBlocked()); + EXPECT_FALSE(RightIsClear()); + EXPECT_TRUE(RightIsBlocked()); + EXPECT_FALSE(LeftIsClear()); + EXPECT_TRUE(LeftIsBlocked()); + if (i == 0) { + ASSERT_TRUE(FacingEast()); + EXPECT_EQ(RobotError::kCannotMoveEast, r.GetError()); + } else if (i == 1) { + ASSERT_TRUE(FacingNorth()); + EXPECT_EQ(RobotError::kCannotMoveNorth, r.GetError()); + } else if (i == 2) { + ASSERT_TRUE(FacingWest()); + EXPECT_EQ(RobotError::kCannotMoveWest, r.GetError()); + } else { + ASSERT_TRUE(FacingSouth()); + EXPECT_EQ(RobotError::kCannotMoveSouth, r.GetError()); + } + } +} + +TEST_F(KarelTest, CannotMoveThroughWorldEdges) { + for (int i = 0; i < 4; i++) { + Robot& r = + Robot::InitializeInstance("worlds/2x1.w", + /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + for (int j = 0; j < i; j++) { + TurnLeft(); + } + if (FacingEast()) { + Move(); + Move(); + EXPECT_EQ(RobotError::kCannotMoveEast, r.GetError()); + EXPECT_EQ(2, r.GetXPosition()); + EXPECT_EQ(1, r.GetYPosition()); + } else if (FacingNorth()) { + Move(); + EXPECT_EQ(RobotError::kCannotMoveNorth, r.GetError()); + } else if (FacingWest()) { + Move(); + EXPECT_EQ(RobotError::kCannotMoveWest, r.GetError()); + } else if (FacingSouth()) { + Move(); + EXPECT_EQ(RobotError::kCannotMoveSouth, r.GetError()); + } + } + +} + TEST_F(KarelTest, PutsAndPicksBeeper) { // Default world has no beepers, and Karel has infinite. Robot& r = Robot::GetInstance(/* enable animations */ false, diff --git a/karel/src/test/worlds/8x8.w b/karel/src/test/worlds/8x8.w index 4a48dbe..2452d23 100644 --- a/karel/src/test/worlds/8x8.w +++ b/karel/src/test/worlds/8x8.w @@ -3,6 +3,10 @@ Wall: (3, 2) west Wall: (3, 2) south Wall: (3, 2) north Wall: (3, 2) east +Wall: (3, 5) north +Wall: (4, 6) west +Wall: (3, 7) south +Wall: (2, 6) east BeeperBag: INFINITY Karel: (1, 1) East Speed: 0.75 diff --git a/karel/src/test/worlds/inner_walls.w b/karel/src/test/worlds/inner_walls.w new file mode 100644 index 0000000..56ada4f --- /dev/null +++ b/karel/src/test/worlds/inner_walls.w @@ -0,0 +1,8 @@ +Dimension: (8, 8) +Wall: (3, 2) west +Wall: (3, 2) south +Wall: (3, 2) north +Wall: (3, 2) east +BeeperBag: 0 +Karel: (3, 2) East +Speed: 0.75 diff --git a/karel/src/test/worlds/outer_walls.w b/karel/src/test/worlds/outer_walls.w new file mode 100644 index 0000000..f6d408e --- /dev/null +++ b/karel/src/test/worlds/outer_walls.w @@ -0,0 +1,8 @@ +Dimension: (8, 8) +Wall: (3, 5) north +Wall: (4, 6) west +Wall: (3, 7) south +Wall: (2, 6) east +BeeperBag: 3 +Karel: (3, 6) East +Speed: 0.75 From 7cb1e50236bc0824336e4583b834fbfa83016cea Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Tue, 8 Dec 2020 15:04:21 -0800 Subject: [PATCH 37/48] Improve unittest and fix robot left/right clear bug --- karel/README.md | 2 +- karel/src/orientation.h | 8 +- karel/src/robot.cc | 31 +- karel/src/robot.h | 6 +- karel/src/test/karel_unittest.cc | 285 +++++++++++++++++- karel/src/test/worlds/beepers.w | 8 + .../src/test/worlds/{8x8.w => inner_walls.w} | 4 +- karel/src/test/worlds/outer_walls.w | 8 + 8 files changed, 322 insertions(+), 30 deletions(-) create mode 100644 karel/src/test/worlds/beepers.w rename karel/src/test/worlds/{8x8.w => inner_walls.w} (72%) create mode 100644 karel/src/test/worlds/outer_walls.w diff --git a/karel/README.md b/karel/README.md index dec24ac..e2c3557 100644 --- a/karel/README.md +++ b/karel/README.md @@ -76,7 +76,7 @@ void KarelProgram() { } int main() { - LoadWorld("src/test/worlds/CollectNewspaperKarel.w"); + LoadWorld("worlds/CollectNewspaperKarel.w"); KarelProgram(); Finish(); return 0; diff --git a/karel/src/orientation.h b/karel/src/orientation.h index c12b784..a7cbd29 100644 --- a/karel/src/orientation.h +++ b/karel/src/orientation.h @@ -10,10 +10,10 @@ namespace karel { enum Orientation { - kNorth = 1, - kEast = 2, - kSouth = 3, - kWest = 4, + kNorth = 0, + kEast = 1, + kSouth = 2, + kWest = 3, }; struct PositionAndOrientation { diff --git a/karel/src/robot.cc b/karel/src/robot.cc index 7bbc2a1..efd47ae 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -19,7 +19,8 @@ #include "orientation.h" // TODO: Save to image file (maybe for testing) -// document +// documentation +// file error states namespace karel { @@ -98,7 +99,7 @@ void Robot::Initialize(std::string filename, bool enable_graphics, initialized_ = true; error_ = RobotError::kNoError; finished_ = false; - + world_.clear(); enable_animations_ = enable_graphics; if (!filename.size()) { @@ -315,11 +316,13 @@ bool Robot::FrontIsClear() const { } bool Robot::LeftIsClear() const { - return DirectionIsClear((Orientation)(((int)position_.orientation + 1) % 4)); + return DirectionIsClear(static_cast( + (static_cast(position_.orientation) + 1) % 4)); } bool Robot::RightIsClear() const { - return DirectionIsClear((Orientation)(((int)position_.orientation - 1) % 4)); + return DirectionIsClear(static_cast( + (static_cast(position_.orientation) - 1 + 4) % 4)); } bool Robot::FacingNorth() const { @@ -459,18 +462,18 @@ void Robot::DrawWorld() { kWhite); for (int i = 0; i <= y_dimen_; i++) { // Draw horizontal lines and indexes. - int x = pxPerCell * x_dimen_ - 1; + int x = pxPerCell * x_dimen_; int y = i * pxPerCell; image_.DrawLine(0, y, x, y, kGridColor, kWallThickness); if (i < y_dimen_) { image_.DrawText(x + fontSize / 2, y + (pxPerCell - fontSize) / 2, - std::to_string(i + 1), fontSize, kWallColor); + std::to_string(y_dimen_ - i), fontSize, kWallColor); } } for (int i = 0; i <= x_dimen_; i++) { // Draw vertical lines and indexes. int x = i * pxPerCell; - int y = pxPerCell * y_dimen_ - 1; + int y = pxPerCell * y_dimen_; image_.DrawLine(x, 0, x, y, kGridColor, kWallThickness); if (i < x_dimen_) { image_.DrawText(x + (pxPerCell - fontSize) / 2, y + fontSize / 2, @@ -505,22 +508,20 @@ void Robot::DrawWorld() { } // Draw the walls. if (cell.HasNorthWall()) { - image_.DrawLine(i * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell - 1, + image_.DrawLine(i * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell, j * pxPerCell, kWallColor, kWallThickness); } if (cell.HasSouthWall()) { - image_.DrawLine(i * pxPerCell, (j + 1) * pxPerCell - 1, - (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, - kWallColor, kWallThickness); + image_.DrawLine(i * pxPerCell, (j + 1) * pxPerCell, (i + 1) * pxPerCell, + (j + 1) * pxPerCell, kWallColor, kWallThickness); } if (cell.HasWestWall()) { image_.DrawLine(i * pxPerCell, j * pxPerCell, i * pxPerCell, - (j + 1) * pxPerCell - 1, kWallColor, kWallThickness); + (j + 1) * pxPerCell, kWallColor, kWallThickness); } if (cell.HasEastWall()) { - image_.DrawLine((i + 1) * pxPerCell - 1, j * pxPerCell, - (i + 1) * pxPerCell - 1, (j + 1) * pxPerCell - 1, - kWallColor, kWallThickness); + image_.DrawLine((i + 1) * pxPerCell, j * pxPerCell, (i + 1) * pxPerCell, + (j + 1) * pxPerCell, kWallColor, kWallThickness); } } } diff --git a/karel/src/robot.h b/karel/src/robot.h index a6c7e6d..7b552e7 100644 --- a/karel/src/robot.h +++ b/karel/src/robot.h @@ -26,8 +26,8 @@ class Robot { /** * Get the Robot singleton. Initializes it with default values if it isn't * already initialized. Set |enable_graphics| to false for testing, which - * will disable animations. Use |force_initialize| for testing which resets - * the singleton state. + * will disable animations. Use |force_initialize| only for testing which + * resets the singleton state. */ static karel::Robot& GetInstance(bool enable_graphics = true, bool force_initialize = false); @@ -35,7 +35,7 @@ class Robot { /** * Get the Robot singleton and intialize it from a file. Set |enable_graphics| * to false for testing, which will disable animations. Use |force_initialize| - * for testing which resets the singleton state. + * only for testing which resets the singleton state. */ static karel::Robot& InitializeInstance(std::string filename, bool enable_graphics = true, diff --git a/karel/src/test/karel_unittest.cc b/karel/src/test/karel_unittest.cc index 3e86487..65b128f 100644 --- a/karel/src/test/karel_unittest.cc +++ b/karel/src/test/karel_unittest.cc @@ -21,11 +21,7 @@ using karel::Robot; using karel::RobotError; // Test TODOs: -// Test walls, loading maps with walls, not walking through walls -// Test error states -// Test stops taking action after reaching an error state. -// Test loading beepers -// Test putting/picking beepers not at (1, 1) +// Test loading bad files and helpful output bool IsBasicallyInfinite(int number) { return number > std::numeric_limits::max() / 2; @@ -88,6 +84,167 @@ TEST_F(KarelTest, LoadsWorld) { ASSERT_TRUE(IsBasicallyInfinite(r.GetNumBeepersInBag())); } +TEST_F(KarelTest, LoadsWorldWithInfinityBeepers) { + // INFINITY vs INFINITE + Robot& r = Robot::InitializeInstance("worlds/8x1.w", + /* enable animations */ false, + /* force initialize */ true); + ASSERT_TRUE(IsBasicallyInfinite(r.GetNumBeepersInBag())); +} + +TEST_F(KarelTest, LoadsWorldWithNoBeepersInBag) { + Robot& r = Robot::InitializeInstance("worlds/beepers.w", + /* enable animations */ false, + /* force initialize */ true); + EXPECT_EQ(0, r.GetNumBeepersInBag()); +} + +TEST_F(KarelTest, LoadsWorldWithFiniteBeepers) { + Robot& r = Robot::InitializeInstance("worlds/inner_walls.w", + /* enable animations */ false, + /* force initialize */ true); + EXPECT_EQ(42, r.GetNumBeepersInBag()); +} + +TEST_F(KarelTest, LoadsWorldWithBeepersInCells) { + Robot& r = Robot::InitializeInstance("worlds/beepers.w", + /* enable animations */ false, + /* force initialize */ true); + EXPECT_EQ(1, r.GetCell(2, 1).GetNumBeepers()); + EXPECT_EQ(2, r.GetCell(3, 1).GetNumBeepers()); + EXPECT_EQ(3, r.GetCell(3, 2).GetNumBeepers()); + EXPECT_EQ(4, r.GetCell(4, 4).GetNumBeepers()); +} + +TEST_F(KarelTest, LoadsWorldWithOuterWalls) { + Robot& r = Robot::InitializeInstance("worlds/outer_walls.w", + /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(8, r.GetWorldWidth()); + ASSERT_EQ(8, r.GetWorldHeight()); + + // Cell at (3, 5) has only north wall. + EXPECT_TRUE(r.GetCell(3, 5).HasNorthWall()); + // Cell at (2, 6) has only east wall. + EXPECT_TRUE(r.GetCell(2, 6).HasEastWall()); + // Cell at (3, 7) has only south wall + EXPECT_TRUE(r.GetCell(3, 7).HasSouthWall()); + // Cell at (4, 6) has only west wall. + EXPECT_TRUE(r.GetCell(4, 6).HasWestWall()); + + ASSERT_EQ(Orientation::kEast, r.GetOrientation()); + ASSERT_EQ(3, r.GetXPosition()); + ASSERT_EQ(6, r.GetYPosition()); +} + +TEST_F(KarelTest, LoadsWorldWithInnerWalls) { + Robot& r = Robot::InitializeInstance("worlds/inner_walls.w", + /* enable animations */ false, + /* force initialize */ true); + // Cell at (3, 2) has all four walls. + const Cell& c = r.GetCell(3, 2); + EXPECT_TRUE(c.HasNorthWall()); + EXPECT_TRUE(c.HasEastWall()); + EXPECT_TRUE(c.HasSouthWall()); + EXPECT_TRUE(c.HasWestWall()); + + ASSERT_EQ(Orientation::kEast, r.GetOrientation()); + ASSERT_EQ(3, r.GetXPosition()); + ASSERT_EQ(2, r.GetYPosition()); +} + +TEST_F(KarelTest, CannotMoveThroughOuterWalls) { + for (int i = 0; i < 4; i++) { + Robot& r = Robot::InitializeInstance("worlds/outer_walls.w", + /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + for (int j = 0; j < i; j++) { + TurnLeft(); + } + EXPECT_FALSE(FrontIsClear()); + EXPECT_TRUE(FrontIsBlocked()); + EXPECT_FALSE(RightIsClear()); + EXPECT_TRUE(RightIsBlocked()); + EXPECT_FALSE(LeftIsClear()); + EXPECT_TRUE(LeftIsBlocked()); + Move(); + if (i == 0) { + ASSERT_TRUE(FacingEast()); + EXPECT_EQ(RobotError::kCannotMoveEast, r.GetError()); + } else if (i == 1) { + ASSERT_TRUE(FacingNorth()); + EXPECT_EQ(RobotError::kCannotMoveNorth, r.GetError()); + } else if (i == 2) { + ASSERT_TRUE(FacingWest()); + EXPECT_EQ(RobotError::kCannotMoveWest, r.GetError()); + } else { + ASSERT_TRUE(FacingSouth()); + EXPECT_EQ(RobotError::kCannotMoveSouth, r.GetError()); + } + } +} + +TEST_F(KarelTest, CannotMoveThroughInnerWalls) { + for (int i = 0; i < 4; i++) { + Robot& r = Robot::InitializeInstance("worlds/inner_walls.w", + /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + for (int j = 0; j < i; j++) { + TurnLeft(); + } + Move(); + EXPECT_FALSE(FrontIsClear()); + EXPECT_TRUE(FrontIsBlocked()); + EXPECT_FALSE(RightIsClear()); + EXPECT_TRUE(RightIsBlocked()); + EXPECT_FALSE(LeftIsClear()); + EXPECT_TRUE(LeftIsBlocked()); + if (i == 0) { + ASSERT_TRUE(FacingEast()); + EXPECT_EQ(RobotError::kCannotMoveEast, r.GetError()); + } else if (i == 1) { + ASSERT_TRUE(FacingNorth()); + EXPECT_EQ(RobotError::kCannotMoveNorth, r.GetError()); + } else if (i == 2) { + ASSERT_TRUE(FacingWest()); + EXPECT_EQ(RobotError::kCannotMoveWest, r.GetError()); + } else { + ASSERT_TRUE(FacingSouth()); + EXPECT_EQ(RobotError::kCannotMoveSouth, r.GetError()); + } + } +} + +TEST_F(KarelTest, CannotMoveThroughWorldEdges) { + for (int i = 0; i < 4; i++) { + Robot& r = Robot::InitializeInstance("worlds/2x1.w", + /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + for (int j = 0; j < i; j++) { + TurnLeft(); + } + if (FacingEast()) { + Move(); + Move(); + EXPECT_EQ(RobotError::kCannotMoveEast, r.GetError()); + EXPECT_EQ(2, r.GetXPosition()); + EXPECT_EQ(1, r.GetYPosition()); + } else if (FacingNorth()) { + Move(); + EXPECT_EQ(RobotError::kCannotMoveNorth, r.GetError()); + } else if (FacingWest()) { + Move(); + EXPECT_EQ(RobotError::kCannotMoveWest, r.GetError()); + } else if (FacingSouth()) { + Move(); + EXPECT_EQ(RobotError::kCannotMoveSouth, r.GetError()); + } + } +} + TEST_F(KarelTest, PutsAndPicksBeeper) { // Default world has no beepers, and Karel has infinite. Robot& r = Robot::GetInstance(/* enable animations */ false, @@ -111,6 +268,84 @@ TEST_F(KarelTest, PutsAndPicksBeeper) { } } +TEST_F(KarelTest, PicksManyBeepers) { + Robot& r = Robot::InitializeInstance("worlds/beepers.w", + /* enable animations */ false, + /* force initialize */ true); + EXPECT_FALSE(BeepersPresent()); + EXPECT_TRUE(NoBeepersInBag()); + EXPECT_EQ(0, r.GetNumBeepersInBag()); + + Move(); + // One beeper. + EXPECT_TRUE(BeepersPresent()); + EXPECT_FALSE(NoBeepersPresent()); + + PickBeeper(); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + EXPECT_TRUE(HasBeepersInBag()); + EXPECT_FALSE(NoBeepersInBag()); + EXPECT_EQ(1, r.GetNumBeepersInBag()); + EXPECT_FALSE(BeepersPresent()); + EXPECT_TRUE(NoBeepersPresent()); + + Move(); + // Two beepers. + EXPECT_TRUE(BeepersPresent()); + EXPECT_FALSE(NoBeepersPresent()); + + PickBeeper(); + EXPECT_TRUE(BeepersPresent()); + EXPECT_FALSE(NoBeepersPresent()); + + PickBeeper(); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + EXPECT_TRUE(HasBeepersInBag()); + EXPECT_FALSE(NoBeepersInBag()); + EXPECT_EQ(3, r.GetNumBeepersInBag()); + EXPECT_FALSE(BeepersPresent()); + EXPECT_TRUE(NoBeepersPresent()); + + TurnLeft(); + Move(); + // Three beepers. + EXPECT_TRUE(BeepersPresent()); + EXPECT_FALSE(NoBeepersPresent()); + + PickBeeper(); + EXPECT_TRUE(BeepersPresent()); + EXPECT_FALSE(NoBeepersPresent()); + + PickBeeper(); + EXPECT_TRUE(BeepersPresent()); + EXPECT_FALSE(NoBeepersPresent()); + + PickBeeper(); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + EXPECT_TRUE(HasBeepersInBag()); + EXPECT_FALSE(NoBeepersInBag()); + EXPECT_EQ(6, r.GetNumBeepersInBag()); + EXPECT_FALSE(BeepersPresent()); + EXPECT_TRUE(NoBeepersPresent()); +} + +TEST_F(KarelTest, CannotPickMissingBeeper) { + Robot& r = Robot::GetInstance(/* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + PickBeeper(); + ASSERT_EQ(RobotError::kCannotPickBeeper, r.GetError()); +} + +TEST_F(KarelTest, CannotPutWhenBeeperBagEmpty) { + Robot& r = Robot::InitializeInstance("worlds/beepers.w", + /* enable animations */ false, + /* force initialize */ true); + ASSERT_EQ(RobotError::kNoError, r.GetError()); + PutBeeper(); + ASSERT_EQ(RobotError::kCannotPutBeeper, r.GetError()); +} + TEST_F(KarelTest, TurnsLeft) { Robot& r = Robot::GetInstance(/* enable animations */ false, /* force initialize */ true); @@ -211,6 +446,46 @@ TEST_F(KarelTest, MovesNorthAndSouth) { } } +TEST_F(KarelTest, DoesNotTakeActionAfterErrorState) { + Robot& r = + Robot::InitializeInstance("worlds/beepers.w", /* enable graphics */ false, + /* force initialize */ true); + EXPECT_EQ(Orientation::kEast, r.GetOrientation()); + EXPECT_EQ(1, r.GetXPosition()); + EXPECT_EQ(1, r.GetYPosition()); + EXPECT_FALSE(BeepersPresent()); + EXPECT_EQ(0, r.GetNumBeepersInBag()); + EXPECT_EQ(RobotError::kNoError, r.GetError()); + + // Create an error by picking a non-existant beeper. + PickBeeper(); + EXPECT_EQ(RobotError::kCannotPickBeeper, r.GetError()); + EXPECT_EQ(Orientation::kEast, r.GetOrientation()); + EXPECT_EQ(1, r.GetXPosition()); + EXPECT_EQ(1, r.GetYPosition()); + EXPECT_FALSE(BeepersPresent()); + // Didn't pick either. + EXPECT_EQ(0, r.GetNumBeepersInBag()); + + // Now it cannot move or turn and the error state stays as it was before. + Move(); + EXPECT_EQ(RobotError::kCannotPickBeeper, r.GetError()); + EXPECT_EQ(Orientation::kEast, r.GetOrientation()); + EXPECT_EQ(1, r.GetXPosition()); + EXPECT_EQ(1, r.GetYPosition()); + + TurnLeft(); + EXPECT_EQ(RobotError::kCannotPickBeeper, r.GetError()); + EXPECT_EQ(Orientation::kEast, r.GetOrientation()); + EXPECT_EQ(1, r.GetXPosition()); + EXPECT_EQ(1, r.GetYPosition()); + + PutBeeper(); + EXPECT_EQ(RobotError::kCannotPickBeeper, r.GetError()); + EXPECT_FALSE(BeepersPresent()); + EXPECT_EQ(0, r.GetNumBeepersInBag()); +} + int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); diff --git a/karel/src/test/worlds/beepers.w b/karel/src/test/worlds/beepers.w new file mode 100644 index 0000000..f2acc30 --- /dev/null +++ b/karel/src/test/worlds/beepers.w @@ -0,0 +1,8 @@ +Dimension: (8, 8) +Beeper: (2, 1) 1 +Beeper: (3, 1) 2 +Beeper: (3, 2) 3 +Beeper: (4, 4) 4 +BeeperBag: 0 +Karel: (1, 1) East +Speed: 0.75 diff --git a/karel/src/test/worlds/8x8.w b/karel/src/test/worlds/inner_walls.w similarity index 72% rename from karel/src/test/worlds/8x8.w rename to karel/src/test/worlds/inner_walls.w index 4a48dbe..64ce4a2 100644 --- a/karel/src/test/worlds/8x8.w +++ b/karel/src/test/worlds/inner_walls.w @@ -3,6 +3,6 @@ Wall: (3, 2) west Wall: (3, 2) south Wall: (3, 2) north Wall: (3, 2) east -BeeperBag: INFINITY -Karel: (1, 1) East +BeeperBag: 42 +Karel: (3, 2) East Speed: 0.75 diff --git a/karel/src/test/worlds/outer_walls.w b/karel/src/test/worlds/outer_walls.w new file mode 100644 index 0000000..f6d408e --- /dev/null +++ b/karel/src/test/worlds/outer_walls.w @@ -0,0 +1,8 @@ +Dimension: (8, 8) +Wall: (3, 5) north +Wall: (4, 6) west +Wall: (3, 7) south +Wall: (2, 6) east +BeeperBag: 3 +Karel: (3, 6) East +Speed: 0.75 From 8c0e6665000befa2a4373cbacddbde311de5f8b2 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 10 Dec 2020 11:57:41 -0800 Subject: [PATCH 38/48] Add a11y features --- README.md | 8 ++- karel/karel.cc | 10 ++++ karel/karel.h | 18 ++++++ karel/src/cell.h | 13 +++- karel/src/error.h | 3 + karel/src/orientation.h | 7 +++ karel/src/robot.cc | 126 ++++++++++++++++++++++++++++++++++----- karel/src/robot.h | 58 +++++++++++++----- karel/src/test/karel.csv | 13 ++++ karel/src/test/karel.png | Bin 18851 -> 19361 bytes 10 files changed, 223 insertions(+), 33 deletions(-) create mode 100644 karel/src/test/karel.csv diff --git a/README.md b/README.md index a52c4d6..02a210e 100644 --- a/README.md +++ b/README.md @@ -20,10 +20,16 @@ Karel the Robot is a gentle introductory programming language created by [Dr. Ri ![karel the robot screenshot](karel/src/test/karel.png) -To create graphical Karel the Robot programs in C++, include ``karel/karel.h``. +### Accessibility + +Karel programs may export the world to CSV after each action. This may be helpful to screen-reader users. + +Karel programs may prompt before each robot action. This may be helpful for users who need to control the speed of execution. ### Usage +To create Karel the Robot programs in C++, include ``karel/karel.h``. + (TODO): Learn more about how to use the C++ Utils Karel the Robot functions in this [interactive tutorial](https://github.com/ILXL-guides/intro-to-karel) ## For developers and instructors diff --git a/karel/karel.cc b/karel/karel.cc index 2cbd515..17f6636 100644 --- a/karel/karel.cc +++ b/karel/karel.cc @@ -105,3 +105,13 @@ void Finish() { karel::Robot& r = karel::Robot::GetInstance(); r.Finish(); } + +void EnableCSVOutput() { + karel::Robot& r = karel::Robot::GetInstance(); + r.EnableCSVOutput(); +} + +void EnablePromptBeforeAction() { + karel::Robot& r = karel::Robot::GetInstance(); + r.EnablePromptBeforeAction(); +} diff --git a/karel/karel.h b/karel/karel.h index d53d5f3..9970266 100644 --- a/karel/karel.h +++ b/karel/karel.h @@ -149,3 +149,21 @@ void LoadWorld(std::string filename); * do any more actions. */ void Finish(); + +///////////////////////////////////////////////////////////////////////////// +// Methods for improving the accessibility of Karel // +///////////////////////////////////////////////////////////////////////////// + +/** + * Enables Karel CSV output. This will print Karel's world to a CSV between + * each action, and prompt to continue to the next action. May be used by + * screen-reader users to inspect Karel's world. + */ +void EnableCSVOutput(); + +/** + * Causes Karel to wait between each action function (Move, TurnLeft, + * PutBeeper, PickBeeper) until the user enters input into the terminal to + * proceed. + */ +void EnablePromptBeforeAction(); diff --git a/karel/src/cell.h b/karel/src/cell.h index 976dd89..faa14ba 100644 --- a/karel/src/cell.h +++ b/karel/src/cell.h @@ -11,16 +11,25 @@ namespace karel { -// Class representing a cell in Karel's world, including a count of beepers -// and whether or not there are walls. +/** + * Class representing a cell in Karel's world, including a count of beepers + * and whether or not there are walls. + */ class Cell { public: int GetNumBeepers() const { return num_beepers_; } void SetNumBeepers(int beepers) { num_beepers_ = beepers; } + bool HasNorthWall() const { return north_wall_; } bool HasEastWall() const { return east_wall_; } bool HasSouthWall() const { return south_wall_; } bool HasWestWall() const { return west_wall_; } + + /** + * Adds a wall on the given side of the cell. For example, a north wall would + * be at the top of the cell, and an east wall would be on the right of the + * cell. + */ void AddWall(Orientation wall_orientation) { switch (wall_orientation) { case kNorth: diff --git a/karel/src/error.h b/karel/src/error.h index e5df255..d8de672 100644 --- a/karel/src/error.h +++ b/karel/src/error.h @@ -11,6 +11,9 @@ namespace karel { +/** + * Defines an error state for Karel. kNoError means that there is no error. + */ enum RobotError { kNoError = 0, kCannotMoveNorth, diff --git a/karel/src/orientation.h b/karel/src/orientation.h index a7cbd29..3c12530 100644 --- a/karel/src/orientation.h +++ b/karel/src/orientation.h @@ -9,6 +9,10 @@ namespace karel { +/** + * Defines an orientation in the grid using compass directions: north is + * up, east is right, west is down, and south is left. + */ enum Orientation { kNorth = 0, kEast = 1, @@ -16,6 +20,9 @@ enum Orientation { kWest = 3, }; +/** + * Defines a position and orientation in the world grid. + */ struct PositionAndOrientation { int x = 0; int y = 0; diff --git a/karel/src/robot.cc b/karel/src/robot.cc index efd47ae..406fe62 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -99,8 +99,12 @@ void Robot::Initialize(std::string filename, bool enable_graphics, initialized_ = true; error_ = RobotError::kNoError; finished_ = false; + if (force_initialize) { + prompt_between_actions_ = false; + enable_csv_output_ = false; + } world_.clear(); - enable_animations_ = enable_graphics; + enable_graphics_ = enable_graphics; if (!filename.size()) { // No file. Default 10x10 blank world with no walls and no beepers. @@ -205,13 +209,13 @@ void Robot::Initialize(std::string filename, bool enable_graphics, y_dimen_ * pxPerCell + margin); DrawWorld(); - DrawRobot(position_.x * pxPerCell + pxPerCell / 2, - position_.y * pxPerCell + pxPerCell / 2); - Show(kLongDuration); + DrawRobot(); + Show(/* long duration */ true); } void Robot::Move() { if (finished_) return; + PromptBeforeActionIfNeeded(); switch (position_.orientation) { case Orientation::kNorth: if (position_.y == 0) { @@ -258,6 +262,7 @@ void Robot::Move() { void Robot::TurnLeft() { if (finished_) return; + PromptBeforeActionIfNeeded(); switch (position_.orientation) { case Orientation::kNorth: position_.orientation = Orientation::kWest; @@ -274,11 +279,12 @@ void Robot::TurnLeft() { } DrawWorld(); DrawRobot(); - Show(kLongDuration); + Show(/* long duration */ true); } void Robot::PutBeeper() { if (finished_) return; + PromptBeforeActionIfNeeded(); if (!HasBeepersInBag()) { Error(RobotError::kCannotPutBeeper); return; @@ -288,11 +294,12 @@ void Robot::PutBeeper() { cell.SetNumBeepers(cell.GetNumBeepers() + 1); DrawWorld(); DrawRobot(); - Show(kLongDuration); + Show(/* long duration */ true); } void Robot::PickBeeper() { if (finished_) return; + PromptBeforeActionIfNeeded(); if (!BeepersPresent()) { Error(RobotError::kCannotPickBeeper); return; @@ -302,7 +309,7 @@ void Robot::PickBeeper() { beeper_count_++; DrawWorld(); DrawRobot(); - Show(kLongDuration); + Show(/* long duration */ true); } bool Robot::HasBeepersInBag() const { return beeper_count_ > 0; } @@ -344,11 +351,27 @@ bool Robot::FacingWest() const { void Robot::Finish() { if (finished_) return; finished_ = true; - if (enable_animations_) { + if (enable_csv_output_) { + WriteWorldCSV(); + std::cout << "Finished. ctrl+c to exit." << std::endl << std::flush; + } + if (enable_graphics_) { image_.ShowUntilClosed("Karel's World"); } } +void Robot::EnablePromptBeforeAction() { prompt_between_actions_ = true; } + +void Robot::EnableCSVOutput() { + enable_csv_output_ = true; + prompt_between_actions_ = true; + if (initialized_) { + // If we are already initialized write the world CSV. The initial image + // has already been shown. + WriteWorldCSV(); + } +} + Orientation Robot::GetOrientation() const { return position_.orientation; } int Robot::GetXPosition() const { return position_.x + 1; } @@ -367,11 +390,79 @@ int Robot::GetWorldHeight() const { return y_dimen_; } RobotError Robot::GetError() const { return error_; } -void Robot::Show(int duration) { +void Robot::Show(bool long_duration) { if (finished_) return; - if (enable_animations_) { - image_.ShowForMs(duration * speed_, "Karel's World"); + if (long_duration && enable_csv_output_) { + WriteWorldCSV(); + } + if (enable_graphics_) { + image_.ShowForMs((long_duration ? kLongDuration : kShortDuration) * speed_, + "Karel's World"); + } +} + +void Robot::WriteWorldCSV() { + const std::string filename = "karel.csv"; + std::ofstream csv; + csv.open(filename); + if (!csv.is_open()) { + std::cout << "Error: Could not open " << filename + << " to write Karel's world. Perhaps it is opened by another " + "application?" + << std::endl + << std::flush; + return; + } + for (int y = 0; y < y_dimen_; y++) { + for (int x = 0; x < x_dimen_; x++) { + // print contents walls. + Cell& cell = world_[x][y]; + csv << "\""; + if (x == position_.x && y == position_.y) { + if (position_.orientation == Orientation::kNorth) { + csv << "kn "; + } else if (position_.orientation == Orientation::kEast) { + csv << "ke "; + } else if (position_.orientation == Orientation::kSouth) { + csv << "ks "; + } else { + csv << "kw "; + } + } + if (cell.GetNumBeepers() > 0) { + csv << "b "; + } else { + csv << "o "; + } + csv << "(" << x + 1 << "," << y_dimen_ - y << ")\","; + if (x < x_dimen_ - 1 && + (cell.HasEastWall() || world_[x + 1][y].HasWestWall())) { + csv << "w,"; + } else { + csv << ","; + } + } + csv << std::endl; + if (y < y_dimen_ - 1) { + for (int x = 0; x < x_dimen_; x++) { + // print bottom walls and next top walls + if (world_[x][y].HasSouthWall() || world_[x][y + 1].HasNorthWall()) { + csv << "w,,"; + } else { + csv << ",,"; + } + } + } + csv << std::endl; } + csv << std::endl; + csv << "symbol,kn,ke,ks,kw,o,b,w,\"(x,y)\"\n"; + csv << "meaning,Karel facing north,Karel facing east, Karel facing south, " + "Karel facing west,empty cell,cell with at least one beeper,wall " + "between cells,cell coordinates\n"; + // TODO: Write error state and a key. + csv.close(); + std::cout << "World state written to " << filename << std::endl << std::flush; } void Robot::Error(RobotError error) { @@ -597,18 +688,25 @@ void Robot::DrawRobot(int pixel_x, int pixel_y) { } void Robot::AnimateMove(int next_x, int next_y) { - int steps = enable_animations_ ? kNumAnimationSteps : 0; + int steps = enable_graphics_ ? kNumAnimationSteps : 0; for (int i = 1; i <= steps; i++) { DrawWorld(); double fraction = i * 1.0 / steps; double x = position_.x * (1 - fraction) + next_x * fraction; double y = position_.y * (1 - fraction) + next_y * fraction; DrawRobot(x * pxPerCell + pxPerCell / 2, y * pxPerCell + pxPerCell / 2); - Show(kShortDuration); + Show(/* short duration */ false); } position_.x = next_x; position_.y = next_y; - Show(kLongDuration); + Show(/* long duration */ true); +} + +void Robot::PromptBeforeActionIfNeeded() { + if (!prompt_between_actions_) return; + std::cout << "Paused. Enter any character to continue: " << std::flush; + std::string value; + std::cin >> value; } // Note that the orientation is not populated. This is just a helper to diff --git a/karel/src/robot.h b/karel/src/robot.h index 7b552e7..a9aab52 100644 --- a/karel/src/robot.h +++ b/karel/src/robot.h @@ -4,11 +4,7 @@ // license that can be found in the LICENSE file or at // https://opensource.org/licenses/MIT. -#include - #include -#include -#include #include #include "../../graphics/image.h" @@ -45,10 +41,10 @@ class Robot { Robot(const Robot&) = delete; karel::Robot& operator=(const Robot&) = delete; - ///////////////////////////////////////////////////////// - // Methods for core Karel functionality // - // These methods allow interaction with Karel. // - ///////////////////////////////////////////////////////// + /////////////////////////////////////////////////////////// + // Methods for core Karel functionality // + // These methods allow interaction with Karel. // + /////////////////////////////////////////////////////////// /** * Move Karel forward one step. Results in an error if Karel cannot move @@ -129,10 +125,24 @@ class Robot { */ void Finish(); - ///////////////////////////////////////////////////////////////////// - // Methods for tests. Tests should access Robot with GetInstance // - // and may inspect its state with the following methods. // - ///////////////////////////////////////////////////////////////////// + /** + * Causes Robot to wait between each action function (Move, TurnLeft, + * PutBeeper, PickBeeper) until the user enters input into the terminal to + * proceed. This may be used to improve the robot's accessibility. + */ + void EnablePromptBeforeAction(); + + /** + * Enables Robot CSV output. This will print Karel's world to a CSV between + * each action, and prompt to continue to the next action. May be used by + * screen-reader users to inspect Karel's world. + */ + void EnableCSVOutput(); + + /////////////////////////////////////////////////////////////////////// + // Methods for tests. Tests should access Robot with GetInstance // + // and may inspect its state with the following methods. // + /////////////////////////////////////////////////////////////////////// /** * Gets the orientation that Karel is facing. May be simpler to use this in @@ -193,9 +203,16 @@ class Robot { bool force_initialize); /** - * Shows karel's world, blocking for the given |duration| in milliseconds. + * Shows karel's world, blocking for a long duration or a short duration. + * If long_duration, may also print to the terminal when EnableTerminalOutput + * was called. */ - void Show(int duration); + void Show(bool long_duration); + + /** + * Writes the world to a CSV file. + */ + void WriteWorldCSV(); /** * Displays an error and finishes the program. @@ -219,6 +236,8 @@ class Robot { void AnimateMove(int next_x, int next_y); + void PromptBeforeActionIfNeeded(); + /** * Helper method to parse position from the next item in a file stream. * Note that the orientation is not populated. This is just a helper to @@ -234,9 +253,16 @@ class Robot { */ PositionAndOrientation ParsePositionAndOrientation(std::fstream& file) const; - // Whether animations are enabled. They should probably be disabled for + // Whether graphics are enabled. They should probably be disabled for // testing. - bool enable_animations_ = true; + bool enable_graphics_ = true; + + // Whether to prompt the user to continue between actions. May be useful as + // an accessibility feature. + bool prompt_between_actions_ = false; + + // Whether to enable terminal output -- a text-based display of Karel's world. + bool enable_csv_output_ = false; // Speed multiplier for animation. double speed_ = 1.0; diff --git a/karel/src/test/karel.csv b/karel/src/test/karel.csv new file mode 100644 index 0000000..d14b508 --- /dev/null +++ b/karel/src/test/karel.csv @@ -0,0 +1,13 @@ +"o (1,5)",,"o (2,5)",,"o (3,5)",,"o (4,5)",,"o (5,5)",,"o (6,5)",,"o (7,5)",, +,,,,w,,w,,w,,,,,, +"o (1,4)",,"o (2,4)",w,"o (3,4)",,"ke o (4,4)",,"o (5,4)",w,"o (6,4)",,"o (7,4)",, +,,,,,,,,,,,,,, +"o (1,3)",,"o (2,3)",w,"o (3,3)",,"o (4,3)",,"o (5,3)",,"b (6,3)",,"o (7,3)",, +,,,,,,,,,,,,,, +"o (1,2)",,"o (2,2)",w,"o (3,2)",,"o (4,2)",,"o (5,2)",w,"o (6,2)",,"o (7,2)",, +,,,,w,,w,,w,,,,,, +"o (1,1)",,"o (2,1)",,"o (3,1)",,"o (4,1)",,"o (5,1)",,"o (6,1)",,"o (7,1)",, + + +key,Karel facing north,Karel facing east, Karel facing south, Karel facing west,empty cell,cell with at least one beeper,wall between cells,cell coordinates +,kn,ke,ks,kw,o,b,w,"(x,y)" diff --git a/karel/src/test/karel.png b/karel/src/test/karel.png index f0b9a5e6f014ac73c975f701c56cf2bd7ccdd154..ef274d5d52deeca7becfd32f33da73596a9d6df0 100644 GIT binary patch literal 19361 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 Nqo{VPNFMJ0e*pTS%2)sZ From 8ddd55890d9857c3529c0f83962f9c7678f01065 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Thu, 10 Dec 2020 16:26:47 -0800 Subject: [PATCH 39/48] Better error handling for files --- karel/src/robot.cc | 93 +++++++++++++++++++++++++++++++++------------- karel/src/robot.h | 4 +- 2 files changed, 70 insertions(+), 27 deletions(-) diff --git a/karel/src/robot.cc b/karel/src/robot.cc index 406fe62..6048813 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -65,6 +65,35 @@ const graphics::Color kWallColor(50, 50, 50); const graphics::Color kGridColor(220, 220, 220); const graphics::Color kErrorColor(173, 0, 35); +// Helper methods +void ParseWorldFileError(std::string error_text, int line_number) { + if (line_number > 0) { + error_text += " (line " + std::to_string(line_number) + ")"; + } + std::cout << error_text << std::endl << std::flush; + throw error_text; +} + +void CheckParsePosition(char open_paren, char comma, char closed_paren, + int line_number) { + if (open_paren != '(') { + ParseWorldFileError("Invalid syntax: expected open parenthesis but found " + + std::string(1, open_paren), + line_number); + } + if (comma != ',') { + ParseWorldFileError( + "Invalid syntax: expected a comma but found " + std::string(1, comma), + line_number); + } + if (closed_paren != ')') { + ParseWorldFileError( + "Invalid syntax: expected closed parenthesis but found " + + std::string(1, closed_paren), + line_number); + } +} + } // namespace Robot::Robot() {} @@ -96,8 +125,6 @@ void Robot::Initialize(std::string filename, bool enable_graphics, bool force_initialize) { // Ensure only intitialized once unless |force_initialize| is true. if (initialized_ && !force_initialize) return; - initialized_ = true; - error_ = RobotError::kNoError; finished_ = false; if (force_initialize) { prompt_between_actions_ = false; @@ -124,13 +151,13 @@ void Robot::Initialize(std::string filename, bool enable_graphics, try { world_file.open(filename); } catch (std::ifstream::failure e) { - throw std::string("Error opening file"); + ParseWorldFileError("Error opening file " + filename, -1); } if (!world_file.is_open()) { - // TODO: Replace throwables with better error codes? - throw std::string("Error opening file"); + ParseWorldFileError("Error opening file " + filename, -1); } std::string line; + int line_number = 1; const std::string dimension_prefix = "Dimension:"; const std::string beeper_prefix = "Beeper:"; @@ -143,15 +170,19 @@ void Robot::Initialize(std::string filename, bool enable_graphics, char open_paren, comma, closed_paren; if (!(world_file >> line_prefix >> open_paren >> x_dimen_ >> comma >> y_dimen_ >> closed_paren)) { - throw std::string("Could not find Dimension in first line"); + ParseWorldFileError( + "Could not parse world dimensions from the first line", line_number); } if (line_prefix != dimension_prefix) { - throw std::string("Could not find Dimension in first line"); + ParseWorldFileError("Could not find \"Dimension:\" in first line", + line_number); } + CheckParsePosition(open_paren, comma, closed_paren, line_number); if (x_dimen_ < 1 || y_dimen_ < 1) { - throw std::string( + ParseWorldFileError( "Cannot load a world less than 1 cell wide or less than 1 cell " - "tall"); + "tall", + line_number); } for (int i = 0; i < x_dimen_; i++) { world_.push_back(std::vector()); @@ -163,20 +194,23 @@ void Robot::Initialize(std::string filename, bool enable_graphics, // Read the rest of the file to get beepers and walls. // TODO: May need better error checking. while (world_file >> line_prefix) { + line_number++; if (line_prefix == wall_prefix) { - PositionAndOrientation wall = ParsePositionAndOrientation(world_file); + PositionAndOrientation wall = + ParsePositionAndOrientation(world_file, line_number); world_[wall.x][wall.y].AddWall(wall.orientation); } else if (line_prefix == beeper_prefix) { - PositionAndOrientation beeper = ParsePosition(world_file); + PositionAndOrientation beeper = ParsePosition(world_file, line_number); int count; if (!(world_file >> count)) { - throw std::string("Error reading Beeper count"); + ParseWorldFileError("Error reading Beeper count", line_number); } world_[beeper.x][beeper.y].SetNumBeepers(count); } else if (line_prefix == bag_prefix) { std::string beepers; if (!(world_file >> beepers)) { - throw std::string("Error reading quantity for BeeperBag"); + ParseWorldFileError("Error reading quantity for BeeperBag", + line_number); } if (beepers == "INFINITY" || beepers == "INFINITE") { beeper_count_ = std::numeric_limits::max(); @@ -184,21 +218,22 @@ void Robot::Initialize(std::string filename, bool enable_graphics, try { beeper_count_ = stoi(beepers); } catch (std::invalid_argument& e) { - throw std::string("Unknown BeeperBag quanity, " + beepers); + ParseWorldFileError("Unknown BeeperBag quanity, " + beepers, + line_number); } } } else if (line_prefix == karel_prefix) { - position_ = ParsePositionAndOrientation(world_file); + position_ = ParsePositionAndOrientation(world_file, line_number); } else if (line_prefix == speed_prefix) { if (!(world_file >> speed_)) { - throw std::string("Error reading Speed"); + ParseWorldFileError("Error reading Speed", line_number); } if (speed_ < 0) { - throw std::string("Speed must be greater than 0"); + ParseWorldFileError("Speed must be greater than 0", line_number); } } else { - std::cout << "unexpected token in file: " << line_prefix << std::endl - << std::flush; + ParseWorldFileError("Unexpected token in file: " + line_prefix, + line_number); break; } } @@ -208,6 +243,9 @@ void Robot::Initialize(std::string filename, bool enable_graphics, image_.Initialize(std::max(x_dimen_ * pxPerCell + margin, min_width), y_dimen_ * pxPerCell + margin); + initialized_ = true; + error_ = RobotError::kNoError; + DrawWorld(); DrawRobot(); Show(/* long duration */ true); @@ -354,6 +392,9 @@ void Robot::Finish() { if (enable_csv_output_) { WriteWorldCSV(); std::cout << "Finished. ctrl+c to exit." << std::endl << std::flush; + } else { + std::cout << "Finished. Close the image or ctrl+c to exit." << std::endl + << std::flush; } if (enable_graphics_) { image_.ShowUntilClosed("Karel's World"); @@ -712,12 +753,14 @@ void Robot::PromptBeforeActionIfNeeded() { // Note that the orientation is not populated. This is just a helper to // get the x and y position from a file with the next items in the stream // being (x, y) -PositionAndOrientation Robot::ParsePosition(std::fstream& file) const { +PositionAndOrientation Robot::ParsePosition(std::fstream& file, + int line_number) const { char open_paren, comma, closed_paren; int x, y; if (!(file >> open_paren >> x >> comma >> y >> closed_paren)) { - throw std::string("Error reading position"); + ParseWorldFileError("Error reading position", line_number); } + CheckParsePosition(open_paren, comma, closed_paren, line_number); PositionAndOrientation result; // Convert y in the file to y on-screen. In the file, (1, 1) is the // bottom left corner. @@ -731,11 +774,11 @@ PositionAndOrientation Robot::ParsePosition(std::fstream& file) const { // (3, 7) East // Direction may be lower-case or have an uppercase first letter. PositionAndOrientation Robot::ParsePositionAndOrientation( - std::fstream& file) const { - PositionAndOrientation result = ParsePosition(file); + std::fstream& file, int line_number) const { + PositionAndOrientation result = ParsePosition(file, line_number); std::string direction; if (!(file >> direction)) { - throw std::string("Error reading orientation"); + ParseWorldFileError("Error reading orientation", line_number); } // Ensure the first character is lower cased. direction[0] = tolower(direction[0]); @@ -748,7 +791,7 @@ PositionAndOrientation Robot::ParsePositionAndOrientation( } else if (direction == "west") { result.orientation = Orientation::kWest; } else { - throw std::string("Unknown orientation " + direction); + ParseWorldFileError("Unknown orientation " + direction, line_number); } return result; } diff --git a/karel/src/robot.h b/karel/src/robot.h index a9aab52..8261fbd 100644 --- a/karel/src/robot.h +++ b/karel/src/robot.h @@ -244,14 +244,14 @@ class Robot { * get the x and y position from a file with the next items in the stream * being (x, y) */ - PositionAndOrientation ParsePosition(std::fstream& file) const; + PositionAndOrientation ParsePosition(std::fstream& file, int line_number) const; /** * Helper to get orientation of the form, `(x, y) direction`, for example, * (3, 7) East * Direction may be lower-case or have an uppercase first letter. */ - PositionAndOrientation ParsePositionAndOrientation(std::fstream& file) const; + PositionAndOrientation ParsePositionAndOrientation(std::fstream& file, int line_number) const; // Whether graphics are enabled. They should probably be disabled for // testing. From 80447512fa1c4a6d3b21163152a48c6a3d96f179 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Fri, 11 Dec 2020 10:21:09 -0800 Subject: [PATCH 40/48] Add to README, saving to BMP, and unittests for CSV and prompts --- README.md | 10 +- karel/README.md | 147 ----------------------------- karel/src/robot.cc | 34 ++++--- karel/src/robot.h | 5 + karel/src/test/karel.csv | 13 --- karel/src/test/karel_unittest.cc | 154 +++++++++++++++++++++++++------ 6 files changed, 159 insertions(+), 204 deletions(-) delete mode 100644 karel/README.md delete mode 100644 karel/src/test/karel.csv diff --git a/README.md b/README.md index 02a210e..014bd1b 100644 --- a/README.md +++ b/README.md @@ -16,10 +16,14 @@ Learn more about how to use the C++ Utils graphics class in this [interactive tu ## Karel the Robot in C++ -Karel the Robot is a gentle introductory programming language created by [Dr. Richard Pattis](https://www.ics.uci.edu/~pattis/) in [*Karel the Robot: A Gentle Introduction to The Art of Programming*](https://www.google.com/books/edition/_/ghcZAQAAIAAJ?hl=en&gbpv=1). The Karel language emphasizes logic while hiding tricky syntax, allowing anyone to begin making exciting graphical programs with very little background. +Karel the Robot is a gentle introductory programming language created by [Dr. Richard Pattis](https://www.ics.uci.edu/~pattis/) in [*Karel the Robot: A Gentle Introduction to The Art of Programming*](https://www.google.com/books/edition/_/ghcZAQAAIAAJ?hl=en&gbpv=1) and implemented in C++ here with his permission. The Karel language emphasizes logic while hiding tricky syntax, allowing anyone to begin making exciting graphical programs with very little background. ![karel the robot screenshot](karel/src/test/karel.png) +Karel lives in a two-dimensional grid and has a position and an orientation (north, east, south or west). Each cell of the grid may contain one or more beepers, or no beepers at all. Karel has a bag of beepers (which may be empty). Cells may be separated by walls. + +Karel has four actions: they can can move forward, turn left, put down a beeper or pick up a beeper. In addition, Karel is able to check state of the area around themselves. Karel cannot move through walls or off the edge of the world. + ### Accessibility Karel programs may export the world to CSV after each action. This may be helpful to screen-reader users. @@ -30,8 +34,8 @@ Karel programs may prompt before each robot action. This may be helpful for user To create Karel the Robot programs in C++, include ``karel/karel.h``. -(TODO): Learn more about how to use the C++ Utils Karel the Robot functions in this [interactive tutorial](https://github.com/ILXL-guides/intro-to-karel) +Learn more about how to use the C++ Utils Karel the Robot functions in this [interactive tutorial](https://lab.cs50.io/ILXL-guides/intro-to-karel) ## For developers and instructors -Read more about developing and including C++ Utils in the [wiki](https://github.com/ILXL/cpputils/wiki). +Read more about developing and including C++ Utils and unittesting assignments in the [wiki](https://github.com/ILXL/cpputils/wiki). diff --git a/karel/README.md b/karel/README.md deleted file mode 100644 index e2c3557..0000000 --- a/karel/README.md +++ /dev/null @@ -1,147 +0,0 @@ -# Karel the Robot in C++ - -TODO: Port README to a ILXL guide and the CPPUtils wiki. - -## Overview - -Karel lives in a two-dimensional grid where (1, 1) is at the bottom left corner. Karel has a position and an orientation in the grid (north, east, south or west). - -Each square of the grid may contain one or more beepers, or no beepers at all. Karel has a bag of beepers which may be empty or may contain many or even infinite beepers. - -Karel can move one cell and turn left. Karel can put down a beeper or pick up a beeper. In addition, Karel is able to check state of the area around themselves. - -Cells may be separated by walls. Karel cannot move through walls or off the edge of the world. - -Karel has four actions: - -```cpp -void Move(); -void TurnLeft(); -void PutBeeper(); -void PickBeeper(); -``` - -Karel has several booleans for getting robot state: -```cpp -bool FrontIsClear(); -bool FrontIsBlocked(); -bool LeftIsClear(); -bool LeftIsBlocked(); -bool RightIsClear(); -bool RightIsBlocked(); -bool HasBeepersInBag(); -bool NoBeepersInBag(); -bool BeepersPresent(); -bool NoBeepersPresent(); -bool FacingNorth(); -bool NotFacingNorth(); -bool FacingEast(); -bool NotFacingEast(); -bool FacingSouth(); -bool NotFacingSouth(); -bool FacingWest(); -bool NotFacingWest(); -``` - -``robot.h`` provides a Karel the Robot implementation in C++. This is functional programming: simply ``#include "cpputils/karel/karel.h"`` and call the Karel functions in the global namespace. - -### Example program - -```cpp -#include "cpputils/karel/karel.h" - -void TurnRight() { - TurnLeft(); - TurnLeft(); - TurnLeft(); -} - -void KarelProgram() { - while(FrontIsClear()) { - Move(); - } - TurnRight(); - Move(); - TurnLeft(); - Move(); - PickBeeper(); - TurnLeft(); - TurnLeft(); - while(FrontIsClear()) { - Move(); - } - TurnRight(); - Move(); - TurnRight(); -} - -int main() { - LoadWorld("worlds/CollectNewspaperKarel.w"); - KarelProgram(); - Finish(); - return 0; -} -``` - -### Building - -Compile (from the directory containing cpputils) with: - -``clang++ -std=c++17 test.cc cpputils/karel/karel.cc cpputils/karel/src/robot.cc cpputils/graphics/image.cc -o main -lm -lX11 -lpthread`` - -A few more flags are needed in Mac. - -## For instructors - -Instructors should call ``LoadWorld`` before student code and ``Finish`` after. - -```cpp -void LoadWorld(std::string filename); -void Finish(); -``` - -### World files - -Same as Stanford 106A. Dimension must be the first line. - -`CollectNewspaperKarel.w`: - -``` -Dimension: (7, 5) -Wall: (3, 2) west -Wall: (3, 2) south -Wall: (3, 3) west -Wall: (3, 4) west -Wall: (3, 5) south -Wall: (4, 2) south -Wall: (4, 5) south -Wall: (5, 2) south -Wall: (5, 5) south -Wall: (6, 2) west -Wall: (6, 4) west -Beeper: (6, 3) 1 -Karel: (3, 4) east -Speed: 1.00 -``` - -### Unit testing - -See ``src/test/karel_unittest.cc`` - -Must get robot instance with enable animations set to false -- so unittest shouldn't run over code that does Setup (and maybe not Finish either). Should just run over student functions. - -### Example CS1 course structure with Karel - -first weeks: -`make build` -karel: - logic - vars (ints) - loops & ifs - functions --> TurnRight() { TurnLeft(); TurnLeft(); TurnLeft(); } - -later weeks: -clang++ main.cc -o main -doubles -vectors -strings diff --git a/karel/src/robot.cc b/karel/src/robot.cc index 6048813..59dd6d6 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -18,10 +18,6 @@ #include "error.h" #include "orientation.h" -// TODO: Save to image file (maybe for testing) -// documentation -// file error states - namespace karel { namespace { @@ -65,6 +61,8 @@ const graphics::Color kWallColor(50, 50, 50); const graphics::Color kGridColor(220, 220, 220); const graphics::Color kErrorColor(173, 0, 35); +const std::string kCSVFilename = "karel.csv"; + // Helper methods void ParseWorldFileError(std::string error_text, int line_number) { if (line_number > 0) { @@ -431,6 +429,13 @@ int Robot::GetWorldHeight() const { return y_dimen_; } RobotError Robot::GetError() const { return error_; } +void Robot::SaveWorldBmp(std::string filename) const { + if (!image_.SaveImageBmp(filename)) { + std::cout << "Failed to save image to " << filename << std::endl + << std::flush; + } +} + void Robot::Show(bool long_duration) { if (finished_) return; if (long_duration && enable_csv_output_) { @@ -443,11 +448,10 @@ void Robot::Show(bool long_duration) { } void Robot::WriteWorldCSV() { - const std::string filename = "karel.csv"; std::ofstream csv; - csv.open(filename); + csv.open(kCSVFilename); if (!csv.is_open()) { - std::cout << "Error: Could not open " << filename + std::cout << "Error: Could not open " << kCSVFilename << " to write Karel's world. Perhaps it is opened by another " "application?" << std::endl @@ -476,16 +480,17 @@ void Robot::WriteWorldCSV() { csv << "o "; } csv << "(" << x + 1 << "," << y_dimen_ - y << ")\","; - if (x < x_dimen_ - 1 && - (cell.HasEastWall() || world_[x + 1][y].HasWestWall())) { - csv << "w,"; - } else { - csv << ","; + if (x < x_dimen_ - 1) { + if (cell.HasEastWall() || world_[x + 1][y].HasWestWall()) { + csv << "w,"; + } else { + csv << ","; + } } } csv << std::endl; if (y < y_dimen_ - 1) { - for (int x = 0; x < x_dimen_; x++) { + for (int x = 0; x < x_dimen_ - 1; x++) { // print bottom walls and next top walls if (world_[x][y].HasSouthWall() || world_[x][y + 1].HasNorthWall()) { csv << "w,,"; @@ -503,7 +508,8 @@ void Robot::WriteWorldCSV() { "between cells,cell coordinates\n"; // TODO: Write error state and a key. csv.close(); - std::cout << "World state written to " << filename << std::endl << std::flush; + std::cout << "World state written to " << kCSVFilename << std::endl + << std::flush; } void Robot::Error(RobotError error) { diff --git a/karel/src/robot.h b/karel/src/robot.h index 8261fbd..0012932 100644 --- a/karel/src/robot.h +++ b/karel/src/robot.h @@ -188,6 +188,11 @@ class Robot { */ RobotError GetError() const; + /** + * Saves an image of Karel's world with the given filename in .bmp format. + */ + void SaveWorldBmp(std::string filename) const; + private: // Private constructor: Robot can only be accessed with GetInstance. Robot(); diff --git a/karel/src/test/karel.csv b/karel/src/test/karel.csv deleted file mode 100644 index d14b508..0000000 --- a/karel/src/test/karel.csv +++ /dev/null @@ -1,13 +0,0 @@ -"o (1,5)",,"o (2,5)",,"o (3,5)",,"o (4,5)",,"o (5,5)",,"o (6,5)",,"o (7,5)",, -,,,,w,,w,,w,,,,,, -"o (1,4)",,"o (2,4)",w,"o (3,4)",,"ke o (4,4)",,"o (5,4)",w,"o (6,4)",,"o (7,4)",, -,,,,,,,,,,,,,, -"o (1,3)",,"o (2,3)",w,"o (3,3)",,"o (4,3)",,"o (5,3)",,"b (6,3)",,"o (7,3)",, -,,,,,,,,,,,,,, -"o (1,2)",,"o (2,2)",w,"o (3,2)",,"o (4,2)",,"o (5,2)",w,"o (6,2)",,"o (7,2)",, -,,,,w,,w,,w,,,,,, -"o (1,1)",,"o (2,1)",,"o (3,1)",,"o (4,1)",,"o (5,1)",,"o (6,1)",,"o (7,1)",, - - -key,Karel facing north,Karel facing east, Karel facing south, Karel facing west,empty cell,cell with at least one beeper,wall between cells,cell coordinates -,kn,ke,ks,kw,o,b,w,"(x,y)" diff --git a/karel/src/test/karel_unittest.cc b/karel/src/test/karel_unittest.cc index 65b128f..2d8406c 100644 --- a/karel/src/test/karel_unittest.cc +++ b/karel/src/test/karel_unittest.cc @@ -22,6 +22,7 @@ using karel::RobotError; // Test TODOs: // Test loading bad files and helpful output +// Test CSV output: walls and beepers bool IsBasicallyInfinite(int number) { return number > std::numeric_limits::max() / 2; @@ -35,19 +36,12 @@ void CellIsEmptyWithNoWalls(const Cell& cell) { ASSERT_FALSE(cell.HasWestWall()); } -class KarelTest : public testing::Test { - public: - void SetUp() override { - // TODO. - } -}; - -TEST_F(KarelTest, GetsKarelInstance) { +TEST(KarelTest, GetsKarelInstance) { Robot& r = Robot::GetInstance(/* enable animations */ false, /* force initialize */ true); } -TEST_F(KarelTest, DefaultWorld) { +TEST(KarelTest, DefaultWorld) { Robot& r = Robot::GetInstance(/* enable animations */ false, /* force initialize */ true); @@ -69,7 +63,7 @@ TEST_F(KarelTest, DefaultWorld) { ASSERT_TRUE(IsBasicallyInfinite(r.GetNumBeepersInBag())); } -TEST_F(KarelTest, LoadsWorld) { +TEST(KarelTest, LoadsWorld) { Robot& r = Robot::InitializeInstance("worlds/2x1.w", /* enable animations */ false, /* force initialize */ true); @@ -84,7 +78,7 @@ TEST_F(KarelTest, LoadsWorld) { ASSERT_TRUE(IsBasicallyInfinite(r.GetNumBeepersInBag())); } -TEST_F(KarelTest, LoadsWorldWithInfinityBeepers) { +TEST(KarelTest, LoadsWorldWithInfinityBeepers) { // INFINITY vs INFINITE Robot& r = Robot::InitializeInstance("worlds/8x1.w", /* enable animations */ false, @@ -92,21 +86,21 @@ TEST_F(KarelTest, LoadsWorldWithInfinityBeepers) { ASSERT_TRUE(IsBasicallyInfinite(r.GetNumBeepersInBag())); } -TEST_F(KarelTest, LoadsWorldWithNoBeepersInBag) { +TEST(KarelTest, LoadsWorldWithNoBeepersInBag) { Robot& r = Robot::InitializeInstance("worlds/beepers.w", /* enable animations */ false, /* force initialize */ true); EXPECT_EQ(0, r.GetNumBeepersInBag()); } -TEST_F(KarelTest, LoadsWorldWithFiniteBeepers) { +TEST(KarelTest, LoadsWorldWithFiniteBeepers) { Robot& r = Robot::InitializeInstance("worlds/inner_walls.w", /* enable animations */ false, /* force initialize */ true); EXPECT_EQ(42, r.GetNumBeepersInBag()); } -TEST_F(KarelTest, LoadsWorldWithBeepersInCells) { +TEST(KarelTest, LoadsWorldWithBeepersInCells) { Robot& r = Robot::InitializeInstance("worlds/beepers.w", /* enable animations */ false, /* force initialize */ true); @@ -116,7 +110,7 @@ TEST_F(KarelTest, LoadsWorldWithBeepersInCells) { EXPECT_EQ(4, r.GetCell(4, 4).GetNumBeepers()); } -TEST_F(KarelTest, LoadsWorldWithOuterWalls) { +TEST(KarelTest, LoadsWorldWithOuterWalls) { Robot& r = Robot::InitializeInstance("worlds/outer_walls.w", /* enable animations */ false, /* force initialize */ true); @@ -137,7 +131,7 @@ TEST_F(KarelTest, LoadsWorldWithOuterWalls) { ASSERT_EQ(6, r.GetYPosition()); } -TEST_F(KarelTest, LoadsWorldWithInnerWalls) { +TEST(KarelTest, LoadsWorldWithInnerWalls) { Robot& r = Robot::InitializeInstance("worlds/inner_walls.w", /* enable animations */ false, /* force initialize */ true); @@ -153,7 +147,7 @@ TEST_F(KarelTest, LoadsWorldWithInnerWalls) { ASSERT_EQ(2, r.GetYPosition()); } -TEST_F(KarelTest, CannotMoveThroughOuterWalls) { +TEST(KarelTest, CannotMoveThroughOuterWalls) { for (int i = 0; i < 4; i++) { Robot& r = Robot::InitializeInstance("worlds/outer_walls.w", /* enable animations */ false, @@ -185,7 +179,7 @@ TEST_F(KarelTest, CannotMoveThroughOuterWalls) { } } -TEST_F(KarelTest, CannotMoveThroughInnerWalls) { +TEST(KarelTest, CannotMoveThroughInnerWalls) { for (int i = 0; i < 4; i++) { Robot& r = Robot::InitializeInstance("worlds/inner_walls.w", /* enable animations */ false, @@ -217,7 +211,7 @@ TEST_F(KarelTest, CannotMoveThroughInnerWalls) { } } -TEST_F(KarelTest, CannotMoveThroughWorldEdges) { +TEST(KarelTest, CannotMoveThroughWorldEdges) { for (int i = 0; i < 4; i++) { Robot& r = Robot::InitializeInstance("worlds/2x1.w", /* enable animations */ false, @@ -245,7 +239,7 @@ TEST_F(KarelTest, CannotMoveThroughWorldEdges) { } } -TEST_F(KarelTest, PutsAndPicksBeeper) { +TEST(KarelTest, PutsAndPicksBeeper) { // Default world has no beepers, and Karel has infinite. Robot& r = Robot::GetInstance(/* enable animations */ false, /* force initialize */ true); @@ -268,7 +262,7 @@ TEST_F(KarelTest, PutsAndPicksBeeper) { } } -TEST_F(KarelTest, PicksManyBeepers) { +TEST(KarelTest, PicksManyBeepers) { Robot& r = Robot::InitializeInstance("worlds/beepers.w", /* enable animations */ false, /* force initialize */ true); @@ -329,7 +323,7 @@ TEST_F(KarelTest, PicksManyBeepers) { EXPECT_TRUE(NoBeepersPresent()); } -TEST_F(KarelTest, CannotPickMissingBeeper) { +TEST(KarelTest, CannotPickMissingBeeper) { Robot& r = Robot::GetInstance(/* enable animations */ false, /* force initialize */ true); ASSERT_EQ(RobotError::kNoError, r.GetError()); @@ -337,7 +331,7 @@ TEST_F(KarelTest, CannotPickMissingBeeper) { ASSERT_EQ(RobotError::kCannotPickBeeper, r.GetError()); } -TEST_F(KarelTest, CannotPutWhenBeeperBagEmpty) { +TEST(KarelTest, CannotPutWhenBeeperBagEmpty) { Robot& r = Robot::InitializeInstance("worlds/beepers.w", /* enable animations */ false, /* force initialize */ true); @@ -346,7 +340,7 @@ TEST_F(KarelTest, CannotPutWhenBeeperBagEmpty) { ASSERT_EQ(RobotError::kCannotPutBeeper, r.GetError()); } -TEST_F(KarelTest, TurnsLeft) { +TEST(KarelTest, TurnsLeft) { Robot& r = Robot::GetInstance(/* enable animations */ false, /* force initialize */ true); int count = 10; @@ -401,7 +395,7 @@ TEST_F(KarelTest, TurnsLeft) { } } -TEST_F(KarelTest, MovesEastAndWest) { +TEST(KarelTest, MovesEastAndWest) { Robot& r = Robot::InitializeInstance("worlds/8x1.w", /* enable animations */ false, /* force initialize */ true); @@ -423,7 +417,7 @@ TEST_F(KarelTest, MovesEastAndWest) { } } -TEST_F(KarelTest, MovesNorthAndSouth) { +TEST(KarelTest, MovesNorthAndSouth) { Robot& r = Robot::InitializeInstance("worlds/1x8.w", /* enable animations */ false, /* force initialize */ true); @@ -446,7 +440,7 @@ TEST_F(KarelTest, MovesNorthAndSouth) { } } -TEST_F(KarelTest, DoesNotTakeActionAfterErrorState) { +TEST(KarelTest, DoesNotTakeActionAfterErrorState) { Robot& r = Robot::InitializeInstance("worlds/beepers.w", /* enable graphics */ false, /* force initialize */ true); @@ -486,6 +480,112 @@ TEST_F(KarelTest, DoesNotTakeActionAfterErrorState) { EXPECT_EQ(0, r.GetNumBeepersInBag()); } +TEST(KarelTest, SavesWorldBmp) { + Robot& r = Robot::GetInstance(/* enable graphics */ false, + /* force initialize */ true); + std::string name = "test_world.bmp"; + std::ifstream stream(name.c_str()); + ASSERT_FALSE(stream.good()); + r.SaveWorldBmp(name); + graphics::Image image; + image.Load(name); + ASSERT_TRUE(image.GetWidth() > 0); + ASSERT_TRUE(image.GetHeight() > 0); + remove(name.c_str()); +} + +TEST(KarelTest, PromptsBetweenActionsWhenSet) { + std::streambuf* original = std::cin.rdbuf(); + std::istringstream stream("c\nc\n"); + std::cin.rdbuf(stream.rdbuf()); + + std::streambuf* original_out = std::cout.rdbuf(); + std::stringstream stream_out; + std::cout.rdbuf(stream_out.rdbuf()); + + Robot& r = Robot::InitializeInstance("worlds/2x1.w", + /* enable graphics */ false, + /* force initialize */ true); + Move(); + TurnLeft(); + TurnLeft(); + EXPECT_EQ(2, r.GetXPosition()); + EXPECT_EQ(Orientation::kWest, r.GetOrientation()); + EXPECT_THAT( + stream_out.str(), + Not(testing::MatchesRegex(".*Enter any character to continue.*Enter any " + "character to continue.*"))); + + EnablePromptBeforeAction(); + Move(); + TurnLeft(); + EXPECT_EQ(1, r.GetXPosition()); + EXPECT_EQ(Orientation::kSouth, r.GetOrientation()); + EXPECT_THAT(stream_out.str(), + testing::MatchesRegex(".*Enter any character to continue.*Enter " + "any character to continue.*")); + + std::cin.rdbuf(original); + std::cout.rdbuf(original_out); +} + +TEST(KarelTest, PromptsBetweenActionsWhenCSVOutputSet) { + std::streambuf* original = std::cin.rdbuf(); + std::istringstream stream("ada\nlovelace\n"); + std::cin.rdbuf(stream.rdbuf()); + + std::streambuf* original_out = std::cout.rdbuf(); + std::stringstream stream_out; + std::cout.rdbuf(stream_out.rdbuf()); + + Robot& r = Robot::InitializeInstance("worlds/2x1.w", + /* enable graphics */ false, + /* force initialize */ true); + Move(); + TurnLeft(); + TurnLeft(); + EXPECT_EQ(2, r.GetXPosition()); + EXPECT_EQ(Orientation::kWest, r.GetOrientation()); + EXPECT_THAT( + stream_out.str(), + Not(testing::MatchesRegex(".*Enter any character to continue.*Enter any " + "character to continue.*"))); + + EnableCSVOutput(); + Move(); + TurnLeft(); + EXPECT_EQ(1, r.GetXPosition()); + EXPECT_EQ(Orientation::kSouth, r.GetOrientation()); + EXPECT_THAT(stream_out.str(), + testing::MatchesRegex(".*Enter any character to continue.*Enter " + "any character to continue.*")); + + std::cin.rdbuf(original); + std::cout.rdbuf(original_out); + remove("karel.csv"); +} + +TEST(KarelTest, GeneratesCSVOutput) { + Robot& r = Robot::InitializeInstance("worlds/2x1.w", + /* enable graphics */ false, + /* force initialize */ true); + std::ifstream stream("karel.csv"); + ASSERT_FALSE(stream.good()); + + EnableCSVOutput(); + // Should immediately write the world to a CSV file. + stream = std::ifstream("karel.csv"); + ASSERT_TRUE(stream.good()); + + // The first line of the CSV is the world with karel in the first cell. + std::string line; + ASSERT_TRUE(std::getline(stream, line)); + ASSERT_TRUE(line.size() > 0); + ASSERT_EQ(line, "\"ke o (1,1)\",,\"o (2,1)\""); + + remove("karel.csv"); +} + int main(int argc, char** argv) { testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); From cf4ec66159fe5793093cba46c74ab644935789b9 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Fri, 11 Dec 2020 10:27:28 -0800 Subject: [PATCH 41/48] Fix karel unittest by adding trailing comma back --- karel/src/test/karel_unittest.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/karel/src/test/karel_unittest.cc b/karel/src/test/karel_unittest.cc index 2d8406c..e4e262a 100644 --- a/karel/src/test/karel_unittest.cc +++ b/karel/src/test/karel_unittest.cc @@ -581,7 +581,7 @@ TEST(KarelTest, GeneratesCSVOutput) { std::string line; ASSERT_TRUE(std::getline(stream, line)); ASSERT_TRUE(line.size() > 0); - ASSERT_EQ(line, "\"ke o (1,1)\",,\"o (2,1)\""); + ASSERT_EQ(line, "\"ke o (1,1)\",,\"o (2,1)\","); remove("karel.csv"); } From 883024fd9840b6be39c9254dd92c53bf3908b72f Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Fri, 11 Dec 2020 10:29:39 -0800 Subject: [PATCH 42/48] remove karel branch from github actions --- .github/workflows/c-cpp.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml index 3eceffa..7db8138 100644 --- a/.github/workflows/c-cpp.yml +++ b/.github/workflows/c-cpp.yml @@ -2,7 +2,7 @@ name: C/C++ CI on: push: - branches: [ master, v1, v2, karel ] + branches: [ master, v1, v2 ] pull_request: branches: [ master ] From 4d60363d3a6901a858057ec114d6123e64f55155 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Fri, 11 Dec 2020 16:39:02 -0800 Subject: [PATCH 43/48] Add error message to csv --- README.md | 2 +- karel/src/robot.cc | 64 ++++++++++++++++++++++++++-------------------- 2 files changed, 37 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index 014bd1b..92a87a8 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Karel the Robot is a gentle introductory programming language created by [Dr. Ri Karel lives in a two-dimensional grid and has a position and an orientation (north, east, south or west). Each cell of the grid may contain one or more beepers, or no beepers at all. Karel has a bag of beepers (which may be empty). Cells may be separated by walls. -Karel has four actions: they can can move forward, turn left, put down a beeper or pick up a beeper. In addition, Karel is able to check state of the area around themselves. Karel cannot move through walls or off the edge of the world. +Karel has four actions: they can move forward, turn left, put down a beeper or pick up a beeper. In addition, Karel is able to check state of the area around themselves. Karel cannot move through walls or off the edge of the world. ### Accessibility diff --git a/karel/src/robot.cc b/karel/src/robot.cc index 59dd6d6..be8a5b3 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -92,6 +92,34 @@ void CheckParsePosition(char open_paren, char comma, char closed_paren, } } +std::string GetErrorMessage(RobotError error) { + std::string message = "Error: "; + switch (error) { + case kNoError: + // This shouldn't happen. + return ""; + case kCannotMoveNorth: + message += " Cannot move north"; + break; + case kCannotMoveEast: + message += " Cannot move east"; + break; + case kCannotMoveSouth: + message += " Cannot move south"; + break; + case kCannotMoveWest: + message += " Cannot move west"; + break; + case kCannotPickBeeper: + message += "Cannot pick beeper\n(No beepers present)"; + break; + case kCannotPutBeeper: + message += " Cannot put beeper\n(No beepers in bag)"; + break; + } + return message; +} + } // namespace Robot::Robot() {} @@ -128,6 +156,10 @@ void Robot::Initialize(std::string filename, bool enable_graphics, prompt_between_actions_ = false; enable_csv_output_ = false; } + // Reset default speed and beeper count. + speed_ = 1; + // Nearly infinite beepers. + beeper_count_ = std::numeric_limits::max(); world_.clear(); enable_graphics_ = enable_graphics; @@ -141,8 +173,6 @@ void Robot::Initialize(std::string filename, bool enable_graphics, world_[i].push_back(Cell()); } } - // Nearly infinite beepers. - beeper_count_ = std::numeric_limits::max(); position_ = {0, kDefaultDimen - 1, Orientation::kEast}; } else { std::fstream world_file; @@ -190,7 +220,6 @@ void Robot::Initialize(std::string filename, bool enable_graphics, } // Read the rest of the file to get beepers and walls. - // TODO: May need better error checking. while (world_file >> line_prefix) { line_number++; if (line_prefix == wall_prefix) { @@ -501,12 +530,11 @@ void Robot::WriteWorldCSV() { } csv << std::endl; } - csv << std::endl; + csv << GetErrorMessage(error_) << std::endl; csv << "symbol,kn,ke,ks,kw,o,b,w,\"(x,y)\"\n"; csv << "meaning,Karel facing north,Karel facing east, Karel facing south, " "Karel facing west,empty cell,cell with at least one beeper,wall " "between cells,cell coordinates\n"; - // TODO: Write error state and a key. csv.close(); std::cout << "World state written to " << kCSVFilename << std::endl << std::flush; @@ -514,30 +542,10 @@ void Robot::WriteWorldCSV() { void Robot::Error(RobotError error) { error_ = error; - std::string message = "Error: "; - switch (error) { - case kNoError: - // This shouldn't happen. - return; - case kCannotMoveNorth: - message += " Cannot move north"; - break; - case kCannotMoveEast: - message += " Cannot move east"; - break; - case kCannotMoveSouth: - message += " Cannot move south"; - break; - case kCannotMoveWest: - message += " Cannot move west"; - break; - case kCannotPickBeeper: - message += "Cannot pick beeper\n(No beepers present)"; - break; - case kCannotPutBeeper: - message += " Cannot put beeper\n(No beepers in bag)"; - break; + if (error_ == RobotError::kNoError) { + return; } + std::string message = GetErrorMessage(error); std::cout << message << std::endl << std::flush; int approx_width = 25 * kErrorFontSize / 4; int text_x = std::max(2, image_.GetWidth() / 2 - approx_width); From 7e1965da5175177b8a72122f9d59a27bafb62b2d Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Sun, 13 Dec 2020 20:24:49 -0800 Subject: [PATCH 44/48] Fix overflow beepers bug --- karel/src/robot.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/karel/src/robot.cc b/karel/src/robot.cc index be8a5b3..e0a6a73 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -354,7 +354,9 @@ void Robot::PutBeeper() { Error(RobotError::kCannotPutBeeper); return; } - beeper_count_--; + if (beeper_count_ != std::numeric_limits::max()) { + beeper_count_--; + } Cell& cell = world_[position_.x][position_.y]; cell.SetNumBeepers(cell.GetNumBeepers() + 1); DrawWorld(); @@ -371,7 +373,9 @@ void Robot::PickBeeper() { } Cell& cell = world_[position_.x][position_.y]; cell.SetNumBeepers(cell.GetNumBeepers() - 1); - beeper_count_++; + if (beeper_count_ != std::numeric_limits::max()) { + beeper_count_++; + } DrawWorld(); DrawRobot(); Show(/* long duration */ true); From 8f2ab4442421395ecad8b173d03c8e663f410589 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 14 Dec 2020 09:22:10 -0800 Subject: [PATCH 45/48] Fix left vs right bug --- karel/src/robot.cc | 4 ++-- karel/src/test/karel_unittest.cc | 12 ++++++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/karel/src/robot.cc b/karel/src/robot.cc index e0a6a73..7380247 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -393,12 +393,12 @@ bool Robot::FrontIsClear() const { bool Robot::LeftIsClear() const { return DirectionIsClear(static_cast( - (static_cast(position_.orientation) + 1) % 4)); + (static_cast(position_.orientation) - 1 + 4) % 4)); } bool Robot::RightIsClear() const { return DirectionIsClear(static_cast( - (static_cast(position_.orientation) - 1 + 4) % 4)); + (static_cast(position_.orientation) + 1) % 4)); } bool Robot::FacingNorth() const { diff --git a/karel/src/test/karel_unittest.cc b/karel/src/test/karel_unittest.cc index e4e262a..7b4cd5a 100644 --- a/karel/src/test/karel_unittest.cc +++ b/karel/src/test/karel_unittest.cc @@ -61,6 +61,11 @@ TEST(KarelTest, DefaultWorld) { ASSERT_EQ(1, r.GetYPosition()); ASSERT_EQ(Orientation::kEast, r.GetOrientation()); ASSERT_TRUE(IsBasicallyInfinite(r.GetNumBeepersInBag())); + // Facing east, so the right is blocked. + EXPECT_FALSE(RightIsClear()); + EXPECT_TRUE(RightIsBlocked()); + EXPECT_TRUE(LeftIsClear()); + EXPECT_FALSE(LeftIsBlocked()); } TEST(KarelTest, LoadsWorld) { @@ -76,6 +81,13 @@ TEST(KarelTest, LoadsWorld) { ASSERT_EQ(1, r.GetYPosition()); ASSERT_EQ(Orientation::kEast, r.GetOrientation()); ASSERT_TRUE(IsBasicallyInfinite(r.GetNumBeepersInBag())); + + ASSERT_TRUE(FrontIsClear()); + ASSERT_FALSE(FrontIsBlocked()); + EXPECT_FALSE(RightIsClear()); + EXPECT_TRUE(RightIsBlocked()); + EXPECT_FALSE(LeftIsClear()); + EXPECT_TRUE(LeftIsBlocked()); } TEST(KarelTest, LoadsWorldWithInfinityBeepers) { From 61e36deef2685eba76c98fcc27c5b67dcdc99e3a Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 14 Dec 2020 12:34:02 -0800 Subject: [PATCH 46/48] Lower speeds are slower instead of lower speeds faster --- karel/src/robot.cc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/karel/src/robot.cc b/karel/src/robot.cc index 7380247..0689310 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -257,6 +257,9 @@ void Robot::Initialize(std::string filename, bool enable_graphics, } if (speed_ < 0) { ParseWorldFileError("Speed must be greater than 0", line_number); + } else if (speed_ < 0.1) { + // Minimum speed. + speed_ = 0.1; } } else { ParseWorldFileError("Unexpected token in file: " + line_prefix, @@ -475,7 +478,7 @@ void Robot::Show(bool long_duration) { WriteWorldCSV(); } if (enable_graphics_) { - image_.ShowForMs((long_duration ? kLongDuration : kShortDuration) * speed_, + image_.ShowForMs((long_duration ? kLongDuration : kShortDuration) / speed_, "Karel's World"); } } @@ -523,7 +526,7 @@ void Robot::WriteWorldCSV() { } csv << std::endl; if (y < y_dimen_ - 1) { - for (int x = 0; x < x_dimen_ - 1; x++) { + for (int x = 0; x < x_dimen_; x++) { // print bottom walls and next top walls if (world_[x][y].HasSouthWall() || world_[x][y + 1].HasNorthWall()) { csv << "w,,"; From 033f1ae92a355f27bd807bfa09eb11e216777314 Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 14 Dec 2020 13:59:15 -0800 Subject: [PATCH 47/48] Replace "dr" with "professor" --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 92a87a8..6a2b289 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Learn more about how to use the C++ Utils graphics class in this [interactive tu ## Karel the Robot in C++ -Karel the Robot is a gentle introductory programming language created by [Dr. Richard Pattis](https://www.ics.uci.edu/~pattis/) in [*Karel the Robot: A Gentle Introduction to The Art of Programming*](https://www.google.com/books/edition/_/ghcZAQAAIAAJ?hl=en&gbpv=1) and implemented in C++ here with his permission. The Karel language emphasizes logic while hiding tricky syntax, allowing anyone to begin making exciting graphical programs with very little background. +Karel the Robot is a gentle introductory programming language created by [Professor Richard Pattis](https://www.ics.uci.edu/~pattis/) in [*Karel the Robot: A Gentle Introduction to The Art of Programming*](https://www.google.com/books/edition/_/ghcZAQAAIAAJ?hl=en&gbpv=1) and implemented in C++ here with his permission. The Karel language emphasizes logic while hiding tricky syntax, allowing anyone to begin making exciting graphical programs with very little background. ![karel the robot screenshot](karel/src/test/karel.png) From 3c05d3345321e9c477c7299afe7202262fbc0cfc Mon Sep 17 00:00:00 2001 From: Katie Dektar Date: Mon, 11 Jan 2021 20:05:50 -0800 Subject: [PATCH 48/48] Adds beeper count when beepers > 1 (fixes #7) --- karel/src/robot.cc | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/karel/src/robot.cc b/karel/src/robot.cc index 0689310..adbbda6 100644 --- a/karel/src/robot.cc +++ b/karel/src/robot.cc @@ -511,7 +511,7 @@ void Robot::WriteWorldCSV() { } } if (cell.GetNumBeepers() > 0) { - csv << "b "; + csv << "b" << cell.GetNumBeepers() << " "; } else { csv << "o "; } @@ -540,7 +540,7 @@ void Robot::WriteWorldCSV() { csv << GetErrorMessage(error_) << std::endl; csv << "symbol,kn,ke,ks,kw,o,b,w,\"(x,y)\"\n"; csv << "meaning,Karel facing north,Karel facing east, Karel facing south, " - "Karel facing west,empty cell,cell with at least one beeper,wall " + "Karel facing west,empty cell,cell with beepers and count,wall " "between cells,cell coordinates\n"; csv.close(); std::cout << "World state written to " << kCSVFilename << std::endl @@ -644,7 +644,8 @@ void Robot::DrawWorld() { image_.DrawLine(x_center, y_center - markSize / 2, x_center, y_center + markSize / 2, markColor, kWallThickness); Cell& cell = world_[i][j]; - if (cell.GetNumBeepers() > 0) { + int beeper_count = cell.GetNumBeepers(); + if (beeper_count > 0) { // Draw the beepers. Beepers are stacked so you can't tell if there's // more than one in a stack. // trig to get diamonds from thick lines! @@ -658,6 +659,11 @@ void Robot::DrawWorld() { image_.DrawLine(x_center - inner_line_size, y_center - inner_line_size, x_center + inner_line_size, y_center + inner_line_size, innerBeeperColor, inner_beeper_size); + if (beeper_count > 1) { + // Draw the beeper count in the cell if it's biger than 1. + image_.DrawText(x_center - fontSize / 4, y_center - fontSize / 2, + std::to_string(beeper_count), fontSize, kWallColor); + } } // Draw the walls. if (cell.HasNorthWall()) {

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 z