⇦ Back

WDX-180

Web Development X


Week 29 | Battleship Game - Round 2

Week 28 ⇦

Updated: 9/5/2025

⇨ Week 30


Week 29 - Day 1 | Battleship Game

Schedule

  • Watch the lectures
  • Study the suggested material
  • Practice on the topics and share your questions

Study Plan

Your instructor will share the video lectures with you. Here are the topics covered:

  • Building a Battleship game with JavaScript - Part 5
  • Building a Battleship game with JavaScript - Part 6

You can find the lecture code here

Study & Practice

  • Think about a way to display the columns and rows (A, B, C… 1, 2, 3)
    • Start by hardcoding the cols/rows, then implement a dynamic way that scales
    • Consider both HTML and Canvas solutions and think about the pros and cons of each solution
    • Try to leave the player canvas functionality and code out of it. The decorative code that displays the cols and rows should not affect the main game functionality.

Week 29 - Day 2 | Data Structures & Algorithms - Part 1

Schedule

  • Study the suggested material
  • Practice on the topics and share your questions

Study Plan

Whether you’re building games or developing web applications, creating an API service or an AI-enabled mobile application, data structures and algorithms are a crucial ingredient for all sorts of software challenges.

Data structures give us the ability to take our raw data and organize them in a way that makes it easy and efficient to store, search, traverse and manipulate.

Algorithms are the magic recipes that help us break down problems into small steps that can be fed into any programming language.

FreeCodeCamp has a great video tutorial on some of the most popular and useful algorithms and data structures.

We highly recommend that you spend the next 3 days, studying and replicating each of the chapters of this great video.

Let’s start with the first 3 data structures:

Exercises

Make sure to implement and test every single data structure and algorithm on your local environment, either in the Browser or through Node.js.

IMPORTANT: Make sure to complete all the tasks found in the daily Progress Sheet and update the sheet accordingly. Once you’ve updated the sheet, don’t forget to commit and push. The progress draft sheet for this day is: /user/week29/progress/progress.draft.w29.d02.csv

You should NEVER update the draft sheets directly, but rather work on a copy of them according to the instructions found here.


Week 29 - Day 3 | Data Structures & Algorithms - Part 2

Schedule

  • Study the suggested material
  • Practice on the topics and share your questions

Study Plan

This is part 2 of watching the Data Structures and Algorithms course from FreeCodeCamp and coding along.

Let’s see the next 3 data structures and algorithms:

Exercises

Make sure to implement and test every single data structure and algorithm on your local environment, either in the Browser or through Node.js.

IMPORTANT: Make sure to complete all the tasks found in the daily Progress Sheet and update the sheet accordingly. Once you’ve updated the sheet, don’t forget to commit and push. The progress draft sheet for this day is: /user/week29/progress/progress.draft.w29.d03.csv

You should NEVER update the draft sheets directly, but rather work on a copy of them according to the instructions found here.


Week 29 - Day 4 | Data Structures & Algorithms - Part 3

Schedule

  • Study the suggested material
  • Practice on the topics and share your questions

Study Plan

This is part 3 of watching the Data Structures and Algorithms course from FreeCodeCamp and coding along.

Let’s see the last 3 data structures and algorithms mentioned:

Exercises

Make sure to implement and test every single data structure and algorithm on your local environment, either in the Browser or through Node.js.

IMPORTANT: Make sure to complete all the tasks found in the daily Progress Sheet and update the sheet accordingly. Once you’ve updated the sheet, don’t forget to commit and push. The progress draft sheet for this day is: /user/week29/progress/progress.draft.w29.d04.csv

You should NEVER update the draft sheets directly, but rather work on a copy of them according to the instructions found here.


Week 29 - Day 5 | Battleship Game: Final Remarks

Schedule

  • Watch the lectures
  • Study the suggested material
  • Practice on the topics and share your questions

Study Plan

Your instructor will share the video lectures with you. Here are the topics covered:

  • Battleship Game - Part 7
  • Battleship Game - Part 8

You can find the lecture code here

Lecture Notes:

Lecture Questions:

References & Resources:

  • Ways to avoid API keys and other sensitive information leaking to a public/private repo
    • Use a script or a library that checks for sensitive information before pushing
    • Check your Version Control provider (BitBucket, GitLab, GitHub) for an option:
    • Use environmental variables but be careful as there are types of env variables that have some code pushed
    • Use .gitignore for preventing certain files or folders getting pushed
    • Whenever you detect a leakage or a breach you should always revoke/cancel your keys and update your passwords.
  • https://haveibeenpwned.com/
  • Ways to work with immutable data (and avoid object reference bugs and errors, e.g. “shallow copy”)
  • Nice selection of free graphics

Exercises

  • Finish up the game!
    • Complete the mini version (2x2, with 2 ship types)
    • Move on to a 4x4 version, then test and continue to the 10x10 final version

IMPORTANT: Make sure to complete all the tasks found in the daily Progress Sheet and update the sheet accordingly. Once you’ve updated the sheet, don’t forget to commit and push. The progress draft sheet for this day is: /user/week29/progress/progress.draft.w29.d05.csv

You should NEVER update the draft sheets directly, but rather work on a copy of them according to the instructions found here.


Weekly feedback: Hey, it’s really important for us to know how your experience with the course has been so far, so don’t forget to fill in and submit your mandatory feedback form before the day ends. Thanks you!



Project maintained by in-tech-gration Hosted on GitHub Pages — Theme by mattgraham