Thanks for your help to the community, these videos are a great starting point in understanding the underlying concepts and one can take it on from there. Much appreciated!
Do like, share the video and subscribe to the channel. Also, please find the direct links for code and different sections of the video in the description if you want to directly jump to that section.
Great video Udit. You have illustrated & articulated the SOLID principles brilliantly. I also had a look at your code. Instead of computing the next possible cells and checking if the destination cell is a part of it, could we have a Moveable interface & each piece implementing move(Cell destination). Wouldn't it optimize the calculation? Let me know our thoughts on it Looking forward to such videos with a great explanation. Thanks.
Hey Animesh, yeah, thats definitely one way to do it, but you will see some challenges around implementing blockers/hurdles if you go that way. To be frank, when I started, I wrote it that way only but then found that doing possible cells way is more extensible and more reusable design.
Thanks for the videos sir, I think the knight movement was not correct, knight would move only in L patterns, but here you gave diagonal pattern. also it would have been better if the main functionality was also implemented like pawn killing, checkmate, win/lose game. Please tell me if we can create a separate move provider for knight like PossibleMoveProviderLShape and perform required operations inside that.
Hey I have not implemented any movement type for Knight. You are correct though that knight needs to have L shaped movement. I skipped implementing it since it's just algorithmic implementation. Regarding full in-depth implementations, I do them right from scratch as part of my cohort here: enginebogie.com/u/anomaly2104/offerings/PATH/e6cce7f1-6a56-4fe3-bb82-48e1876e4596
I am confused on checking when the king is on check or not? How are we actually checking if king is check or not as the blocker for king returns empty.
Quick question, why check all possible moves and then check if the move which is being made is in the list of valid moves, why can't we validate if the move that is made is valid or not based on current state of the board? Wouldn't it be much easier?
Good question. The idea is create the design which is able to accommodate future requirements easily. If you go by just validating, then if in future, you need to show available moves for a piece to the user, then it will be big change again. But by current design, future changes will be done easily without much change in existing design. Both validate and find available moves will be like similar kind of effort but latter one is giving you more room for future requirements.
I didn't clearly understand why do we need a separate class to check moveFurtherCondition. Instead in FindAllNextMoves method inside the while loop, we can add else statement which indicates we can't move further because it's not occupiable. Am I missing something here.
@@anomaly2104 Yep, im not jealous or anything i dont even know your channel just saw it on linkedin 😂 Now please dont go and make a linkedin post on this too 🤣 🙏
Thanks for your help to the community, these videos are a great starting point in understanding the underlying concepts and one can take it on from there. Much appreciated!
You have put some serious efforts in making this video. Thanks and keep it up :)
very detailed video, thank you for this. looking forward to see more videos like this.
Thanks Akash :)
your videos are really good and unique since you show the code also. thanks sir
Thanks for the appreciation. Glad you like it!
Your content is truly awesome!! Thank u for such great content.
Do like, share the video and subscribe to the channel.
Also, please find the direct links for code and different sections of the video in the description if you want to directly jump to that section.
Great design bro!!
Great design implementation. A high level class diagram would have been better for explaining some oops concepts
Great video Udit. You have illustrated & articulated the SOLID principles brilliantly. I also had a look at your code.
Instead of computing the next possible cells and checking if the destination cell is a part of it, could we have a Moveable interface & each piece implementing move(Cell destination). Wouldn't it optimize the calculation? Let me know our thoughts on it
Looking forward to such videos with a great explanation. Thanks.
Hey Animesh,
yeah, thats definitely one way to do it, but you will see some challenges around implementing blockers/hurdles if you go that way. To be frank, when I started, I wrote it that way only but then found that doing possible cells way is more extensible and more reusable design.
You are just awesome!!. Thanks :)
Thanks a lot Manoj :)
Thank you very much bro!!!!!
Nice details, what am I am not sure is is this possible to code and explain in 1-2 hour interview.
Thanks for the videos sir, I think the knight movement was not correct, knight would move only in L patterns, but here you gave diagonal pattern. also it would have been better if the main functionality was also implemented like pawn killing, checkmate, win/lose game.
Please tell me if we can create a separate move provider for knight like PossibleMoveProviderLShape and perform required operations inside that.
Hey
I have not implemented any movement type for Knight. You are correct though that knight needs to have L shaped movement. I skipped implementing it since it's just algorithmic implementation.
Regarding full in-depth implementations, I do them right from scratch as part of my cohort here: enginebogie.com/u/anomaly2104/offerings/PATH/e6cce7f1-6a56-4fe3-bb82-48e1876e4596
@@anomaly2104 Okay Sir, thank you.
I am confused on checking when the king is on check or not? How are we actually checking if king is check or not as the blocker for king returns empty.
very nice video with wonderful explanation.
good one Udit Bhaiya
Thanks Rohan :)
Thanks for video.
Can you make LLD for food delivery system like swiggy,zomato?
Also LLD for distributed payment system(paytm) would be interesting.
Hey Kunal,
Sure, will try to create them.
Quick question, why check all possible moves and then check if the move which is being made is in the list of valid moves, why can't we validate if the move that is made is valid or not based on current state of the board? Wouldn't it be much easier?
Good question. The idea is create the design which is able to accommodate future requirements easily. If you go by just validating, then if in future, you need to show available moves for a piece to the user, then it will be big change again. But by current design, future changes will be done easily without much change in existing design.
Both validate and find available moves will be like similar kind of effort but latter one is giving you more room for future requirements.
@@anomaly2104 wow nice
Thank you!
I didn't clearly understand why do we need a separate class to check moveFurtherCondition. Instead in FindAllNextMoves method inside the while loop, we can add else statement which indicates we can't move further because it's not occupiable. Am I missing something here.
Great video as always. But while preparing for timed mc rounds, I think this would be hard to complete within 1.5 hours
Is your GitHub repository still active for making a PR. I would like to.
I am not sure how I will come up with this in 1.5 hr interview and implement it.
i was asked this in a 45 minutes interview for a software engineer intern postion and i fucked it up
@@kaushik.aryan04 for which company?
@@rajaryanpathak3859 it was a ai based startup in Bangalore
Doesnt Cell violate SRP?
Can Anyone Tell how the chess board can be of any size as he has mentioned here ? i don't think it can be greater or smaller than 8 * 8 ??
King will also have an additional PossibleMovesProviderHorizontal of maxSteps - 2 for castling! ;) Pawn will aslo have MovesProviderDiagonal.
Are supposed to really come with this complex solution in an interview !! i need to git gud.
Bro your code is way more complex
bhai do piece mai todni chahie video aapko b/w great explaination
Who all came to dislike 😂
Anyway nice content i just had the urge to hit that dislike button.
Seriously? You just came here to hit dislike button? Just out of fun?
@@anomaly2104 Yep, im not jealous or anything i dont even know your channel just saw it on linkedin 😂 Now please dont go and make a linkedin post on this too 🤣 🙏