{"id":2491,"date":"2022-01-04T09:00:27","date_gmt":"2022-01-04T03:30:27","guid":{"rendered":"http:\/\/myprojectideas.com\/?p=2491"},"modified":"2025-11-03T16:12:35","modified_gmt":"2025-11-03T16:12:35","slug":"how-to-make-snake-game-using-c","status":"publish","type":"post","link":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/","title":{"rendered":"How To Make Snake Game Using C++ | C++ Project"},"content":{"rendered":"<h2><strong>Introduction Of The Project<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">In this article, we will learn to create a snake game using C++ programming language. The snake game is top-rated among players and is available on all devices. The game is designed so that the snake can move in every direction, whether left, right, upward, or downward. The snake moves in search of food. The score increases as the snake eat the food. The game is quite simple but exciting while playing.\u00a0<\/span><\/p>\n<iframe loading=\"lazy\"  id=\"_ytid_33637\"  width=\"1080\" height=\"607\"  data-origwidth=\"1080\" data-origheight=\"607\" src=\"https:\/\/www.youtube.com\/embed\/_7Q-zc1w_mQ?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&rel=1&fs=1&playsinline=0&autohide=2&theme=dark&color=red&controls=1&\" class=\"__youtube_prefs__  no-lazyload\" title=\"YouTube player\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe>\n<p>&nbsp;<\/p>\n<h2><strong>Objectives<\/strong><\/h2>\n<ul>\n<li><span style=\"font-weight: 400;\">To create a single-player game.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> The snake will be represented with @.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> The fruit is to be represented with &#8220;X&#8221;.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> The snake can move in any of the four directions as per the player\u2019s control.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> As the snake eats the fruit, the score increases.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> The game ends as soon as the snake touches the boundary.<\/span><\/li>\n<li><span style=\"font-weight: 400;\"> When the game ends, \u2018Dead\u2019 gets displayed on the screen.<\/span><\/li>\n<\/ul>\n<h2><strong>Requirements<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">To run this snake game using C++, you must have installed IDE for running and compiling the C++ source code. We recommend Dev C++ or Code Blocks for a better experience.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Refer to the links below to download the Dev C++ or Code Blocks IDE.<\/span><\/p>\n<ul>\n<li><a href=\"https:\/\/sourceforge.net\/projects\/embarcadero-devcpp\/\"><span style=\"font-weight: 400;\">https:\/\/sourceforge.net\/projects\/embarcadero-devcpp\/<\/span><\/a><\/li>\n<li><a href=\"https:\/\/sourceforge.net\/projects\/codeblocks\/\">https:\/\/sourceforge.net\/projects\/codeblocks\/<\/a><\/li>\n<\/ul>\n<h2><b>Source Code<\/b><\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"cpp\">#include &lt;iostream&gt;\r\n\r\n#include &lt;windows.h&gt;\r\n\r\n\r\n\r\n\r\nusing namespace std;\r\n\r\n\r\n\r\n\r\nstruct SNAKE_POSITION\r\n\r\n{\r\n\r\n\u00a0\u00a0\u00a0\u00a0int X,Y;\r\n\r\n};\r\n\r\n\r\n\r\n\r\n\r\nclass family\u00a0\r\n\r\n{\r\n\r\n\u00a0\u00a0\u00a0\u00a0static const int H;\r\n\r\n\u00a0\u00a0\u00a0\u00a0static const int W;\r\n\r\n\u00a0\u00a0\u00a0\u00a0char ** F;\r\n\r\n\u00a0\u00a0\u00a0\u00a0family(const family &amp;);\r\n\r\n\u00a0\u00a0\u00a0\u00a0family operator=(const family &amp;);\r\n\r\npublic:\r\n\r\n\u00a0\u00a0\u00a0\u00a0family() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0F = new char*[family::H];\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(int c = 0; c &lt; family::H; ++c) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0F[c] = new char[family::W];\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0~family() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(int c = 0; c &lt; family::H; ++c) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0delete[] F[c];\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0delete[] F;\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0void print() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(int c = 0; c &lt; H; ++c) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(int r = 0; r &lt; W; ++r) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cout &lt;&lt; F[c][r];\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cout &lt;&lt; endl;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0void clear() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(int c = 0; c &lt; H; ++c) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(int r = 0; r &lt; W; ++r) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0F[c][r] = ' ';\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0int get_W() const {return W;}\r\n\r\n\u00a0\u00a0\u00a0\u00a0int get_H() const {return H;}\r\n\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0void draw(int y, int x, char what) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/y = (y &lt; 0) ? 0 : (y &gt;= H ? H - 1 : y);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/x = (x &lt; 0) ? 0 : (x &gt;= W ? W - 1 : x);\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0F[y][x] = what;\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n} F;\r\n\r\n\r\n\r\n\r\n\r\nclass food_cls {\r\n\r\n\u00a0\u00a0\u00a0\u00a0SNAKE_POSITION pos;\r\n\r\n\u00a0\u00a0\u00a0\u00a0char symbol;\r\n\r\npublic:\r\n\r\n\u00a0\u00a0\u00a0\u00a0food_cls(): symbol('X'), pos() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pos.X = pos.Y = -1;\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0void set_pos(int X, int Y) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pos.X = X;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pos.Y = Y;\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0void reposition(const family &amp; F) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pos.X = rand() % F.get_W();\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pos.Y = rand() % F.get_H();\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0int get_X() const {return pos.X;}\r\n\r\n\u00a0\u00a0\u00a0\u00a0int get_Y() const {return pos.Y;}\r\n\r\n\u00a0\u00a0\u00a0\u00a0char get_symbol() const {return symbol;}\r\n\r\n} food;\r\n\r\n\r\n\r\n\r\nclass snake_cls {\r\n\r\n\u00a0\u00a0\u00a0\u00a0enum {UP, DOWN, LEFT, RIGHT} dir;\r\n\r\n\u00a0\u00a0\u00a0\u00a0char symbol, head_symbol;\r\n\r\n\u00a0\u00a0\u00a0\u00a0SNAKE_POSITION pos[100];\r\n\r\n\u00a0\u00a0\u00a0\u00a0SNAKE_POSITION &amp; head;\r\n\r\n\u00a0\u00a0\u00a0\u00a0int speed;\r\n\r\n\u00a0\u00a0\u00a0\u00a0int size;\r\n\r\n\u00a0\u00a0\u00a0\u00a0bool can_turn;\r\n\r\npublic:\r\n\r\n\u00a0\u00a0\u00a0\u00a0snake_cls(int X, int Y):\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0symbol('#'), head_symbol('@'), pos(),\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0speed(1), size(1), dir(RIGHT),\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0head(pos[0]), can_turn(true)\r\n\r\n\u00a0\u00a0\u00a0\u00a0{\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pos[0].X = X;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pos[0].Y = Y;\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0bool check_food(const food_cls &amp; food) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(food.get_X() == head.X &amp;&amp; food.get_Y() == head.Y) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0size += 1;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return true;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return false;\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0void get_input(const family &amp; F) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(GetAsyncKeyState(VK_UP) &amp;&amp; dir != DOWN) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dir = UP;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(GetAsyncKeyState(VK_DOWN) &amp;&amp; dir != UP) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dir = DOWN;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(GetAsyncKeyState(VK_LEFT) &amp;&amp; dir != RIGHT) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dir = LEFT;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(GetAsyncKeyState(VK_RIGHT) &amp;&amp; dir != LEFT) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dir = RIGHT;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0void move(const family &amp; F) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0SNAKE_POSITION next = {0, 0};\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0switch(dir) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case UP:\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0next.Y = -speed;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case DOWN:\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0next.Y = speed;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case LEFT:\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0next.X = -speed;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0break;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0case RIGHT:\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0next.X = speed;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(int c = size - 1; c &gt; 0; --c) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pos[c] = pos[c-1];\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0head.X += next.X;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0head.Y += next.Y;\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(head.X &lt; 0 || head.Y &lt; 0 || head.X &gt;= F.get_W() || head.Y &gt;= F.get_H()) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0throw \"DEADD!!!!\";\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0void draw(family &amp; F) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0for(int c = 0; c &lt; size; ++c) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(c == 0) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0F.draw(pos[c].Y, pos[c].X, head_symbol);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} else {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0F.draw(pos[c].Y, pos[c].X, symbol);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0int get_X() const { return head.X; }\r\n\r\n\u00a0\u00a0\u00a0\u00a0int get_Y() const { return head.Y; }\r\n\r\n\u00a0\u00a0\u00a0\u00a0char get_symbol() const { return symbol; }\r\n\r\n} snake(1, 1);\r\n\r\n\r\n\r\n\r\n\r\nconst int family::H = 24;\r\n\r\nconst int family::W = 79;\r\n\r\n\r\n\r\n\r\n\r\nint main() {\r\n\r\n\u00a0\u00a0\u00a0\u00a0F.clear();\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0food.set_pos(5, 5);\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0while(1) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0F.clear();\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0snake.get_input(F);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0snake.move(F);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0} catch (const char * er) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0F.clear();\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0cerr &lt;&lt; er &lt;&lt; endl;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0system(\"pause\");\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return -1;\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0snake.draw(F);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0F.draw(food.get_Y(), food.get_X(), food.get_symbol());\r\n\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if(snake.check_food(food)) {\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0food.reposition(F);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0F.print();\r\n\r\n\r\n\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Sleep(1000\/30);\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0system(\"cls\");\r\n\r\n\u00a0\u00a0\u00a0\u00a0}\r\nreturn 0;\r\n}<\/pre>\n<h2><strong>Explanation Of The Code<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">In the above-written code, \u2018SNAKE POSITION\u2019 is a structure declared with variables \u2018X\u2019 and \u2018Y\u2019.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The game starts with the moving &#8220;@&#8221; symbol as the snake, and the size of the snake increases when it encounters &#8220;X&#8221; as food.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are various user-defined functions used in the above tasks for the proper functioning of the code.\u00a0<\/span><\/p>\n<h2><strong>Output<\/strong><\/h2>\n<p><span style=\"font-weight: 400;\">So, this is how you can code for a snake game using C++ programming language.<\/span><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-18486 size-full\" src=\"https:\/\/rudelabs.ai\/blogs\/wp-content\/uploads\/2022\/01\/Snake-game-using-C.png\" alt=\"Snake game using C++\" width=\"1058\" height=\"461\" \/><\/p>\n<h2><strong>Conclusion<\/strong><\/h2>\n<p>We have successfully created a Snake game using C++. We Hope the code explanation was precise and clear. Now you can try this source code on your own and have fun playing the game.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Here we will learn to create a snake game using C++ programming language, which is a top-rated game among players and is available on all devices.<\/p>\n","protected":false},"author":1,"featured_media":9027,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"categories":[16,7],"tags":[17,18,20],"class_list":["post-2491","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c-computer-science","category-coding-projects","tag-c","tag-computer-science","tag-snake-game"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.1.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How To Make Snake Game Using C++ | C++ Project - RUDE LABS<\/title>\n<meta name=\"description\" content=\"Here we will learn to create a snake game using C++ programming language, which is a top-rated game among players and is available on all devices.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How To Make Snake Game Using C++ | C++ Project - RUDE LABS\" \/>\n<meta property=\"og:description\" content=\"Here we will learn to create a snake game using C++ programming language, which is a top-rated game among players and is available on all devices.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/\" \/>\n<meta property=\"og:site_name\" content=\"RUDE LABS\" \/>\n<meta property=\"article:published_time\" content=\"2022-01-04T03:30:27+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-03T16:12:35+00:00\" \/>\n<meta name=\"author\" content=\"rudelabs.ai\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rudelabs_in\" \/>\n<meta name=\"twitter:site\" content=\"@rudelabs_in\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"rudelabs.ai\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/\"},\"author\":{\"name\":\"rudelabs.ai\",\"@id\":\"https:\/\/rudelabs.ai\/blogs\/#\/schema\/person\/560bad88bae03cae99a326a46af0c894\"},\"headline\":\"How To Make Snake Game Using C++ | C++ Project\",\"datePublished\":\"2022-01-04T03:30:27+00:00\",\"dateModified\":\"2025-11-03T16:12:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/\"},\"wordCount\":332,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/rudelabs.ai\/blogs\/#organization\"},\"image\":{\"@id\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#primaryimage\"},\"thumbnailUrl\":\"\",\"keywords\":[\"c++\",\"computer science\",\"snake game\"],\"articleSection\":[\"C\/C++\",\"Coding Projects\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/\",\"url\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/\",\"name\":\"How To Make Snake Game Using C++ | C++ Project - RUDE LABS\",\"isPartOf\":{\"@id\":\"https:\/\/rudelabs.ai\/blogs\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#primaryimage\"},\"thumbnailUrl\":\"\",\"datePublished\":\"2022-01-04T03:30:27+00:00\",\"dateModified\":\"2025-11-03T16:12:35+00:00\",\"description\":\"Here we will learn to create a snake game using C++ programming language, which is a top-rated game among players and is available on all devices.\",\"breadcrumb\":{\"@id\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#primaryimage\",\"url\":\"\",\"contentUrl\":\"\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/rudelabs.ai\/blogs\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How To Make Snake Game Using C++ | C++ Project\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/rudelabs.ai\/blogs\/#website\",\"url\":\"https:\/\/rudelabs.ai\/blogs\/\",\"name\":\"RUDE LABS\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/rudelabs.ai\/blogs\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/rudelabs.ai\/blogs\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/rudelabs.ai\/blogs\/#organization\",\"name\":\"RUDE LABS\",\"url\":\"https:\/\/rudelabs.ai\/blogs\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rudelabs.ai\/blogs\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/rudelabs.ai\/blogs\/wp-content\/uploads\/2025\/09\/RUDE-LABS.webp\",\"contentUrl\":\"https:\/\/rudelabs.ai\/blogs\/wp-content\/uploads\/2025\/09\/RUDE-LABS.webp\",\"width\":2459,\"height\":414,\"caption\":\"RUDE LABS\"},\"image\":{\"@id\":\"https:\/\/rudelabs.ai\/blogs\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/rudelabs_in\",\"https:\/\/www.linkedin.com\/company\/ru-delabs\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/rudelabs.ai\/blogs\/#\/schema\/person\/560bad88bae03cae99a326a46af0c894\",\"name\":\"rudelabs.ai\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/rudelabs.ai\/blogs\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4d9f672e72f97294dfb6fac3d78e9f0bb5421a701cd2141cf2a2e540b4d67191?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4d9f672e72f97294dfb6fac3d78e9f0bb5421a701cd2141cf2a2e540b4d67191?s=96&d=mm&r=g\",\"caption\":\"rudelabs.ai\"},\"sameAs\":[\"https:\/\/rudelabs.ai\/blogs\"],\"url\":\"https:\/\/rudelabs.ai\/blogs\/author\/rudelabs-ai\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How To Make Snake Game Using C++ | C++ Project - RUDE LABS","description":"Here we will learn to create a snake game using C++ programming language, which is a top-rated game among players and is available on all devices.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/","og_locale":"en_US","og_type":"article","og_title":"How To Make Snake Game Using C++ | C++ Project - RUDE LABS","og_description":"Here we will learn to create a snake game using C++ programming language, which is a top-rated game among players and is available on all devices.","og_url":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/","og_site_name":"RUDE LABS","article_published_time":"2022-01-04T03:30:27+00:00","article_modified_time":"2025-11-03T16:12:35+00:00","author":"rudelabs.ai","twitter_card":"summary_large_image","twitter_creator":"@rudelabs_in","twitter_site":"@rudelabs_in","twitter_misc":{"Written by":"rudelabs.ai","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#article","isPartOf":{"@id":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/"},"author":{"name":"rudelabs.ai","@id":"https:\/\/rudelabs.ai\/blogs\/#\/schema\/person\/560bad88bae03cae99a326a46af0c894"},"headline":"How To Make Snake Game Using C++ | C++ Project","datePublished":"2022-01-04T03:30:27+00:00","dateModified":"2025-11-03T16:12:35+00:00","mainEntityOfPage":{"@id":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/"},"wordCount":332,"commentCount":0,"publisher":{"@id":"https:\/\/rudelabs.ai\/blogs\/#organization"},"image":{"@id":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#primaryimage"},"thumbnailUrl":"","keywords":["c++","computer science","snake game"],"articleSection":["C\/C++","Coding Projects"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/","url":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/","name":"How To Make Snake Game Using C++ | C++ Project - RUDE LABS","isPartOf":{"@id":"https:\/\/rudelabs.ai\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#primaryimage"},"image":{"@id":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#primaryimage"},"thumbnailUrl":"","datePublished":"2022-01-04T03:30:27+00:00","dateModified":"2025-11-03T16:12:35+00:00","description":"Here we will learn to create a snake game using C++ programming language, which is a top-rated game among players and is available on all devices.","breadcrumb":{"@id":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#primaryimage","url":"","contentUrl":""},{"@type":"BreadcrumbList","@id":"https:\/\/rudelabs.ai\/blogs\/how-to-make-snake-game-using-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/rudelabs.ai\/blogs\/"},{"@type":"ListItem","position":2,"name":"How To Make Snake Game Using C++ | C++ Project"}]},{"@type":"WebSite","@id":"https:\/\/rudelabs.ai\/blogs\/#website","url":"https:\/\/rudelabs.ai\/blogs\/","name":"RUDE LABS","description":"","publisher":{"@id":"https:\/\/rudelabs.ai\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/rudelabs.ai\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/rudelabs.ai\/blogs\/#organization","name":"RUDE LABS","url":"https:\/\/rudelabs.ai\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rudelabs.ai\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/rudelabs.ai\/blogs\/wp-content\/uploads\/2025\/09\/RUDE-LABS.webp","contentUrl":"https:\/\/rudelabs.ai\/blogs\/wp-content\/uploads\/2025\/09\/RUDE-LABS.webp","width":2459,"height":414,"caption":"RUDE LABS"},"image":{"@id":"https:\/\/rudelabs.ai\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/rudelabs_in","https:\/\/www.linkedin.com\/company\/ru-delabs\/"]},{"@type":"Person","@id":"https:\/\/rudelabs.ai\/blogs\/#\/schema\/person\/560bad88bae03cae99a326a46af0c894","name":"rudelabs.ai","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/rudelabs.ai\/blogs\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4d9f672e72f97294dfb6fac3d78e9f0bb5421a701cd2141cf2a2e540b4d67191?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4d9f672e72f97294dfb6fac3d78e9f0bb5421a701cd2141cf2a2e540b4d67191?s=96&d=mm&r=g","caption":"rudelabs.ai"},"sameAs":["https:\/\/rudelabs.ai\/blogs"],"url":"https:\/\/rudelabs.ai\/blogs\/author\/rudelabs-ai\/"}]}},"_links":{"self":[{"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/wp\/v2\/posts\/2491","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/wp\/v2\/comments?post=2491"}],"version-history":[{"count":2,"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/wp\/v2\/posts\/2491\/revisions"}],"predecessor-version":[{"id":18487,"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/wp\/v2\/posts\/2491\/revisions\/18487"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/"}],"wp:attachment":[{"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/wp\/v2\/media?parent=2491"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/wp\/v2\/categories?post=2491"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rudelabs.ai\/blogs\/wp-json\/wp\/v2\/tags?post=2491"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}