System Design Interview: Chess Game | Low Level Design | Design Principles | LLD | Machine Coding

Поделиться
HTML-код
  • Опубликовано: 31 янв 2025

Комментарии • 47

  • @mayankkhanna113
    @mayankkhanna113 3 года назад +1

    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!

  • @priyanshgupta6830
    @priyanshgupta6830 3 года назад +2

    You have put some serious efforts in making this video. Thanks and keep it up :)

  • @AkashJadhavIT
    @AkashJadhavIT 4 года назад +3

    very detailed video, thank you for this. looking forward to see more videos like this.

  • @charan775
    @charan775 4 года назад +2

    your videos are really good and unique since you show the code also. thanks sir

    • @anomaly2104
      @anomaly2104  4 года назад

      Thanks for the appreciation. Glad you like it!

  • @priyankamishra5704
    @priyankamishra5704 2 года назад

    Your content is truly awesome!! Thank u for such great content.

  • @anomaly2104
    @anomaly2104  4 года назад +4

    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.

  • @UntamedRogueMavrick
    @UntamedRogueMavrick 2 года назад

    Great design bro!!

  • @ashikdinesh8515
    @ashikdinesh8515 4 года назад +11

    Great design implementation. A high level class diagram would have been better for explaining some oops concepts

  • @animesh3436
    @animesh3436 4 года назад +3

    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.

    • @anomaly2104
      @anomaly2104  4 года назад +1

      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.

  • @ManojVarma125
    @ManojVarma125 4 года назад +1

    You are just awesome!!. Thanks :)

  • @chabhishyam
    @chabhishyam 3 года назад +1

    Thank you very much bro!!!!!

  • @rishabhnitc
    @rishabhnitc 2 года назад +1

    Nice details, what am I am not sure is is this possible to code and explain in 1-2 hour interview.

  • @crazeeealgorithms3236
    @crazeeealgorithms3236 9 месяцев назад

    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.

    • @anomaly2104
      @anomaly2104  9 месяцев назад

      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

    • @crazeeealgorithms3236
      @crazeeealgorithms3236 9 месяцев назад

      @@anomaly2104 Okay Sir, thank you.

  • @pratik7040
    @pratik7040 9 месяцев назад

    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.

  • @sachinjindal7327
    @sachinjindal7327 4 года назад

    very nice video with wonderful explanation.

  • @ferringxor
    @ferringxor 4 года назад +1

    good one Udit Bhaiya

  • @kunal4350
    @kunal4350 4 года назад +3

    Thanks for video.
    Can you make LLD for food delivery system like swiggy,zomato?
    Also LLD for distributed payment system(paytm) would be interesting.

    • @anomaly2104
      @anomaly2104  4 года назад

      Hey Kunal,
      Sure, will try to create them.

  • @omi04
    @omi04 4 года назад +2

    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?

    • @anomaly2104
      @anomaly2104  4 года назад +5

      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.

    • @saivasanth8819
      @saivasanth8819 3 года назад

      @@anomaly2104 wow nice

  • @siddharthmagadum16
    @siddharthmagadum16 2 года назад

    Thank you!

  • @Ramchandra-fp2ty
    @Ramchandra-fp2ty 3 года назад

    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.

  • @abhinavgupta6540
    @abhinavgupta6540 3 года назад

    Great video as always. But while preparing for timed mc rounds, I think this would be hard to complete within 1.5 hours

  • @siddharthmagadum16
    @siddharthmagadum16 2 года назад

    Is your GitHub repository still active for making a PR. I would like to.

  • @hey.............
    @hey............. 2 года назад +2

    I am not sure how I will come up with this in 1.5 hr interview and implement it.

    • @kaushik.aryan04
      @kaushik.aryan04 9 месяцев назад

      i was asked this in a 45 minutes interview for a software engineer intern postion and i fucked it up

    • @rajaryanpathak3859
      @rajaryanpathak3859 8 месяцев назад

      @@kaushik.aryan04 for which company?

    • @kaushik.aryan04
      @kaushik.aryan04 8 месяцев назад

      @@rajaryanpathak3859 it was a ai based startup in Bangalore

  • @ashwint959
    @ashwint959 6 месяцев назад

    Doesnt Cell violate SRP?

  • @soniavinash2613
    @soniavinash2613 2 года назад

    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 ??

  • @LightningXThunderVlogs
    @LightningXThunderVlogs 4 года назад

    King will also have an additional PossibleMovesProviderHorizontal of maxSteps - 2 for castling! ;) Pawn will aslo have MovesProviderDiagonal.

  • @Thepankaz1
    @Thepankaz1 3 года назад

    Are supposed to really come with this complex solution in an interview !! i need to git gud.

  • @siddarathsingh6364
    @siddarathsingh6364 3 месяца назад

    Bro your code is way more complex

  • @SUNNYKUMAR-cl1xw
    @SUNNYKUMAR-cl1xw 3 года назад

    bhai do piece mai todni chahie video aapko b/w great explaination

  • @martinharris4416
    @martinharris4416 3 года назад +4

    Who all came to dislike 😂
    Anyway nice content i just had the urge to hit that dislike button.

    • @anomaly2104
      @anomaly2104  3 года назад +6

      Seriously? You just came here to hit dislike button? Just out of fun?

    • @martinharris4416
      @martinharris4416 3 года назад +4

      @@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 🤣 🙏