@@furballisticfinn6881 Well, the answer is proportional to the reason we should never assume in life, just because carrot big leaf because small leaf carrot big not leaf big size
I think it's waiting for the particles that happen when you make a move on this version of the game to clear up as to not mess up what the bot is seeing since I assume it's tracking individual pixels
what's the point of placing flags? you can win the game just by clicking all the spots that aren't mines, flags are actually useless when you have effectively infinite memory
You’re absolutely right!! The way that I programmed the bot is that it constantly takes a screenshot of the current board and plays according to what it currently sees. This means that flags are important in this method since the bot always forgets its previous screenshot. My method is slower but it is easier to implement and debug. A better way to do it (as you pointed it out) would be to store the board in the computer’s memory and update the mental map after each move. This way, we can optimize the performance of the bot since it won’t need to rely on flags to know the location of each mine.
@@cossibility7019 ok, also how did you detect each tile? I'm having issues with what you said you did (check a pixel and see what color it is) because there are pixels that are on the number 1 and will work for it, but for a 4 or something, it'll just be the background color
What I did is that I took a specific coordinate where each specific tile has their unique pixel colour (I don’t remember the specific coordinate). One thing to be careful with this method, however, is that you have to take into account the particle animations of the game. Each time you click a tile, there are different coloured particles that appear on the screen which can ruin the screenshot. My cheap solution to avoid the issue is to wait a certain amount of milliseconds after performing each move (I wait for the animation to end). This solution is what mainly makes my bot slower. If you don’t want to wait for the animation to end, I believe that there are Python libraires that can deal with image detection (they can recognize similar images)
The PC that we once owned had minesweeper on it. It must have been glitched, or modded somehow, because there was one tile that completes the entire board if you click it first. It was always the same tile, so I was able to beat the hardest difficulty in 2 seconds. The rest of my family went crazy trying to figure out how I did this.
@@aakashxd9868 Clicking a cell reveals it. If said cell has a mine, you instantly lose. The goal is to open every non-mine cell. Every cell you've already opened will display a number on it. That number is how many mines there are in the 8 surrounding cells. Using this information, you can deduce which tiles have a mine and which tiles don't (in which case they're safe to open). Also, there's a thing called flags which allow you to mark tiles as having a mine (so you don't accidentally open them later).
That's because in fighting games they can't predict what the player is thinking as they have a consious mind, while here, they can predict as every code has a pattern, patterns are easy to predict therefore easier -🤓
@@xenird If you take the time it takes for the clear transition to complete (when you click an empty square), let's say it's 5 frames or about 83ms, then multiply that by however many times you'd clear, i'll lowball it and say its about 10, you get 833ms. 10 seconds might be too high but I don't think a bot can complete google's minesweeper in under a second. A minesweeper with no transitions however can be completed way faster, but it depends how open the field is aka how many clear squares you're clicking
I feel like this could be upgraded with concurrency. Right now the bot will first click a lot and then place flags, then repeat. It should be possible to do more things at once and with less waiting time in between
It’s interesting, as a human Minesweeper player, to see a bot alternate between opening ALL safe spaces and flagging ALL dangerous spaces. Super multitasking.
simply be smarter than a human and not take the gamble, duh, it should leave it be until it has more information from other tiles being revealed around the initially troubling ones (this wasn't meant to be insulting btw, I was simply trying to play an arrogant personality as a joke)
@@MatiasRupp nope, not how minesweeper works. unless you’re on the last click, you just do another spot and wait until it brings you back toward that area with more information. you don’t have to take a gamble before the last click, and gambles on the last click are very rare.
To my experience, just pick on depend its spawn pattern Like a number got L-shape empty tiles | | x | | | | 3 | 2 I |1 | 1 ||||| then pick the x tile cus most of time (not always) will be a safe spot That spawn pattern usually occured so its high chance of safe Only do this when u actually no choice more than random pick, and hope its a good tile
This could be further optimised by implementing so that the bot doesnt analise the whole board every time but instead just an area around his latest move. This could continue untill no move could be done in an area, after which it could analise a bigger area or the board for the nearest posible move.
The bot didn't go faster because it uses screenshots to analyze the board and the particles flying around makes it hard to do so. So it has to wait a bit for the particles to disappear first.
I didn't think this was all that impressive until I realized the bot didn't have any special API access. It needed to take screenshots of the game and process the images constantly to understand what was going on, and calculate where on the screen to move the mouse to before clicking. That's a really cumbersome process to have to code.
@@Mik-kv8xx speed is not what i'm refering to. I mean patter recognition and that kind of stuff. A good Minefield player would have flaged more mines in some parts of the video and wouod also have cleared more spaces in some other parts. The bot is missing some stuff
@@Mik-kv8xx my arguments still applies and stands. The algorithm is missing some stuff. I'm not saying that it isn't good, that it is slow or that i can make a better one. I'm just saying that it can easily improve if some new patterns to recognize are added to it!
Just wanted to ask, what libraries did you use for image detection and the mouse movements? This seems like a good project for beginning complex python learning.
You need to cut down that waiting time. I don't think the bot was thinking. I think the bot was like "Did I win? ...No" Edit: By you, I mean the programmer who made it.
@@bookle5829 Yeah umm so if you guys are curious, the reason why my bot is slow is kinda dumb and funny. So notice that in Google minesweeper, when you click on a tile, there is particle animations. These particle animations actually ruin the screenshot that the bot takes to detect the tiles lmao. So i just made the bot wait for the particle animations to end before taking the next screenshot. So basically, the bot is like “Are the particles gone so that I can take a clean screenshot… No” Using advance image detection libraries, I could probably cut the waiting time of the bot by making the bot guess tiles even if there are particles covering them. But yeah, I don’t feel like it cuz I’m working on a another project right now. 😅
@@cossibility7019 Instead of scanning for green tiles. Why don't you scan for pixel of the color of number 1, 2, 3, 4 in each tiles. You won't have to deal with the animation. Edit: fixing minor typos
Seems like it works on screenshots and thus dependant on the app's speed, thus oddly you can just kinda keep up with what moves it will do the next cycle.
As a Polish guy, you are right, i can win the game faster than this bot can due to the fact that i memorised all the patterns and know about right clicking
It’s a bit evident how it having to “see” the board affects its performance. It has to wait for the board to clear to update its knowledge database, scan the image, recreate it in a model which the function is able to understand (probably a matrix), analyze the state of the board and then manually use the mouse to click on each conclusion made before. The program not having access to a mathematic model of the board, and instead having to build it manually each time, is what ends up slowing it the most.
By left and right clicking a number while it has sufficient flags around it, it automatically clears all of the squares that can be cleared and are also neighbours of that number
If I were forced to use python, I'd scan for numbers/flags only in cells that have been clicked. If there is new background color outside the clicked cell (or the cell is blank instead of bearing a number), then I would re-scan the entire field after the animation delay. To manage it all, I'd keep cells in a dict with coordinate tuples for keys, and an int representing the cell state (0-9 for cells without mines, -1 for flagged cells, and a non-existant key if the cell hasn't been interacted with yet. Simply do "if coord in field:" to check if the program has any info on that coord.) Or if I weren't limited to python, I'd use JavaScript so that I can skip the scanning step and read the field data directly (not cheating of course, but skipping OCR). The actual logic behind the solving would be the same though, of course.
Why do they call it oven
@@kupicx and of out hot eat the food
top questions science still can’t answer
@@furballisticfinn6881 Well, the answer is proportional to the reason we should never assume in life, just because carrot big leaf because small leaf carrot big not leaf big size
@@alexanderharrison7421 i guess you’re right
why not
i legit thought the video was called "bob destroys google minesweeper" for a second and I was like "damn this bob is cracked"
This made me laugh way too hard
Zamn
Bob's really talented
He has a good gaming chair
@@Wat-.- in what world would a cat destroy minesweeper this fluently
funniest part is that the legit world record is over 2 times faster at 57 seconds
The fact that it works is enough for me 😂😂
Funny how i got that RIGHT UNDER THIS VIDEO
That's the speed of python for you
It's clearly not optimized for speed XD
because the bot doesn't know how to chord
I find it funny that the bot keeps hesitating as if it's thinking lmao
I think it's waiting for the particles that happen when you make a move on this version of the game to clear up as to not mess up what the bot is seeing since I assume it's tracking individual pixels
If it didn't do that it could legit finish in 10 seconds
@Volzye It's not his theory, OC mentioned it in another comment
@Volzye yee I was just repeating what I remembered the vid creator said, i just said I think in case I said anything wrong
@Volzye You are completely and utterly wrong. You underestimate what modern PC's can do by a millionfold
He just has a good gaming chair.
Shhhh
Lol
Lamo
Bots dont have gaming chairs
@@The_Dr_Fate you got the joke right?
what's the point of placing flags? you can win the game just by clicking all the spots that aren't mines, flags are actually useless when you have effectively infinite memory
You’re absolutely right!!
The way that I programmed the bot is that it constantly takes a screenshot of the current board and plays according to what it currently sees. This means that flags are important in this method since the bot always forgets its previous screenshot. My method is slower but it is easier to implement and debug.
A better way to do it (as you pointed it out) would be to store the board in the computer’s memory and update the mental map after each move. This way, we can optimize the performance of the bot since it won’t need to rely on flags to know the location of each mine.
@@cossibility7019 ok, also how did you detect each tile? I'm having issues with what you said you did (check a pixel and see what color it is) because there are pixels that are on the number 1 and will work for it, but for a 4 or something, it'll just be the background color
What I did is that I took a specific coordinate where each specific tile has their unique pixel colour (I don’t remember the specific coordinate). One thing to be careful with this method, however, is that you have to take into account the particle animations of the game.
Each time you click a tile, there are different coloured particles that appear on the screen which can ruin the screenshot.
My cheap solution to avoid the issue is to wait a certain amount of milliseconds after performing each move (I wait for the animation to end). This solution is what mainly makes my bot slower.
If you don’t want to wait for the animation to end, I believe that there are Python libraires that can deal with image detection (they can recognize similar images)
Its only worth it if the bot knew about right clicking to uncover all the unflagged tiles
This is literally the entire game
"Why place flags when you can just not click mines"
The PC that we once owned had minesweeper on it. It must have been glitched, or modded somehow, because there was one tile that completes the entire board if you click it first. It was always the same tile, so I was able to beat the hardest difficulty in 2 seconds. The rest of my family went crazy trying to figure out how I did this.
Minesweeper god mode
@@10A-n2fuhm what in the real amogus
@@10A-n2f what the fuck
@@FrogGamePlay emojis from Ohio 💀
As a minesweeper player, I can confirm we play it by teleporting our mouse
‘Mineswapper’ lol
And yes, I definitely play mineswapper by teleporting our mouse
@@katdoestuffYT xD
can anyone tell me how to play this game
because most of the time i just click here and there randomly
@@aakashxd9868 Clicking a cell reveals it. If said cell has a mine, you instantly lose. The goal is to open every non-mine cell.
Every cell you've already opened will display a number on it. That number is how many mines there are in the 8 surrounding cells. Using this information, you can deduce which tiles have a mine and which tiles don't (in which case they're safe to open).
Also, there's a thing called flags which allow you to mark tiles as having a mine (so you don't accidentally open them later).
@@OverHeatVD thnx for the info buddy.. 😄
bots in fighting games: 🤡
bots in chess sudoku minesweeper and other games: 😎
That's because in fighting games they can't predict what the player is thinking as they have a consious mind, while here, they can predict as every code has a pattern, patterns are easy to predict therefore easier -🤓
@@hanzzxeditz the 🤓do be spitting facts tho.
@@hanzzxeditz 🤓 but respect
Then there’s bots in Fps games.
Bot also useful in tower defense game, especially the ones that need grinding like btd6.
By a moment i thought the title was " boy destroys google's minesweeper", and i thought "danm, this boy is so good that his mouse is teleporting"
He should play osu! some time.
For a lightly programmed bot this is actually pretty fast, pretty sure full programing can do this in like 10 seconds
See CodeBullet's version of this.
10 milliseconds
@@xenird If you take the time it takes for the clear transition to complete (when you click an empty square), let's say it's 5 frames or about 83ms, then multiply that by however many times you'd clear, i'll lowball it and say its about 10, you get 833ms. 10 seconds might be too high but I don't think a bot can complete google's minesweeper in under a second. A minesweeper with no transitions however can be completed way faster, but it depends how open the field is aka how many clear squares you're clicking
I’m sure we can agree that this bot is pretty good at making music
YES
no
google snake bot
i still don’t even know how minesweeper works and this is just salt in the wound. dope bot
each number tells you how many mines are adjacent to that number
I feel like this could be upgraded with concurrency. Right now the bot will first click a lot and then place flags, then repeat. It should be possible to do more things at once and with less waiting time in between
He explained that bot works by taking screenshots. It has to wait so particle animations won't ruin the screenshot
@@adanakebap101 where did he explained, can you forward it please
@@azamatrustamov8687 look at spidernh's comment. Creator replied and explained it.
@@adanakebap101 Thank you a lot
Google: *rigs the system*
Bot: *rigs the game*
Google: Wait, that is illegal...
It’s not rigged though
What makes you think it's rigged?
@@CreeperMan-dr6ql replies to seven month old comment, misses the joke
A classic.
It's freaking 4 in the morning and I'm watching a bot play minesweeper.
It’s interesting, as a human Minesweeper player, to see a bot alternate between opening ALL safe spaces and flagging ALL dangerous spaces. Super multitasking.
how do we know you're a human
"The game isn't hard you're just bad" Minesweeper bot 2023
2x speed to give him the best gaming chair
bot: **spams**
bot: "gotta go afk and get some food"
bot: "im back"
*[repeats until it beats the game]*
I used to play this in school for hours, great to see a bot do it in a few minutes :)
I couldn't even finish a quarter of this game. Wow.
The song when you beat google minesweeper slaps though
🤩🤩🤩🤩🤩🤩🤩
Would've been much faster if the bot right-clicked on the numbers instead of manually left-clicking the boxes.
We can't do that on Google's Minesweeper
@@ouwkyuha Yeah, my mistake. With Google's version, it should be both left-click and right-click at the same time.
Meanwhile, me: *dying on the second click on easy mode*
Just put flags in all the corners of the first big part you dig out
the day google added minesweeper was the day human productivity lowered by 97%
What would the bot do with 2 tiles both have 50% chance to have a mine? (I get that a lot when I play this game)
simply be smarter than a human and not take the gamble, duh, it should leave it be until it has more information from other tiles being revealed around the initially troubling ones
(this wasn't meant to be insulting btw, I was simply trying to play an arrogant personality as a joke)
@@thewaterleaf7929 sometimes you can't do anything logical but random
@@MatiasRupp nope, not how minesweeper works. unless you’re on the last click, you just do another spot and wait until it brings you back toward that area with more information. you don’t have to take a gamble before the last click, and gambles on the last click are very rare.
The bot starts having a seizure
To my experience, just pick on depend its spawn pattern
Like a number got L-shape empty tiles
| | x | |
| | 3 | 2 I
|1 | 1 |||||
then pick the x tile cus most of time (not always) will be a safe spot
That spawn pattern usually occured so its high chance of safe
Only do this when u actually no choice more than random pick, and hope its a good tile
This could be further optimised by implementing so that the bot doesnt analise the whole board every time but instead just an area around his latest move. This could continue untill no move could be done in an area, after which it could analise a bigger area or the board for the nearest posible move.
This unironically made me understand how minesweeper works better than any explanation given to me
Ah yes now that we have located all the mines we shall turn this land into a marsh
I only managed to beat hard mode twice only because the other times there were some spots that had to deal with pure luck guessing.
This guy is the reason captcha exist
As a data structures programmer, I was surprised that the bot didn't go even faster. Maybe the code used the high time complexity traversal methods.
The bot didn't go faster because it uses screenshots to analyze the board and the particles flying around makes it hard to do so. So it has to wait a bit for the particles to disappear first.
Probably added a wait() idk
@@Shaded_crown1 Are you talking about luau because I'm pretty sure thats the only language with the wait()
@@basicallyjusttan7727 Lua yes
@@Shaded_crown1 Luau*
Plot twist: there is no bot but no one would believe that he is this good
🤗🤗🤗🤗
Imagine the bot just finishing it then checking his search history
While I have gotten a 63 second time in medium, making a bot is hard and everyone should appreciate the work and effort put in.
i feel proud that my personal best minesweeper time is just 3 seconds faster that the bot
bot: i am god
The world record holder: *n o*
I got this video in my recommendation and i remember playing it when i was a child
atleast ai wont replace humans playing minesweeper
"Destroys" is generous
I didn't think this was all that impressive until I realized the bot didn't have any special API access. It needed to take screenshots of the game and process the images constantly to understand what was going on, and calculate where on the screen to move the mouse to before clicking. That's a really cumbersome process to have to code.
I didn’t know google had a mine sweeper, I thought there was only snake
Now where’s the run where the game makes you guess where 2 bombs are in a 2x2 and the bot can’t calculate that
The way it spams flags is so satisfying
is it odd to say I can keep up with the bot's line of thinking to an extent?
Nah, this bot isn't that good at the game lol
@@jestfullgremblim8002 don't be so harsh on it, if not for the animations it could be a good bit faster
@@Mik-kv8xx speed is not what i'm refering to. I mean patter recognition and that kind of stuff. A good Minefield player would have flaged more mines in some parts of the video and wouod also have cleared more spaces in some other parts. The bot is missing some stuff
@@jestfullgremblim8002 well,it's not an ai, just an algorithm
@@Mik-kv8xx my arguments still applies and stands. The algorithm is missing some stuff. I'm not saying that it isn't good, that it is slow or that i can make a better one. I'm just saying that it can easily improve if some new patterns to recognize are added to it!
It has now become my goal every time I play google minesweeper to be faster than 117 seconds
"5 game endings no one has ever seen"
This give me comfort since I thought 88 seconds are too much
wow, he's really good at the game! 😃
Tip: when playing this, click on the numbers that have a flag next to them, instead of clearing just one square, it clears all squares with no bombs
How did the bot get those right at 0:59 ?
It basically guessed
The Coding Bullet : Don't mind me imma steal your code
When it said, "dodododolildo fwuh-fwuh-fwuh-fwuh-fwuh... dododooodlildi- fwuh-fwuh-fwuh" I felt that
minesweep ASMR
I don’t get how this game works but this really fun to watch
Just wanted to ask, what libraries did you use for image detection and the mouse movements? This seems like a good project for beginning complex python learning.
Pyautogui
Good luck on your projects!
@@cossibility7019 Only pyautogui? I've tried that before, time to try it again!
@@doggo_woo yup only pyautogui for mouse movement and image detection!
@@cossibility7019 i will try to do a bot on dino game with pyautogui !
thx for the tip
The fact that even a bot had to think
You need to cut down that waiting time. I don't think the bot was thinking. I think the bot was like "Did I win? ...No"
Edit: By you, I mean the programmer who made it.
I think that's only because of the programming software he's using, he can't really fix that currently.
@@ITS_MysteR Oh yeah whoops
@@bookle5829
Yeah umm so if you guys are curious, the reason why my bot is slow is kinda dumb and funny. So notice that in Google minesweeper, when you click on a tile, there is particle animations. These particle animations actually ruin the screenshot that the bot takes to detect the tiles lmao. So i just made the bot wait for the particle animations to end before taking the next screenshot.
So basically, the bot is like “Are the particles gone so that I can take a clean screenshot… No”
Using advance image detection libraries, I could probably cut the waiting time of the bot by making the bot guess tiles even if there are particles covering them. But yeah, I don’t feel like it cuz I’m working on a another project right now. 😅
@@cossibility7019 Oh alright lol
l hope someone can improve it
@@cossibility7019 Instead of scanning for green tiles. Why don't you scan for pixel of the color of number 1, 2, 3, 4 in each tiles. You won't have to deal with the animation.
Edit: fixing minor typos
Seems like it works on screenshots and thus dependant on the app's speed, thus oddly you can just kinda keep up with what moves it will do the next cycle.
Listen to 1:52 at 0,25x
new music
as a fan of minesweeper i can say this is definitely a video
Hello! I am from Uzbekistan. I'm 10 years old. I passed the game "Sapper" 3 years ago. It's not difficult, you just need to learn how to play it!
As a Polish guy, you are right, i can win the game faster than this bot can due to the fact that i memorised all the patterns and know about right clicking
@@midtisel4222 Если тебе не удобно писать английским пиши русским :) Я не Англичанин.
That's cool, and not to be rude but, what does this actually have to do with this video?
@@araserwhenthe and why they mention where are they from XD
@@midtisel4222 Non-polish guys: is it possible to learn this power.
This is like the equivalent of playing chess against your right hand with your left
2nd! since the other guy said 3rd instead of 2nd
Why does this video low key make me anxious
Nice
I think this taught me how to play minesweeper. It’s a miracle!!
terrifying pfp
@@iguessso1010 haha thanks
Let’s go! 0th!
i don’t even know how to play minesweeper but that sure is music to my ears
The sound feels like some group do people are parading and then shooting from toy guns. 😂😂
The music is fire🔥
I love this music! It bangs! It helped me and my wife get back together!
thanks youtube for putting this on my reccomended
first time ever, actually seeing the end of mine sweeper in my life
Theres only 1 thing that keeps bots from overtaking humanity, the 50/50
Humans are faster than this by a long shot
Me who doesn't know the rules and how to play Minesweeper: *Hmm, Interesting.*
"I'm just lagging I swear"
better gaming chair
minesweeper: why do i hear boss music WHY DO I HEAR BOSS MUSIC?!
*bot flashes in*
The fact that the wr is much faster makes me happy
Better than most of the asmr videos.
SEND THIS MAN TO BOSNIA
Jesus Christ now minesweeper has a bot crisis
Unironically close to being a song (arguably already is). This soundfront could go dummy.
I put this at 2 times speed and it literally just sounds like birds being chaotic
Bro got 0 bugatti and doesnt breath air.
Classic Tate W
There’s something called “Tool Assisted Speedrun”
and WWII
Why does this feel like it was recorded in 2014
It’s a bit evident how it having to “see” the board affects its performance. It has to wait for the board to clear to update its knowledge database, scan the image, recreate it in a model which the function is able to understand (probably a matrix), analyze the state of the board and then manually use the mouse to click on each conclusion made before.
The program not having access to a mathematic model of the board, and instead having to build it manually each time, is what ends up slowing it the most.
never understood how to play that game
By left and right clicking a number while it has sufficient flags around it, it automatically clears all of the squares that can be cleared and are also neighbours of that number
This is the first time I see the winning screen.
This was truely mindsweeping.
This is me avoiding legos in the dark for a glass of water.
Middle mouse click opens up all adjacent squares as long as there are the correct number of flags adjacent to it.
1:11 Dude. This bot guessed safe place. He clicked seconds place, when in there could have been a mine. (Moment with 1 1 1)
damn so in the end the bombs were just flowers
If I were forced to use python, I'd scan for numbers/flags only in cells that have been clicked. If there is new background color outside the clicked cell (or the cell is blank instead of bearing a number), then I would re-scan the entire field after the animation delay.
To manage it all, I'd keep cells in a dict with coordinate tuples for keys, and an int representing the cell state (0-9 for cells without mines, -1 for flagged cells, and a non-existant key if the cell hasn't been interacted with yet. Simply do "if coord in field:" to check if the program has any info on that coord.)
Or if I weren't limited to python, I'd use JavaScript so that I can skip the scanning step and read the field data directly (not cheating of course, but skipping OCR). The actual logic behind the solving would be the same though, of course.
Google Minesweeper: 😄😉😊
Microsoft Windows Minesweeper: 💀😱😈