Programming a Tetris Game in C# - Full Guide

  Рет қаралды 199,590

OttoBotCode

OttoBotCode

Күн бұрын

Пікірлер: 427
@OttoBotCode
@OttoBotCode 9 ай бұрын
*Source code* If you don't want to write the code yourself, it's available here for 3$ (and free for Patreon supporters): www.patreon.com/OttoBotCode/shop/78691 Your support would be a massive help for me and my channel! 🤩
@norbertabone9157
@norbertabone9157 9 ай бұрын
The link seems not to be working
@OttoBotCode
@OttoBotCode 9 ай бұрын
@@norbertabone9157 That's a shame. It works just fine on my end. Could you try again and see if it works now? Alternatively, try to go straight to www.patreon.com/OttoBotCode. You can find the Tetris code in the shop 😊
@PMyt007
@PMyt007 3 ай бұрын
Brother do you want sail any project of c#
@PMyt007
@PMyt007 3 ай бұрын
Bcz i need in emergency
@alexanderbozhko
@alexanderbozhko Ай бұрын
​@@OttoBotCodeI see CS0122 Error. I don't know how to fix it. Thanks for advance. Here's the code: int dropDistance = gameState.BlockDropDistance();
@vstom910
@vstom910 2 жыл бұрын
I love how simple this way of creating Tetris is compared to other examples. Keep up the good work!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thanks, I appreciate it. More content coming soon😀
@aiksjdijdemlfnewklfn7092
@aiksjdijdemlfnewklfn7092 Жыл бұрын
@@OttoBotCode What is the name of the data structure u used?
@shanep2514
@shanep2514 2 жыл бұрын
I love how you took the time to talk about designing the application. Much appreciated after browsing other C# videos.
@OttoBotCode
@OttoBotCode 2 жыл бұрын
I am glad you liked it, thanks for watching!
@joevaghn457
@joevaghn457 11 ай бұрын
Very good for showing a completed project! Can't say many have ever actually shown a project as finished, or even so much as _declared_ their project as finished. So that gets bonus points! Kudos, bro.
@TeamROsky
@TeamROsky 2 жыл бұрын
this video and channel are SOOO underrated you deserved my sub!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thank you so much!
@TeamROsky
@TeamROsky 2 жыл бұрын
@@OttoBotCode For real this is one of the best tutorial video's I've ever seen in my programming career love to see a new big channel at it's early stages of growing! I will do my best to share this content with everyone I know that loves this! I hope the best for you and wishes your channel a great growth in the near future :)
@OttoBotCode
@OttoBotCode 2 жыл бұрын
@@TeamROsky Awesome to hear. It is greatly appreciated, much more content coming soon!
@TeamROsky
@TeamROsky 2 жыл бұрын
@@OttoBotCode My teacher has send the other classes towards your video so they can do this as a task! Never expected that to happen but here you go :)
@OttoBotCode
@OttoBotCode 2 жыл бұрын
@@TeamROsky Wow super cool! Thanks again :)
@gurbanaarongulman2505
@gurbanaarongulman2505 5 ай бұрын
Bro I can't stress this enough : if you keep making C++ , C# tutorials your channel is going to skyrocket ,and hold on hold on before you say that people are more into py and js now yeah yeah I’ve done it all ppl in the comments have done it all, BUT because C# and C++ tutorials are FREAKING rare . I figured that learning the universal concepts and principles of programming languages and their special features are best served with a pinch of tutorials before you go out there and create your own apps. It can be very frustrating just sitting there and creating stuff without seeing how to make them in the first place. You are freaking life savior with this I swear to God. PLEASE make more videos !!!n
@OttoBotCode
@OttoBotCode 5 ай бұрын
Thanks, I hear you. There will be more videos, this is just the beginning! At the moment, it's hard for me to find time for my videos, but that will change in 2 months time 😉
@gurbanaarongulman2505
@gurbanaarongulman2505 5 ай бұрын
@@OttoBotCode Man all thanks to you sure I can't wait to see more !
@chipolinchikaloe8447
@chipolinchikaloe8447 5 ай бұрын
I'm from Belarus, studying at university and starting to make games. Your tutorial was very helpful, the code is very beautiful. Thank you ♥♥♥
@OttoBotCode
@OttoBotCode 4 ай бұрын
Thank you! I'm glad you like it 👍
@sumugu161
@sumugu161 Ай бұрын
thank you for showing the complete guide from programming to developing and testing everything in real world. it helps me a lot to understand the various use of method and functions too ..keep it up.. one subscriber ..
@rawbrwoarry6407
@rawbrwoarry6407 2 жыл бұрын
why is this channel so underrated????
@nikolaoskonstantinidis3505
@nikolaoskonstantinidis3505 11 ай бұрын
I'm a beginner at C# and unfortunately this is very hard for me to follow for some reason. Something about the explanations don't "click" with me. Maybe I'll try it again at a future time. Appreciate all the hard work you put in it though and the fact that you answer all your comments. Much respect.
@OttoBotCode
@OttoBotCode 11 ай бұрын
For a beginner, this is too hard. It's more helpful for people who know properties, inheritance, basic collections, etc. If you know such things, following a tutorial like this one can help you get to the next level. I don't speed up the typing like I did for this video anymore, that's probably another reason why it's a bit hard to follow. Once you get more familiar with C# and you want to create a small project, definetely come back here (or perhaps check out my Snake tutorial) and give that a try. Thanks for your comment! 😊
@BeenYT
@BeenYT 29 күн бұрын
the implementation is more math than code, hes good at explaining what each method does ur just not listening
@nikolaoskonstantinidis3505
@nikolaoskonstantinidis3505 29 күн бұрын
@@BeenYT He said it himself that this is too hard for beginner. I guess "ur" just not reading...
@tbpotn
@tbpotn 2 жыл бұрын
Very clean! Don't know how i stumbled upon this video, but well done :)
@mrjelk8902
@mrjelk8902 Жыл бұрын
Otto, this tutorial helped me a lot. Thank you for a clear and simple explanation. Keep making such amazing and interesting videos. Well done and good luck
@OttoBotCode
@OttoBotCode Жыл бұрын
Thank you, that's great to hear! I'm working on the next project (also in C#) 😉
@daeyoungkim4971
@daeyoungkim4971 2 жыл бұрын
This would be my weekend challenge for this Saturday. Thanks for the great tutorial!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thank you! 😃
@solomareds
@solomareds 2 жыл бұрын
Thanks for making this video. I believe it is the best way to learn how to transform theory into true code. You have been very clear and I would not be able to do many things.
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thank you for watching. Glad it was helpful
@mariousranasinghe2161
@mariousranasinghe2161 Ай бұрын
Seriously well done and thank you for this.
@andergarcia1115
@andergarcia1115 Жыл бұрын
Master... thank you very much for the quality of your content. It is a great contribution to make the knowledge available to everyone. Someday i want to be like you.
@OttoBotCode
@OttoBotCode Жыл бұрын
Glad you enjoyed it and thanks for the kind words!
@kallismb3015
@kallismb3015 2 жыл бұрын
This is one of the best programming videos I've seen. Everything very well explained but simple at same time. Btw loved the edit too. Keep up the amazing work! Thank youu!!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thank you! Awesome to hear 😃
@Gozer
@Gozer 2 жыл бұрын
Thanks mate, this helped me a lot!
@DennisRitchie1978
@DennisRitchie1978 Жыл бұрын
Very good explanations, it helped me a lot in learning object oriented programming in C#. thanks a lot!!! :-)
@OttoBotCode
@OttoBotCode Жыл бұрын
Thanks for your comment 😊
@markharby180
@markharby180 3 ай бұрын
Great tutorial Otto, this is a feature-rich game.
@OttoBotCode
@OttoBotCode 2 ай бұрын
Thanks!
@greekz8750
@greekz8750 2 жыл бұрын
I've seen that has actually explained it to in a concise way!
@TinyMaths
@TinyMaths Жыл бұрын
Well, I'm still in the 'learning to code phase' but I just finished my first iteration of Tetris which I coded with JavaScript. Wow, at a certain point I thought I was going to lose my mind because I ran into so many issues, but somehow it's 95% finished now. So, seeing your vid thumbnail, I thought I'd come and learn something. My code is about 4 times the size of yours. I've got a thing or two to learn as yet. It's fascinating to see how you handled the dropping of non-full rows after clearing 'x' amount of rows. That whole process gave me massive headaches.
@OttoBotCode
@OttoBotCode Жыл бұрын
Good luck with finishing your project. I'm glad this video was helpful 😊
@dadoodooman4928
@dadoodooman4928 2 жыл бұрын
Very clear and good explanation, good animations and entertaining, helped me a lot :) Well done:)
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thank you so much, really glad you like it!
@InOutLake
@InOutLake 9 ай бұрын
So simple and clear! I like it Also I noticed how your clead code improves mine, and it feels is amazing! Thank you
@OttoBotCode
@OttoBotCode 9 ай бұрын
Great to hear! Thanks for your comment 👍
@norbertabone9157
@norbertabone9157 9 ай бұрын
Great video!! the idea flow is simple and easy to understand
@cobrakilla8
@cobrakilla8 Жыл бұрын
This is amazing. How did you learn to program, so simple yet so efficiently? It's like you are so perfect at this, when I program I just go with the flow, and although I would love my code to be as flexible and simple as yours, it never turns out like this. You are extremely talented, thanks for this amazing tutorial.
@OttoBotCode
@OttoBotCode Жыл бұрын
Thank you so much for the kind words! When I program, I try my best to write clean and efficient code that's as easy to understand as possible. I have a masters degree in computer science, which is where I have a lot of my knowledge from. My coding style comes from a lot of hard work and passion for the field! 😊
@gonzaloalbornoz4128
@gonzaloalbornoz4128 Жыл бұрын
This is awesome. Thank you so much and greetings from Argentina
@OttoBotCode
@OttoBotCode Жыл бұрын
Thanks for your comment and greetings from Denmark 😉
@funtimesans13
@funtimesans13 Жыл бұрын
Very cool game, it was fun to make at times, other times it was a pain in the back because of the errors I got, but overall, I got'em fixed and the game itself is pretty well done. Thank you for the experience
@OttoBotCode
@OttoBotCode Жыл бұрын
Glad to hear you worked out in the end. Thanks for your comment!
@melitonolguinmendoza
@melitonolguinmendoza 8 ай бұрын
Great video. It was easy to follow and understand.
@brunobezzan1169
@brunobezzan1169 2 жыл бұрын
It's my first day of soft School, and I can tell I'm going to like my teacher!
@rickyryannacario1936
@rickyryannacario1936 2 жыл бұрын
OMG, it really worked. Thank you so much!!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
You're welcome!
@smpitbaitussalam2cangkring515
@smpitbaitussalam2cangkring515 2 жыл бұрын
DUDE, I got so frustrated 'cause of that problem, thanks a lot!
@aaronjayzosadelapena8356
@aaronjayzosadelapena8356 2 жыл бұрын
thank you so much. Its easy to understand. it was really helpful
@OttoBotCode
@OttoBotCode 2 жыл бұрын
You're welcome 😃 Glad you liked it!
@dave_s_vids
@dave_s_vids 2 жыл бұрын
Seriously impressive - thanks!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
You're welcome 😊
@meatgaming1352
@meatgaming1352 Жыл бұрын
utilised and enjoyed wNice tutoriallst increasing in value.
@remigiuszobrycki9098
@remigiuszobrycki9098 7 ай бұрын
This tutorial is great, but for some reason I couldn't get the game to run fully. While debugging, the game goes to GameOver state after a split second. After pressing "PlayAgine" it is the same. VisualStudio shows no errors.
@tanm3051
@tanm3051 2 жыл бұрын
I'm surprised you have less than 700 subs! This is great content, keep up the great work
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thank you for the kind words. More content coming soon 😊
@benstin2317
@benstin2317 3 ай бұрын
Really appreciate it!!!!
@arthurodelapena-ii4112
@arthurodelapena-ii4112 2 жыл бұрын
thank you sooo much for the torurial.it helps a lot
@OttoBotCode
@OttoBotCode 2 жыл бұрын
You are welcome 😊 Thanks for your comment 👍
@ArtemSerov
@ArtemSerov Жыл бұрын
It's awesome!!! Thank you very, very much!!!!
@OttoBotCode
@OttoBotCode Жыл бұрын
Thanks for the nice comment 😊
@Smqckd
@Smqckd 2 жыл бұрын
Elsker at jeg kan hører du er dansker!
@JuxGD
@JuxGD 2 ай бұрын
aw i was hoping you'd do 7-bag instead of random with double protection 7-bag is like, you get the tetrominos in groups, or bags, of 7. all tetrominos in one bag are different. then you get a new bag, and the cycle repeats. 7-bag is the standard in modern guideline Tetris
@JuxGD
@JuxGD 2 ай бұрын
also no SRS kick table :(
@MkStar55
@MkStar55 2 жыл бұрын
Thanks! Good Work!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thank you 😃
@user-qf9dg4xx4b
@user-qf9dg4xx4b Ай бұрын
'MainWindow' does not contain a definition for 'Window_KeyDown' and no accessible extension method 'Window_KeyDown' accepting a first argument of type 'MainWindow' could be found (are you missing a using directive or an assembly reference?)😣
@edrobinson8248
@edrobinson8248 Жыл бұрын
simply brilliant
@OttoBotCode
@OttoBotCode Жыл бұрын
Thank you!
@elenatrifonova5286
@elenatrifonova5286 2 жыл бұрын
OMG! You are a life saver. Thanks you for clear description of every step of the way; amazing content! Good luck!!!!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
You're welcome 😀
@elenatrifonova5286
@elenatrifonova5286 2 жыл бұрын
@@OttoBotCode Is it possible to add tetris song to this app? I know how to do it in Windows Forms app, but here the same code doesn't work :sob: I added the mp3 file to the Assets folder and changed the Build Action to Resource as for the images, but what do I do next? Thank you so much for your assistance. :hugging_face:
@OttoBotCode
@OttoBotCode 2 жыл бұрын
@@elenatrifonova5286 For the mp3 file. You have to set "Build Action" to "Content" and "Copy to Output Directory" to "Copy always". You can play the sound with the MediaPlayer class. MediaPlayer player = new MediaPlayer(); player.Open(new Uri("Assets/your_sound.mp3", UriKind.Relative)); player.Play();
@elenatrifonova5286
@elenatrifonova5286 2 жыл бұрын
@@OttoBotCode Super Mega LIKE to you, my friend! It can sing now :grin:
@ma.donnabelramos4350
@ma.donnabelramos4350 Жыл бұрын
nice tuto bro, that solved!
@rawbrwoarry6407
@rawbrwoarry6407 2 жыл бұрын
this was so good and simple !!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thanks and happy new year 😀
@rickyricky4610
@rickyricky4610 Жыл бұрын
Great video 👍🥰❤️
@hurmanfåraiallaämnen
@hurmanfåraiallaämnen 2 жыл бұрын
Great vid!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thanks! 😉
@KidFlash22898
@KidFlash22898 2 ай бұрын
27:58 I'm getting 2 errors under the TilePositions and under the Id in [block.Id]. Both the error codes are CS1061
@MaineMaineJr
@MaineMaineJr 2 ай бұрын
First off fantastic video. Secondly I see there's code so that the same block cannot be called twice in a row. What would be the best way to make this happen call all 7 blocks before repeating the same block?
@gvuprise1465
@gvuprise1465 Жыл бұрын
i love this! thank you so much please do mmore
@lancebrixtermendoza3268
@lancebrixtermendoza3268 4 ай бұрын
I have problem here the block it doesn't move. When I press the keys for rotating is ok but when I press right, left and down button it doesn't move please help me 29:07
@e.alarcon5322
@e.alarcon5322 2 жыл бұрын
what throws off is the step sequencer. i ntally associate it with a soft/clip whether it's being used or not. also when you do
@mrstickman6718
@mrstickman6718 2 жыл бұрын
Sir I just watched ur video big fan sir U deserve respect coz u r a very talented person. I'll subscribe u from my all 5 KZbin accounts 🙂❤️❤️❤️
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Wow, thank you so much! Glad you enjoyed it 🤩 Next video will be out next week 😃
@mrstickman6718
@mrstickman6718 2 жыл бұрын
@@OttoBotCode Job done sir 😌 5 added..
@OttoBotCode
@OttoBotCode 2 жыл бұрын
@@mrstickman6718 Awesome, thanks again!
@harryhayfron-benjamin5199
@harryhayfron-benjamin5199 2 жыл бұрын
Hey i ran into this issue what should i do 'MainWindow' does not contain a definition for 'GameCanvas_Loaded' and no accessible extension method 'GameCanvas_Loaded' accepting a first argument of type 'MainWindow' could be found (are you missing a using directive or an assembly reference?
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Hello! It sounds like you are missing the GameCanvas_Loaded method in MainWindow.xaml.cs.
@harryhayfron-benjamin4189
@harryhayfron-benjamin4189 2 жыл бұрын
@@OttoBotCode true I fixed it but the program was just showing the canvas but it was still empty how do I fix that?
@cryptolivetv7276
@cryptolivetv7276 2 жыл бұрын
I have had the hardest ti finding a video on soft that actually made sense to (I'm brand new with literally zero knowledge) and tNice tutorials
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thank you! 😊
@hampus3699
@hampus3699 Жыл бұрын
its beutiful how you animate this to show it. i dont know how you do it but it shows us really well. thanks a lot. im gonna make this on my school computer and im making snake at home
@OttoBotCode
@OttoBotCode Жыл бұрын
Thank you for the kind words! Best of luck with both projects 😀
@lenguyenquangnamfgwdn2611
@lenguyenquangnamfgwdn2611 Жыл бұрын
Thank you Sir
@satmat2272
@satmat2272 2 жыл бұрын
thank you youre the best bro
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thank you for watching 😊
@DasiyshineAJ
@DasiyshineAJ 3 ай бұрын
Hello! I am having some trouble with the game after play again is clicked. The DropBlock method is not being invoked but all the other buttons work. When I do the dropblock method, the game speed up. Any ideas? Thank you!
@thereajosh957
@thereajosh957 Жыл бұрын
this game is not fool proof so if you got bad code in some in it then find a new game to code. Otto can you like put comments on top of the code so it makes sense please.
@lactoze_
@lactoze_ Жыл бұрын
couldn't agree more
@TheLyrandana
@TheLyrandana Жыл бұрын
so cool thanks
@bugatti555xd3
@bugatti555xd3 3 ай бұрын
el Id del bloque I Me esta marcando error y lo tengo igual al del minuto 11:28
@Genexyz_von_Deus
@Genexyz_von_Deus 2 жыл бұрын
Damn I found a good channel, sub++
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Haha thanks!
@theperfectionist3924
@theperfectionist3924 2 жыл бұрын
There's a video on In The setup's channel about free DAWs, alternatives, and even if you can't afford it you can "get" it. Not quite an
@alperenates1165
@alperenates1165 Жыл бұрын
I have a question. What should i do if i want to tetris 3d? How should i set the positions and change 'Block' class? I am not sure honestly how many position state.
@jellycoding
@jellycoding 2 жыл бұрын
Why do you have to speed up the coding? If you coded in natural speed we could code along with you.
@OttoBotCode
@OttoBotCode 2 жыл бұрын
I figured that you would have to pause and play anyway but I appreciate the feedback!
@jellycoding
@jellycoding 2 жыл бұрын
@@OttoBotCode Look at how Brad Traversy does it. I almost never have to pause in his videos. It makes it flow. Here I have to pause my self into madness.
@OttoBotCode
@OttoBotCode 2 жыл бұрын
@@jellycoding I will check it out, thanks
@El_kammex
@El_kammex 2 жыл бұрын
Hey, where you learned programming like that? Any Books or only tutorials from yt, maybe some studies(I ask out of curiosity). About same game, this is really simple explain and coding, good work.
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Hello! I have a bachelor's degree in "Software Development" and a master's degree in "Computer Science" 😊 Whenever I find something that interests me, I like to try it myself and create some small project 😉 Great that you like this one!
@johnniegilkerson4724
@johnniegilkerson4724 Жыл бұрын
Sorry found my error: I had private void Window_KeyDown(object sender, KeyboardEventArgs e) instead of Window_KeyDown(object sender, KeyEventArgs e)
@deniscooper09
@deniscooper09 2 жыл бұрын
Make a guide about snake game!
@OttoBotCode
@OttoBotCode 2 жыл бұрын
I will add it to my list 👍
@OttoBotCode
@OttoBotCode 2 жыл бұрын
It took a while but I did it! 😁 kzbin.info/www/bejne/q6ukiat8d8eJpac
@stevengualoto4626
@stevengualoto4626 Жыл бұрын
at what moment does the Hold appear on the screen, that is, when this event occurs
@abdullahajeebi
@abdullahajeebi Жыл бұрын
pretty good ngl
@firulais9982
@firulais9982 8 ай бұрын
amazing video, do you consider this project as a beginner or intermediate project
@OttoBotCode
@OttoBotCode 8 ай бұрын
Thanks! I'd say this is an intermediate project but on the easy side 😉
@panaikran
@panaikran 6 ай бұрын
Hey, I need help at 29:30 I can't get the row to clear is something wrong with it?
@MIGUELOXI10
@MIGUELOXI10 2 жыл бұрын
Nice tutorial, i just cracked soft soft ;)
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Thank you 😊 What are you guys talking about? "soft soft" I don't get it 😂
@klex3905
@klex3905 3 сағат бұрын
The tutorial is fine and pretty simple in the end. But I think I might have dyslexia now because you never once used the backspace. What I the about wpf xaml is you need to read a whole new display markup language book and it's just gross. Nice tutorial though.
@A_S0ur
@A_S0ur Жыл бұрын
This tutorial is amazing, i've been trying to expand the game by adding a database to make a register/login feature is there any way you can help??
@princesarno2652
@princesarno2652 2 жыл бұрын
I can’t drag content / sample into my playlist on Mac? Anyone know how to fix
@rul1175
@rul1175 Жыл бұрын
Incredible video. I have a question, why did u use public abstract classes???
@OttoBotCode
@OttoBotCode Жыл бұрын
You don't need to make it public, that's just how I was taught programming. Using "abstract" does make a lot of sense because we don't want the Block class to be instantiated directly (only the subclasses).
@Avichan_
@Avichan_ 5 ай бұрын
Good afternoon! I have a problem in the code. I am writing on Visual stusio 2017. Everything is clearly written in code, but the O-block is not displayed. It is displayed transparent on the playing field, although it is displayed in the HOLD and NEXT fields.
@OttoBotCode
@OttoBotCode 5 ай бұрын
The hold and next fields display the Block-O.png image. On the playing field, an O-block is displayed using four instances of TileYellow.png. I suspect that Tile-Yellow.png is not loaded correctly in your project. Make sure that Tile-Yellow.png has build action set to "Resource" and double check that you have written the filename correctly in MainWindow.xaml.cs. Let me know if this resolves the issue! 😊
@Apep88
@Apep88 10 ай бұрын
First, thanks for the tutorial. I have an Issue that is only one tetrominos spawns I can move him around and place but after that they spawn no one more
@rileyscola9343
@rileyscola9343 2 жыл бұрын
I’m trying to make dr.Mario and using the grid really helped. How would you go about making things fall in dr.Mario?
@OttoBotCode
@OttoBotCode 2 жыл бұрын
I am glad that it helped you. Many games are easiest to implement using some kind of grid. Unfortunately, I am not familiar with dr.Mario, but best of luck with your project 😀
@rileyscola9343
@rileyscola9343 2 жыл бұрын
@@OttoBotCode thank you!
@footballCartoon91
@footballCartoon91 2 жыл бұрын
I also want to ask about how can you think about what function to create and how would you create it.. for example create a basic function that can be called later inside another function .. how do you think about it? Does this comes from experience and you just instinctively create all the functions in one go? is there a mathematics that can help us create the desired function? Does math function is really important in programming? for example a composite function is that necessary to learn for programming.. i honestly dont know what function to create but you just seamlessly code that without any troubles..
@OttoBotCode
@OttoBotCode 2 жыл бұрын
What you don't see in the video is the process of planning everything and structured the code to be as easy to understand as possible. There are design principles and standard patterns you can follow to some extent. That being said, there is no substitute for practice. With time you will develop a feel for what "good" code and "bad" code is. How important is math? That really depends on what you want to do. For most projects it's not so important in my opinion. It's more important to think logically and keep the code as simple as possible. BUT the really impressive programs like ray tracers, machine learning algorithms and game engines require a lot of math! 😉
@RJ_SGREGORI
@RJ_SGREGORI Жыл бұрын
i cant put a length and tiles help me plsss i need help somebody :
@RJ_SGREGORI
@RJ_SGREGORI Жыл бұрын
help me plsssssss :
@0i3ee
@0i3ee Жыл бұрын
i want to know about grid ,but i dont know how to set position becase all position is 0 all omg my head.
@DasiyshineAJ
@DasiyshineAJ 5 ай бұрын
Hello! What a great video! I haven't made the project yet but have a quick question, I notice that you use individual tile pictures to make a whole block, can I use the entire png of the block instead of using this method? I wish to make my own fun spin on Tetris with a different style to the blocks, maybe something like animals! Thanks!
@OttoBotCode
@OttoBotCode 4 ай бұрын
It is possible but you would have to change the code to display your blocks correctly. Also keep in mind that your blocks will be chopped up when the player clears a row.
@josephyang8569
@josephyang8569 Жыл бұрын
are there any other function besides "Children"? cuz im using visual studio 2019
@firulais9982
@firulais9982 8 ай бұрын
Hi, project should comply with the following requirements: the application should have a graphic user interface (using WinForms, WPF or similar) all the .NET naming conventions should be followed all the classes, variables, properties etc. should be named with a comprehensible and descriptive name source code should be formated in a well arranged way code shouldn't contain long methods project doesn't contain any "dead code" each method serves only one purpose code is well and purposely commented code doesn't contain old comments code doesn't contain needless comments data and methods working with this data are part of one class all non-constant data fields are declared as private (and made accessible using a method or by encapsulation as a property) inheritance represents the "IS-A" relationship if applicable, the code is meaningfully covered by unit tests all unit tests pass application is divided into layers (presentation layer is separated from the application logic layer) code doesn't contain anti-patterns or smells of code: code doesn't contain "magic constants" code doesn't contain "god objects" code doesn't contain any "error hiding" anti-pattern is this project fitting these requirements best regards
@wootanfall1
@wootanfall1 4 ай бұрын
I hope i get an answer after all the time :D The .Reset(); method at 14:38 is red underlined because its not defined and either am blind or you didn't shown it. What to write in it if i create the method?
@OttoBotCode
@OttoBotCode 4 ай бұрын
It's around 10:45
@chadgessner4412
@chadgessner4412 2 жыл бұрын
I can't get the keys to work, I can't find anything I haven't followed perfectly as I re watch the video. The only thing that sticks out is I have a "Non-nullable field 'currentBlock' must contain a non-null value when exiting the constructor....." So I'm not sure if that has anything to do with it.
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Does nothing happen when you press the arrow keys? Try setting a breakpoint in Window_KeyDown and then run the program in Debug mode. Then let me know if that breakpoint is hit when you press the arrow keys.
@chadgessner4412
@chadgessner4412 2 жыл бұрын
@@OttoBotCode tried that. And that is about the extent of my knowledge with debugging using visual studio features. And it did not trigger the breakpoint.
@OttoBotCode
@OttoBotCode 2 жыл бұрын
@@chadgessner4412 Okay so it seems like the event handler is not registered. I think the problem is in MainWindow.xaml. Do you have this property "KeyDown="Window_KeyDown" on the Window?
@chadgessner4412
@chadgessner4412 2 жыл бұрын
@@OttoBotCode I may have found something useful... My Window_KeyDown shows '0 references' above it, but yours shows 1. Maybe I missed a line of code somewhere?
@chadgessner4412
@chadgessner4412 2 жыл бұрын
@@OttoBotCode yes that was the problem. Thanks!
@Buckt-360
@Buckt-360 2 жыл бұрын
we need to watch this vid for exam c# wish me luck
@OttoBotCode
@OttoBotCode 2 жыл бұрын
Best of luck!
@overgarven
@overgarven Жыл бұрын
i want to add a pause Function on it. Can you help? btw GREAT tutorial and worked like charm
@OttoBotCode
@OttoBotCode Жыл бұрын
Sorry I completely missed your comment! The easiest way to add a pause feature would probably be to add a bool isGamePaused to MainWindow.xaml.cs. When the user presses P (or some other key) we set isGamePaused to true if it's currently false and vice versa. You also want to show something on the screen that indicates that the game is paused. When isGamePaused is true, we must make sure that: a) Pressing any key (except P) won't do anything. b) The current block doesn't move down. Stopping the current block from moving down can be a bit tricky, it requires modifying the game loop a bit. The easiest (but maybe not the prettiest) way would be to add a condition like this: if (!isGamePaused) { gameState.MoveBlockDown(); Draw(gameState); } That way each iteration of the game loop doesn't manipulate the GameState when the game is paused. Hope this makes sense and thank you for the kind words 😊
@user-qf9dg4xx4b
@user-qf9dg4xx4b Ай бұрын
Inconsistent accessibility: property type 'Position[][]' is less accessible than property 'Block.Tiles'?
@OttoBotCode
@OttoBotCode Ай бұрын
I would guess that your Position class is "internal" or "private". Make sure the Position class is "public". Inside Position.cs, the code should be: public class Position 😀
@user-qf9dg4xx4b
@user-qf9dg4xx4b Ай бұрын
@@OttoBotCode Thank you very much!
@oleggordeev5849
@oleggordeev5849 11 ай бұрын
Is using OOP for such small projects worth it?
@footballCartoon91
@footballCartoon91 2 жыл бұрын
i would like to ask question @3:05 does declaring /*Rows=rows; /*is the same as */ this.Rows=rows; /*Columns=columns; /*is the same as */ this.Columns=colums; what does that imply?.. is that mean the class can only have one instance or object?
@OttoBotCode
@OttoBotCode 2 жыл бұрын
In this case *Rows = rows* and *Columns = columns* is the same as *this.Rows = rows* and *this.Columns = columns* *this* just refers to the current instance of the class. In the case above you don't have to add it explicitly but it is sometimes necessary. If the parameters in the constructor were also called *Rows* and *Columns* then we would have to do this: *this.Rows = Rows* and *this.Columns = Columns*. It does not imply that you can only create one instance of the class. We don't need it but you could create multiple instances of GameGrid. I hope this helps 😊
@SlikerEdits
@SlikerEdits Жыл бұрын
Brandony man pls i need to know how can I restore the snare and the hat in the channel rack, I accidentally deleted them.
@maddoxriddick5759
@maddoxriddick5759 2 ай бұрын
hi there, purchased the code and followed the tutorial, cant figure out how to run the game. please help
@OttoBotCode
@OttoBotCode 2 ай бұрын
Thanks for buying the code. You should unzip the compressed file first and then open Tetris.sln with Visual Studio. Once opened, you can start the game by clicking the run button (green arrow) or pressing CTRL + F5. If that does not work, let me know what kind of error message you get! ☺
@ryanatkinson3961
@ryanatkinson3961 7 ай бұрын
Hi, I have used the code exactly how you have but the blocks won't move down I was wondering if you knew why this would be?
@OttoBotCode
@OttoBotCode 7 ай бұрын
It's hard for me to guess what the issue is. The source code for the project is available here for 3$: www.patreon.com/OttoBotCode/shop. If that doesn't help you locate the mistake, then I can take a look at your project 😊
I run untested, viewer-submitted code on my 500-LED christmas tree.
45:17
Learning C# In A Week... Otherwise I Fail University
9:04
When you discover a family secret
00:59
im_siowei
Рет қаралды 34 МЛН
Bend The Impossible Bar Win $1,000
00:57
Stokes Twins
Рет қаралды 43 МЛН
CODING MY OWN TETRIS  (Unity)
13:00
Valem
Рет қаралды 127 М.
Programming a Tic-Tac-Toe Game in C# - Full Guide
48:15
OttoBotCode
Рет қаралды 31 М.
ASMR Programming - Coding Pacman - No Talking
1:21:19
Servet Gulnaroglu
Рет қаралды 2,7 МЛН
10. Memory Game with Windows Forms! | Intro To C# Programming
36:02
Michael Hicks
Рет қаралды 111 М.
Programming a Snake Game in C# - Full Guide
1:22:02
OttoBotCode
Рет қаралды 155 М.
Making My Own Programming Language and Coding a Game in It
10:19
AstroSam
Рет қаралды 1,3 МЛН
I Designed My Own 16-bit CPU
15:46
AstroSam
Рет қаралды 2 МЛН
Faster than Rust and C++: the PERFECT hash table
33:52
strager
Рет қаралды 563 М.
When you discover a family secret
00:59
im_siowei
Рет қаралды 34 МЛН