Weekly Coder
95 subscribers
84 photos
6 videos
1 file
73 links
Byte sized weekly coding challenges to hone your problem-solving prowess.
Download Telegram
๐Ÿ‘€ Last seen 42minutes ago

Quick one for ya this week.

๐Ÿฅ… Goal: Given the number of milliseconds that have passed since the last time a user was active on an app, display their last seen.

Examples:
- 5000 -> Just now
- 62000 -> A minute ago
- 300000 -> 5 minutes ago
- 7200000 -> 2 hours ago
- +

โšก๏ธ Bring the thunder!
A UNIX epoch time is the number of seconds* which have passed since 00:00:00 UTC โ€” Jan 1, 1970.

As of writing this, it's 1722623321000. Supposing that's the last time a user was on the app, how long ago would their be their last seen?

* Excluding leap seconds

๐Ÿ“… Submissions: Sunday Morning, 2:00 LT

๐Ÿช Send your submissions in the comments.

@WeeklyCoder | Week 42
๐Ÿ—บ But do you see art?

Let's see how creative and artistic you can get this week!

๐Ÿฅ… Goal: Base the given image of the world map in just two colors (0 - Black, and 255 - White) to create some form of art โ€” any kind.

โœ๏ธ Recommended Learning:
- PImage, resize ()
- strokeCap ()
- .get (x, y) // for PImage
- saveFrame ()

// Image of this post was created using these above

๐Ÿ“… Submissions: Sunday Morning, 2:00 LT

๐Ÿช Send your submissions in the comments.

@WeeklyCoder | Week 43
๐ŸŽฒ Lucky? Prove it!

Let's play craps!

Craps is a fast-paced dice game where players bet on the outcome of rolls. The main goal is to predict whether the shooter will win or lose based on the numbers rolled.

One of the main bets you can make in the game of Craps is Pass Line Bet. Here's how to play it [Simplified]:

๐Ÿฅ… Goal: Recreate the Pass Line Bet based on the description.

โœ๏ธ Recommended Learning:
- PImage
- random ()
- casting, loops

โšก๏ธ Bring the Thunder!
- Use images images of dice to reveal a roll than just numbers in a console
- Use image of a casino or Craps table in the background to make it more appealing
- Add in rolling sounds of dice
- Include other types of bets than just Pass Line Bet

๐Ÿ“… Submissions: Sunday Morning, 2:00 LT

๐Ÿช Send your submissions in the comments.

@WeeklyCoder | Week 44
๐Ÿงฉ Unscrambling time!

Another game for ya this week!

๐Ÿฅ… Goal: is to take a scrambled set of words and piece them back together into a meaningful sentence.

In this game, the computer will scramble words of a random sentence, and players win if they rearrange the words in the right order.

โœ๏ธ Recommended Learning:
- loadStrings ()
- split(), random()
- loops and conditionals

โšก๏ธ Bring the Thunder!
- Introduce a non binary scoring system. Use Levenshtein's distance perhaps?
- Add a count down timer to turn the heat up on a player.
- Let the scoring system factor in time โ€” the shorter the time the better.
- Use a hint system to reveal a word in the correct position .
- Include a bank of sentences to increase difficulty as you progress.

๐Ÿ“… Submissions: Sunday Morning, 2:00 LT

๐Ÿช Send your submissions in the comments!

@WeeklyCoder | Week 45
๐Ÿ›ซ Your nearest airport!

We're revisiting
Haversine to calculate the distance between two points on the Earth's surface given two coordinates as latitude and longitude.

๐Ÿฅ… Goal: To build a program that takes a userโ€™s current location (latitude and longitude) and displays a list of the top 5 nearest airports, showing their IATA codes and names.

๐ŸŽ’ Resource: Here's a JSON file listing details of airports of the world. [Details here]

โœ๏ธ Recommended Learning:

- Haversine Formula
- asin (), sin (), cos (),
- sqrt (), pow (), radians ()

๐Ÿพ Steps: Start by studying Haversine Formula. Then convert each equation to programmatic expression.

โž• Testing coordinate:
8.764846, 38.999340

๐Ÿ“… Submissions: Sunday Morning, 2:00 LT

๐Ÿช Send your submissions in the comments!

@WeeklyCoder | Week 46
๐Ÿ’ช What zone you workn'?

Threshold Heart Rate (THR) is the highest heart rate an athlete can sustain for a sustained period of time โ€” typically 30-75mins. Knowing THR helps to optimize training.

๐Ÿฅ… Goal: Given the age of a person and their current heart rate (in bpm) calculate the 5 zones of their THR.

MHR = Maximum Heart Rate
MHR = 220 - age (approx.)

Zone 1: 50-60% of MHR (Very Light)
Zone 2: 60-70% of MHR (Light)
Zone 3: 70-80% of MHR (Moderate)
Zone 4: 80-90% of MHR (Hard)
Zone 5: Above 90% of MHR (Max. Effort)

โœ๏ธ Recommended Learning:

- Selection statements

โšก๏ธ Bring the thunder!
- Instead of approximating maximum heart rate from age, take that as input from a user as well to refine your zone calculations.
- Get creative with this real workout log from a fitness tracker watch.

๐Ÿช Send your submissions in the comments!

@WeeklyCoder | Week 47
๐Ÿ”ฎ How good are you at predictin'?

Some run fast. Some run slow. And for this week's challenge, let's build a program that predicts users' potential finish times for race distances (5k, 10k, half-marathon 21k, marathon 42k) based on their best pace per kilometer.

๐Ÿฅ… Goal: Given the best pace per kilometer (in minutes per kms), calculate predicted best finish times for:
5km, 10km, 21km, and 42km.

One could sprint through a 1km run with a pace of 2:50min/km but doing the same consistently for a marathon is nearly impossible. Use then, Riegel Formula, to account for the performance decay.

โœ๏ธ Recommended Learning:
- arithmetic operators
- pow (,), log ()

โšก๏ธ Bring the thunder!
- Instead of taking 1.06 as a fixed decay rate, customize it using these figures.
- Take in an actual marathon finish time, obtain the pace, then use the Riegel Formula in reverse to classify a runner's fitness level like this.

๐Ÿช Send your submissions in the comments!

@WeeklyCoder | Week 48
๐Ÿ‘1๐Ÿ‘จโ€๐Ÿ’ป1
๐Ÿšด To Move Invites Wear

A bike is equipped with a sensor that tracks the total number of tire rotations. The diameter of a typical bike tire is 66cm and is rated to last Total Distance (D) 3,000 km before it wears.

๐Ÿฅ… Goal: Write a program that takes the number of tire rotations as input and calculate:
- the total distance traveled in kms using the entered tire rotations
- the remaining kilometers and rotations before the tire needs to be replaced

โœ๏ธ Recommended Learning:
- Arithmetic Operators, Constants (PI)
- Arc Length (C): C = 2ฯ€r
- Number of Rotations (N): N = D / C

โšก๏ธ Bring the thunder!
- Introduce Wear Factor: read more here
- Display also the current wear percentage of the tire based on the traveled distance.

๐Ÿช Send your submissions in the comments!

@WeeklyCoder | Week 49
This media is not supported in your browser
VIEW IN TELEGRAM
๐Ÿ–ผ It's lenticular time!

You've seen them before. Lenticular prints create mesmerizing illusions of depth, motion, or transformation by blending multiple images into one dynamic visual experience.

With a simple change in perspective, these prints captivate the eye, bringing 3D effects or animated transitions to life without the need for special glasses or devices.

And these week, let's try and simulate them like the video above.

๐Ÿฅ… Goal: Given a series of images, use the mouse cursor to hover over from side to side to simulate a lenticular print. Like this.

โœ๏ธ Recommended Learning:
- PImage, loadImage (), image ()
- arrays, loops, concatenation
- map (), mouseX

โšก๏ธ Bring the thunder!
- use tools like ezgif to split your own GIFs to images and use them in your code.

๐Ÿช Send your submissions in the comments!

@WeeklyCoder | Week 50
๐Ÿœ Only a matter of time!

Termites multiply fast, but their survival depends on food supply. How long can a termite colony survive with limited resources?

This week, let's simulate how long a colony can last before they run out of resources โ€” before they perish (as they will).

๐Ÿฅ… Goal: Given an initial population, a growth rate, and a fixed food supply, calculate how long a termite colony can survive before their food runs out.

Output each population step and how much food is left until itโ€™s game over!

Starting figures here.

โœ๏ธ Recommended Learning:
- loops
- selection statements
- operators

โšก๏ธ Bring the Thunder!
- What if some termites could produce food? Add that to the run.
- What if some termites have gatherings that increases their food consumption?

๐Ÿช Send your code in the comments!

@WeeklyCoder | Week 51
๐ŸŽ‰ Weekly Coder Turns One! ๐ŸŽ‚

That's right! It's already been one whole year! That's 52 projects. And if you've been following along, that's one project a week to work your programming muscles. Your abs showing yet?

๐ŸŽ Thanks for being here. Hope you're finding the contents here useful. Hope you're acting on them. Do.

๐Ÿงฌ Let's invite Levenshtein to celebrate.

DNA sequences can be millions of characters long, and even tiny mutations can lead to serious consequences โ€” making manual identification of every difference between two sequences practically impossible.

Objective here.
Example here.

๐Ÿฅ… Goal: Given two long DNA sequences, calculate how many mutations are required to transform one sequence into the other.

โš™๏ธ Starting pairs here

โœ๏ธ Recommended Learning:
- Loops
- Conditionals (if statements)
- String comparison

โšก๏ธ Bring the Thunder!
- What if the sequences are of different lengths?
- Say where the mutations are by listing out their location.

๐Ÿช Send your code in the comments!

@WeeklyCoder | Week 52
๐ŸŽ‰8
๐Ÿ“ฒ T9 Keypad Ciphering

Before smartphones, feature phones were the norm. Using the T9 (multi-tap) number pads to text, dial, and interact. Each number represented multiple letters (e.g., 2 for ABC, 3 for DEF), and typing required multi-presses of a single key.

This week, let's recreate that experience with ciphering twist!

๐Ÿฅ… Goal: Encode and decode text messages based on the feature phone keypad system. โ€” Convert text to keypad sequences.

Example: "Weekly Coder" โž” 9 33 33 55 555 999 / 222 666 3 33 77

Keypad Reference here.

โœ๏ธ Recommended Learning:
- StringDict, split
- Selection Statements, loops
- Arrays
- Concatenation

๐Ÿช Submit your code in the comments!

@WeeklyCoder | Week 53
๐Ÿ‹๏ธโ€โ™‚๏ธ The 1 Rep Max (1RM)

1RM is the maximum weight a person can lift for a single rep (repetition). Itโ€™s a key benchmark for strength and allows lifters to structure their workouts based on training intensity.

๐Ÿฅ… Goal: This week, let's create a program that lets lifters insert the weight they lift and reps they completed and use the Epley formula to calculate their 1RM.

For instance, if a person can lift 10 kg for 15 reps, their estimated 1RM using the Epley formula is: 15kg. That means, the maximum weight they can lift is 15kg โ€” a single rep.

Training Intensity Categorization: here

โš™๏ธ Task:
- Let users insert the weight they lift and reps
- Let your program calculate 1RM using Epley's formula
- Let it then tell in kgs what the Training Intensity classifications are for them

โœ๏ธ Recommended Learning:
- operators, variables
- concatenation

๐Ÿช Submit your code in the comments!

@WeeklyCoder | Week 54
๐ŸŽ Regenerative Breaking

Regenerative braking in electric cars helps recharge the battery by converting kinetic energy back into electricity. However, the energy recovery rate is not purely linearโ€”it depends on speed and braking duration.

This week, let's build a program that estimates how much energy can be recovered during braking using a more realistic efficiency model.

๐Ÿฅ… Goal: Let's create a program that calculates the energy regenerated while keeping in mind that energy recovery is highest at moderate speeds and decreases at both low and high speeds.

๐Ÿ”‹ Non-Linear Energy Recovery Formula: here.

โš™๏ธ Task: Let users insert the car's speed (in km/h) and braking duration (in seconds).

Calculate then the total energy recovered using the formula above.

โœ๏ธ Recommended Learning:
- operators, variables
- input handling
- pow (, )

๐Ÿช Submit your code in the comments!

@WeeklyCoder | Week 55
๐Ÿ–ฅ It's your turn!

Let's have an open projects submission this week. What kind of projects have you worked on since the beginning of Weekly Coder?

Whether that's a small one hour project or one that took months to finish, let you submit your best (max. of 5) projects here.

Share your works in the comments.

@WeeklyCoder | Week 56
๐Ÿ‘1
Weekly Coder
๐Ÿ–ฅ It's your turn! Let's have an open projects submission this week. What kind of projects have you worked on since the beginning of Weekly Coder? Whether that's a small one hour project or one that took months to finish, let you submit your best (max. ofโ€ฆ
๐Ÿ™ˆ Did you just miss a prize of Monthly Unlimited Internet & Voice Package by not partaking in last week's challenge?

Of course you did.

Let's see who learns. Challenge extended till next Thursday 23:59.

๐ŸŽ The prizes of then maybe bigger, maybe not. Only one way to find out.

Share your works in the comments.

@WeeklyCoder | Week 57
๐Ÿž Let's make something delicious this week!

Bakers have a system called "Bakers' Percentage" where the weight of each ingredient is expressed as a percentage of the flour weight, which is always 100%.

This simplifies scaling and recipe adjustments, as all other ingredients are calculated relative to the flour.

๐Ÿฅ… Goal: Create a program that, given the desired weight (g) of a loaf of bread, that calculates the amount of ingredients required โ€” taking account a 15% loss in weight of dough when becoming a bread after baking.

๐Ÿ‘‰ Base this Sheets to see details and get your formulae.

Eg:
- Input: weight of bread (g): 100
- Output: Flour (70.25g), Water (42.15ml), Yeast (0.84g), Salt (1.41), and Improver (0.35).

โœ๏ธ Recommended Learning:
- operators, variables
- input handling
- rounding, concatenation

๐Ÿช Submit your code in the comments!

@WeeklyCoder | Week 58
๐Ÿ’ฐ Receipt Detective

A cashier at a boutique is tasked to verify the validity of a transaction using an RN (Reference Number). To do this, she manually creates a link using an RN and the last 8 digits of their account number.

Template Link:
https://apps.cbe.com.et:100/?id=<REFERENCE NUMBER><LAST 8 DIGITS>

Boutique's last 8 digits: 61108592
Example RN: FT24341HNN9T

Receipt Link:
https://apps.cbe.com.et:100/?id=FT24341HNN9T61108592

๐Ÿฅ… Goal: Given the account number of the boutique is always the same, let you take as an input the RN from a user and verify the transaction.

๐Ÿพ Steps:
- take RN as input from user
- use the RN and 8 last digits of the account number to build the receipt URL
- let your code download the PDF receipt using the URL
- load the PDF and obtain its contents as text (example here)
- extract useful information and do the verification

๐Ÿ“… Submissions: Sunday Morning, 2:00 LT

๐Ÿช Send your submissions in the comments!

@WeeklyCoder | Week 59
๐Ÿ”ฅ3
๐Ÿคš๐Ÿ– Wo wo wo! But can you paint?

Let's build a simple paint app this week. Much like MS Paint, let it allow to draw, erase, and save on a digital canvas.

๐Ÿฅ… Goal: create a program that allows users to draw on a canvas with the following features:
- brush Tool: Choose a shape (circle, square, triangle, or plus) to draw with.
- brush size: Offer finite options for brush sizes.
- color tool: Choose a color (could be random or via a color picker/input dialog).
- eraser tool: Erase parts of the drawing.
- clear canvas: An option to start fresh.

โœ๏ธ Recommended Learning:
- mouseX, mouseY, pmouseX, pmouseY
- mousePressed, mouseReleased, mouseDragged
- point (), line ()
- saveFrame ()

๐Ÿช Submit your creations in the comments!

@WeeklyCoder | Week 60
โœ… The To-Not-Do List

A "to-not-do list" is a list of things you want to avoid doing. Whether that's unhelpful habits or vices, the goal is to eliminate unproductive activities to free up time for what truly matters.

๐Ÿค” We're borrowing Charlie Munger's Inversion Thinking this week. Instead of asking how to succeed, ask how to fail and then avoid those pitfalls.

๐Ÿฅ… Goal: create a program that helps users manage their unproductive habits by tracking what they successfully avoided in a day

โœ๏ธ Example of a to-not-do list:
- binge Social Media for more than 30mins
- procrastinate โ€” do not start that assignment
- stay up and wake up late
- hit snooze button when alarm goes off
- drink less than 2L water a day
- do not participate in WeeklyCoder

โš™๏ธ Task: here

๐Ÿ”จ Usage: here

โœ๏ธ Recommended Learning:
- IntDict (Str - int pair โ€” 1 check, 0 uncheck)
- input handling
- mouseClicked
- keyTyped

โšก๏ธ Introduce streaks, badges, and progress indicators.

๐Ÿช Submit your code in the comments!

@WeeklyCoder | Week 61
This media is not supported in your browser
VIEW IN TELEGRAM
๐ŸŽพ Let's bounce!

This week's challenge is a game that hardly needs a description. Watch and recreate!

โœ๏ธ Recommended Learning:
- variables, arithmetic & logical operators
- background, mouseClicked, functions

โšก๏ธ Use APDE to make a real Android game from your Processing sketch!

๐Ÿช Submit your code in the comments!

@WeeklyCoder | Week 62
๐Ÿ”ฅ2