<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>c++ Archivi -</title>
	<atom:link href="https://simonetocco.it/tag/c/feed/" rel="self" type="application/rss+xml" />
	<link>https://simonetocco.it/tag/c/</link>
	<description></description>
	<lastBuildDate>Wed, 13 Jan 2021 08:24:52 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://simonetocco.it/wp-content/uploads/2020/12/logoSimone-1-150x150.png</url>
	<title>c++ Archivi -</title>
	<link>https://simonetocco.it/tag/c/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Sudoku Solver in C++: risolutore sudoku con backtracking</title>
		<link>https://simonetocco.it/sudoku-solver-in-c-risolutore-sudoku-con-backtracking/</link>
					<comments>https://simonetocco.it/sudoku-solver-in-c-risolutore-sudoku-con-backtracking/#respond</comments>
		
		<dc:creator><![CDATA[Simone Tocco]]></dc:creator>
		<pubDate>Wed, 13 Jan 2021 08:24:41 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[sudoku]]></category>
		<guid isPermaLink="false">https://simonetocco.it/?p=2569</guid>

					<description><![CDATA[<p>Uno degli esercizi più utilizzati in ambito di programmazione e di algoritmi e strutture dati, è certamente il Sudoku Solver in C++ utilizzando la tecnica algoritmica di backtracking. Supponiamo quindi di dover dare in input una griglia Sudoku 9&#215;9 che al suo interno è divisa in ulteriori griglie 3&#215;3. Le semplici regole del gioco prevedono [&#8230;]</p>
<p>L'articolo <a href="https://simonetocco.it/sudoku-solver-in-c-risolutore-sudoku-con-backtracking/">Sudoku Solver in C++: risolutore sudoku con backtracking</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Uno degli esercizi più utilizzati in ambito di programmazione e di algoritmi e strutture dati, è certamente il Sudoku Solver in C++ utilizzando la tecnica algoritmica di backtracking.</p>



<p>Supponiamo quindi di dover dare in input una griglia Sudoku 9&#215;9 che al suo interno è divisa in ulteriori griglie 3&#215;3.</p>



<p>Le semplici regole del gioco prevedono che dobbiamo usare all&#8217;interno di una stessa riga numeri compresi tra 1 e 9 senza ripetizioni e sappiamo anche che all&#8217;interno di una matrice 3&#215;3 non ci debbano anche qui essere ripetizioni.</p>



<pre class="wp-block-code"><code>#include &lt;iostream>
#define N 9
using namespace std;
int matrice&#91;N]&#91;N] = {
   {3, 0, 6, 5, 0, 8, 4, 0, 0},
   {5, 2, 0, 0, 0, 0, 0, 0, 0},
   {0, 8, 7, 0, 0, 0, 0, 3, 1},
   {0, 0, 3, 0, 1, 0, 0, 8, 0},
   {9, 0, 0, 8, 6, 3, 0, 0, 5},
   {0, 5, 0, 0, 9, 0, 6, 0, 0},
   {1, 3, 0, 0, 0, 0, 2, 5, 0},
   {0, 0, 0, 0, 0, 0, 0, 7, 4},
   {0, 0, 5, 2, 0, 6, 3, 0, 0}
};
bool isPresentEiNcolonnaonna(int colonna, int num){ //controlla se un numero è già presente nella colonna
   for (int riga = 0; riga &lt; N; riga++)
      if (matrice&#91;riga]&#91;colonna] == num)
         return true;
   return false;
}
bool isPresentEiNriga(int riga, int num){ //controlla se un numero è già presente nella riga
   for (int colonna = 0; colonna &lt; N; colonna++)
      if (matrice&#91;riga]&#91;colonna] == num)
         return true;
   return false;
}
bool isPresentEiNquadratro(int boxStartRiga, int boxStartColonna, int num){
////controlla se un numero è già presente nel box 3x3
   for (int riga = 0; riga &lt; 3; riga++)
      for (int colonna = 0; colonna &lt; 3; colonna++)
         if (matrice&#91;riga+boxStartRiga]&#91;colonna+boxStartColonna] == num)
            return true;
   return false;
}
void sudokuMatrice(){ //stampa a video la matrice risolta
   for (int riga = 0; riga &lt; N; riga++){
      for (int colonna = 0; colonna &lt; N; colonna++){
         if(colonna == 3 || colonna == 6)
            cout &lt;&lt; " | ";
         cout &lt;&lt; matrice&#91;riga]&#91;colonna] &lt;&lt;" ";
      }
      if(riga == 2 || riga == 5){
         cout &lt;&lt; endl;
         for(int i = 0; i&lt;N; i++)
            cout &lt;&lt; "---";
      }
      cout &lt;&lt; endl;
   }
}
bool trovAspazIovuoto(int &amp;riga, int &amp;colonna){ //trova spazio vuoto
   for (riga = 0; riga &lt; N; riga++)
      for (colonna = 0; colonna &lt; N; colonna++)
         if (matrice&#91;riga]&#91;colonna] == 0) //marked with 0 is empty
            return true;
   return false;
}
bool veRificApostoValido(int riga, int colonna, int num){
   //when item not found in colonna, riga and current 3x3 box
   return !isPresentEiNriga(riga, num) &amp;&amp; !isPresentEiNcolonnaonna(colonna, num) &amp;&amp; !isPresentEiNquadratro(riga - riga%3 ,
colonna - colonna%3, num);
}
bool solveSudoku(){
   int riga, colonna;
   if (!trovAspazIovuoto(riga, colonna))
      return true; //when all places are filled
   for (int num = 1; num &lt;= 9; num++){ //valid numbers are 1 - 9
      if (veRificApostoValido(riga, colonna, num)){ //check validation, if yes, put the number in the matrice
         matrice&#91;riga]&#91;colonna] = num;
         if (solveSudoku()) //recursively go for other rooms in the matrice
            return true;
         matrice&#91;riga]&#91;colonna] = 0; //turn to unassigned space when conditions are not satisfied
      }
   }
   return false;
}
int main(){
   if (solveSudoku() == true)
      sudokuMatrice();
   else
      cout &lt;&lt; "Non esistono soluzioni";
}</code></pre>
<!--------------------------------------><!-- Conversion Box Made Using : -------><!-- WP Conversion Boxes - -------------><!-- http://wpconversionboxes.com --><!--------------------------------------><div class="wpcb_nothing_offset"></div>

<style>
    
    .wpcb_template_main_1{
        
        background-color: #0faf97;
        width: 100%;
        height: ;
        border-width: ;
        border-color: ;
        margin-top: ;
        margin-bottom: ;
        margin-left: ;
        margin-right: ;
        padding: 20px;
        -webkit-box-shadow: inset 0px 0px 200px -38px rgba(0,0,0,0.5);
        -moz-box-shadow: inset 0px 0px 200px -38px rgba(0,0,0,0.5);
        box-shadow: inset 0px 0px 200px -38px rgba(0,0,0,0.5);     
        
    }
    
    .wpcb_template_main_1 .wpcb_box_heading{
        background-color: ;
        padding-top: 0px;
    }
    
    .wpcb_template_main_1 .wpcb_box_heading_text{
        font-family:    'Arial', serif;
        font-size:      32px;
        line-height:    38px;
        color:          #ffffff;
        text-align:     center;
        text-shadow: 0px 3px 4px rgba(0, 0, 0, 0.25);
        font-weight: 900;
        margin: 0;
    }
    
    .wpcb_template_main_1 .wpcb_box_content_container{
        
    }    
    
    .wpcb_template_main_1 .wpcb_box_content{
        font-family:    Arial;
        font-size:      20px;
        line-height:    24px;
        color:          #ffffff;
        text-align:     center;
        padding: 20px 0px;
    }
    
    .wpcb_template_main_1 .wpcb_box_button_div{
        text-align: center;
    }
    
    .wpcb_template_main_1 .wpcb_box_button_div a.wpcb_box_button, .wpcb_template_main_1 .wpcb_box_button_div button.wpcb_box_button{
        font-family:    Arial;
        font-size:      16px;
        color:          #fff;
        background-color: #4f78f2;
        border-radius: 30px;
        width: ;
        padding: 10px 15px;
    }
    
    .wpcb_button_gradient{background-image : -moz-linear-gradient(top, #4f78f2, #1851f9);background-image : -ms-linear-gradient(top, #4f78f2, #1851f9);background-image : -webkit-gradient(linear, #4f78f2, #1851f9);background-image : -webkit-linear-gradient(top, #4f78f2, #1851f9);background-image : -o-linear-gradient(top, #4f78f2, #1851f9);background-image : linear-gradient(top, #4f78f2, #1851f9);filter : progid:DXImageTransform.Microsoft.gradient(startColorstr=&quot;#4f78f2&quot;, endColorstr=&quot;#1851f9&quot;, GradientType=0);border-color : +#4f78f2 #1851f9 #1851f9;background-color : #4f78f2;}    
        
</style>


<div class="wpcb_template_main wpcb_template_main_1 wpcb_nothing wpcb_nothing" data-fadetime="0">
    <div class="wpcb_box_all_content_container">
        <div class="wpcb_box_content_container">    
            <div class="wpcb_box_heading">
                <div class="wpcb_box_heading_text">Hai bisogno di una consulenza o assistenza?</div>
            </div>            
            <div class="wpcb_box_content">
                Apri un ticket di richiesta, ti risponderò in brevissimo tempo! Chiedere non costa nulla <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />            </div>    
            <div class="wpcb_box_button_div">
                <a href="http://simonetocco.it/assistenza-e-consulenza/" target="" id="wpcb_box_button_1" class="wpcb_box_button wpcb_button_gradient">Apri Richiesta</a>
            </div>
        </div>    
    </div>
</div><!------------------------------><!-- Conversion Box Ends Here --><!------------------------------><div class="wpcb-tracker" data-id="3640844" data-boxid="1" data-visitedpage="https://simonetocco.it:443/tag/c/feed/" data-visittype="visit"></div><p>L'articolo <a href="https://simonetocco.it/sudoku-solver-in-c-risolutore-sudoku-con-backtracking/">Sudoku Solver in C++: risolutore sudoku con backtracking</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://simonetocco.it/sudoku-solver-in-c-risolutore-sudoku-con-backtracking/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gioco snake in linguaggio c++: algoritmo/codice sorgente</title>
		<link>https://simonetocco.it/gioco-snake-in-linguaggio-c/</link>
					<comments>https://simonetocco.it/gioco-snake-in-linguaggio-c/#respond</comments>
		
		<dc:creator><![CDATA[Simone Tocco]]></dc:creator>
		<pubDate>Mon, 02 Apr 2018 18:32:49 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[snake]]></category>
		<guid isPermaLink="false">https://simonetocco.it/?p=1680</guid>

					<description><![CDATA[<p>Oggi vediamo come programmare il gioco snake in linguaggio c++. Come sicuramente saprai, per giocare allo snake occorre utilizzare i cursori freccia aiutando il serpente a mangiare il cibo facendo quindi crescere evitando di far sbattere il capo con il suo stesso corpo. Di seguito il codice sorgente del gioco Snake in Linguaggio C++ /*------------------------------------------------------------------------------ [&#8230;]</p>
<p>L'articolo <a href="https://simonetocco.it/gioco-snake-in-linguaggio-c/">Gioco snake in linguaggio c++: algoritmo/codice sorgente</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Oggi vediamo come programmare il gioco<strong> snake in linguaggio c++</strong>. Come sicuramente saprai, per giocare allo <strong>snake</strong> occorre utilizzare i cursori freccia aiutando il serpente a mangiare il cibo facendo quindi crescere evitando di far sbattere il capo con il suo stesso corpo.</p>
<div></div>
<p>Di seguito il <strong>codice sorgente del gioco Snake in Linguaggio C++</strong></p>
<p><code language="cpp"><br />
/*------------------------------------------------------------------------------<br />
Snake Game</p>
<p>Programmer : Simone Tocco</p>
<p>Software Details<br />
====================<br />
Developed in : C++<br />
OS : Window 98,2000,XP,<br />
Vista,Windows7</p>
<p>-------------------------------------------------------------------------------------*/</p>
<p>//************************************************<br />
// Header Files<br />
//************************************************</p>
<p>#include<br />
#include<br />
#include<br />
#include<br />
#include #include</p>
<p>//************************************************<br />
//<br />
//************************************************</p>
<p>#define TRUE 1<br />
#define FALSE 0<br />
#define HORIZONTAL 1<br />
#define VERTICAL 2</p>
<p>//************************************************<br />
// Direction<br />
//************************************************</p>
<p>#define RIGHT 0<br />
#define LEFT 1<br />
#define UP 2<br />
#define DOWN 3</p>
<p>//************************************************<br />
//<br />
//************************************************</p>
<p>#define SNK_BODY_COLOR GREEN<br />
#define SNK_FACE_COLOR RED<br />
#define BGCOLOR BLACK</p>
<p>#define MAXX 50<br />
#define MAXY 40<br />
#define SX 10<br />
#define SY 10<br />
#define WIDTH 10</p>
<p>//************************************************<br />
// Keys<br />
//************************************************</p>
<p>#define UP_KEY 72 // Up arrow key<br />
#define DOWN_KEY 80 // Down arrow key<br />
#define RIGHT_KEY 77 // Right arrow key<br />
#define LEFT_KEY 75 // Left arrow key<br />
#define PAUSE_KEY 32 // Space Bar Key<br />
#define EXIT_KEY 27 // Escape Key</p>
<p>//************************************************<br />
// Global variables<br />
//************************************************</p>
<p>int snk_x[100], snk_y[100], length=8, l_k = RIGHT, xf, yf, eat=0, ch;<br />
int chapter=1,level=1;<br />
int isGamePause=FALSE;<br />
long int score=0;<br />
int timedelay=150;<br />
int sXBlock[30]; // starting horizontal block position<br />
int sYBlock[30];// starting vertical block position<br />
int blockDir[30];//direction of block(horizontal or vertical)<br />
int nBlock[30]; // Number of blocks vertically or horizontally<br />
int nblock=0; // total number of blocks in one level</p>
<p>int starsX[200], starsY[200];</p>
<p>// Function Prototype<br />
void mainMenu();</p>
<p>//************************************************<br />
// Userdefine Functions<br />
//************************************************</p>
<p>void initStars()<br />
{<br />
int sX, sY;<br />
for(int g=0;g&lt;200;g++)<br />
{<br />
sX=random(getmaxx());<br />
sY=random(getmaxy());<br />
starsX[g]=sX;<br />
starsY[g]=sY;<br />
}</p>
<p>}</p>
<p>void drawStars()<br />
{<br />
for(int g=0;g&lt;200;g++) putpixel(starsX[g],starsY[g],random(getmaxcolor())); } void initSnkPosition(int x, int y) { for(int i=length-1;i&gt;=0;i--)<br />
{<br />
snk_x[i]=x-i;<br />
snk_y[i]=y;<br />
}</p>
<p>}</p>
<p>int isSnkHitItself()<br />
{</p>
<p>for(int i=length-1;i&gt;1;i--)<br />
if(snk_x[0]==snk_x[i]&amp;&amp;snk_y[0]==snk_y[i])<br />
return TRUE;<br />
return FALSE;<br />
}</p>
<p>void drawSnake()<br />
{<br />
for(int i=length-1;i&gt;0;i--)<br />
{<br />
//Body<br />
setfillstyle(SOLID_FILL,SNK_BODY_COLOR);<br />
fillellipse((SX+snk_x[i]*WIDTH)+WIDTH/2,(SY+snk_y[i]*WIDTH)+WIDTH/2,WIDTH/2,WIDTH/2);<br />
//Outline<br />
setfillstyle(SOLID_FILL,14);<br />
fillellipse((SX+snk_x[i]*WIDTH)+WIDTH/2,(SY+snk_y[i]*WIDTH)+WIDTH/2,2,2);</p>
<p>}</p>
<p>//Face<br />
setfillstyle(SOLID_FILL,SNK_FACE_COLOR);<br />
fillellipse((SX+snk_x[0]*WIDTH)+WIDTH/2,(SY+snk_y[0]*WIDTH)+WIDTH/2,WIDTH/2,WIDTH/2);<br />
// Eye<br />
setcolor(WHITE);<br />
setfillstyle(SOLID_FILL,BLACK);<br />
fillellipse((SX+snk_x[0]*WIDTH)+WIDTH/2,(SY+snk_y[0]*WIDTH)+WIDTH/2,1,1);</p>
<p>}</p>
<p>void moveSnake()<br />
{<br />
for(int i=length-1;i&gt;0;i--)<br />
{<br />
snk_x[i]=snk_x[i-1];<br />
snk_y[i]=snk_y[i-1];<br />
}<br />
}</p>
<p>void hideLastPart()<br />
{</p>
<p>// Hide the last body part</p>
<p>setcolor(BGCOLOR);<br />
setfillstyle(SOLID_FILL,BGCOLOR);<br />
fillellipse((SX+snk_x[length-1]*WIDTH)+WIDTH/2,(SY+snk_y[length-1]*WIDTH)+WIDTH/2,WIDTH/2,WIDTH/2);</p>
<p>}</p>
<p>int isCollide()<br />
{<br />
if((xf==snk_x[0]) &amp;&amp; (yf==snk_y[0]))<br />
return TRUE;<br />
return FALSE;<br />
}</p>
<p>int isSnkHitBlock()<br />
{<br />
for(int i=1;i&lt;=nblock;i++)<br />
{<br />
for(int j=0;j&lt;nBlock[i];j++)<br />
{<br />
if(blockDir[i]==HORIZONTAL)<br />
{<br />
if(snk_x[0]==sXBlock[i]+j &amp;&amp; snk_y[0]==sYBlock[i])<br />
return TRUE;<br />
}<br />
else if(blockDir[i]==VERTICAL)<br />
{<br />
if(snk_x[0]==sXBlock[i] &amp;&amp; snk_y[0]==sYBlock[i]+j)<br />
return TRUE;<br />
}<br />
}<br />
}</p>
<p>return FALSE;<br />
}</p>
<p>void checkFoodOnBlock()<br />
{<br />
for(int i=1;i&lt;=nblock;i++)<br />
{<br />
for(int j=0;j&lt;nBlock[i];j++)<br />
{<br />
if(blockDir[i]==HORIZONTAL)<br />
{<br />
if(xf==sXBlock[i]+j &amp;&amp; yf==sYBlock[i])<br />
{<br />
xf=20;<br />
yf=20;<br />
}<br />
}<br />
else if(blockDir[i]==VERTICAL)<br />
{<br />
if(xf==sXBlock[i] &amp;&amp; yf==sYBlock[i]+j)<br />
{<br />
xf=20;<br />
yf=20;<br />
}<br />
}<br />
}<br />
}<br />
}</p>
<p>void getFood(void)<br />
{<br />
static int color;<br />
if(eat==0)<br />
{</p>
<p>xf=random(MAXX-4)+2;<br />
yf=random(MAXY-4)+2;<br />
eat=1;<br />
color= random(13)+2;<br />
checkFoodOnBlock();<br />
}</p>
<p>setcolor(DARKGRAY);<br />
setfillstyle(SOLID_FILL,color);<br />
circle((SX+xf*WIDTH)+WIDTH/2,(SY+yf*WIDTH)+WIDTH/2,WIDTH/2);<br />
floodfill((SX+xf*WIDTH)+WIDTH/2,(SY+yf*WIDTH)+WIDTH/2,DARKGRAY);<br />
setcolor(BGCOLOR);</p>
<p>if(isCollide())<br />
{<br />
char sData[20];<br />
sound(2000);<br />
delay(30);<br />
nosound();<br />
settextstyle(0,0,0);<br />
setcolor(0);<br />
outtextxy(550,270,itoa(score,sData,10));<br />
score=score+9+chapter+level;<br />
length++;<br />
eat=0;<br />
setcolor(3);<br />
outtextxy(550,270,itoa(score,sData,10));</p>
<p>}<br />
setcolor(BGCOLOR);<br />
}</p>
<p>void text3D(int x, int y, int depth, int bgcolor, int fgcolor, char *caption)<br />
{<br />
int i;<br />
setcolor(bgcolor);<br />
for(i=0;i&lt;depth;i++)<br />
outtextxy(x+i,y+i,caption);<br />
setcolor(fgcolor);<br />
outtextxy(x+i,y+i,caption);</p>
<p>}</p>
<p>void gameOver()<br />
{</p>
<p>char buffer[20];</p>
<p>cleardevice();</p>
<p>settextstyle(0,0,7);<br />
text3D(100,150,4,3,11,"Game Over");<br />
settextstyle(0,0,4);<br />
text3D(180,300,2,3,11,"Score : ");<br />
text3D(180+textwidth("Score : "),300,2,3,11,itoa(score,buffer,10));<br />
settextstyle(0,0,2);<br />
text3D(100,400,2,3,11,"Press any key to continue...");<br />
settextstyle(0,0,0);<br />
for(int j=0;j&lt;2000;j++) putpixel(random(640),random(480),random(16)); getch(); mainMenu(); } void snakeTouchesWall() { // If snake touches the wall if(snk_x[0]==0) { snk_x[0]=MAXX-3; } if(snk_x[0]==MAXX-2) { snk_x[0]=1; } if(snk_y[0]==0) { snk_y[0]=MAXY-3; } if(snk_y[0]==MAXY-2) { snk_y[0]=1; } } void keyEvents( int ch) { // Key events if(ch==PAUSE_KEY) { setcolor(0); outtextxy(518,370,"PLAYING..."); setcolor(3); outtextxy(520,370,"PAUSED..."); while(1) { if(kbhit()) { int key=getch(); if(key==PAUSE_KEY) { setcolor(0); outtextxy(520,370,"PAUSED..."); setcolor(3); outtextxy(518,370,"PLAYING..."); break; } else if(key==EXIT_KEY) exit(0); } } } if(ch==EXIT_KEY) gameOver(); else if(ch==UP_KEY &amp;&amp; l_k!=DOWN) l_k=UP; else if(ch==DOWN_KEY &amp;&amp; l_k!=UP) l_k=DOWN; else if(ch==RIGHT_KEY &amp;&amp; l_k!=LEFT) l_k=RIGHT; else if(ch==LEFT_KEY &amp;&amp; l_k!=RIGHT) l_k=LEFT; } void moveTheSnake() { // move the snake if(l_k==RIGHT) { snk_x[0]++; } if(l_k==LEFT) { snk_x[0]--; } if(l_k==UP) { snk_y[0]--; } if(l_k==DOWN) { snk_y[0]++; } } void mainScreen() { char sData[20]; cleardevice(); setcolor(12); rectangle(10,10,500,400); setcolor(3); rectangle(11,11,499,399); setcolor(12); rectangle(12,12,498,398); setcolor(2); rectangle(510,10,600,100); setcolor(4); rectangle(510,110,600,200); setcolor(12); rectangle(510,210,600,300); setcolor(13); rectangle(510,310,600,400); settextstyle(0,0,0); setcolor(15); outtextxy(535,30,"LEVEL"); outtextxy(535,130,"CHAPTER"); outtextxy(535,230,"SCORE"); outtextxy(535,330,"STATUS"); settextstyle(0,0,5); text3D(100,420,3,3,11,"Snake Game"); settextstyle(0,0,0); setcolor(3); if(level==1) { outtextxy(530,70,"BEGINNER"); timedelay=150; } else if(level==2) { outtextxy(532,70,"ADVANCE"); timedelay=100; } else if(level==3) { outtextxy(535,70,"EXPERT"); timedelay=50; } outtextxy(550,170,itoa(chapter,sData,10)); outtextxy(550,270,itoa(score,sData,10)); outtextxy(518,370,"PLAYING..."); initStars(); } void snakeCaught() { nosound(); for(int x=500;x&gt;0;x--)<br />
{ sound(x);<br />
delay(1);<br />
setcolor(random(13)+1);<br />
drawSnake();<br />
}<br />
nosound();<br />
}</p>
<p>void drawBlock(int xb, int yb, int n, int dir)<br />
{<br />
nblock++;<br />
sXBlock[nblock]=xb;<br />
sYBlock[nblock]=yb;<br />
nBlock[nblock]=n;<br />
blockDir[nblock]=dir;<br />
for(int i=1;i&lt;=n;i++)<br />
{<br />
setfillstyle(SOLID_FILL,12);<br />
bar((SX+xb*WIDTH)+1,(SY+yb*WIDTH)+1,(SX+xb*WIDTH)+WIDTH-1,(SY+yb*WIDTH)+WIDTH-1);<br />
if(dir==HORIZONTAL)<br />
xb++;<br />
else if(dir==VERTICAL)<br />
yb++;<br />
}</p>
<p>}</p>
<p>void reset()<br />
{<br />
nblock=0;<br />
length=8;<br />
score=0;<br />
l_k = RIGHT;<br />
for(int i=0;i&lt;30;i++)<br />
{<br />
sXBlock[i]=0;<br />
sYBlock[i]=0;<br />
blockDir[i]=0;<br />
nBlock[i]=0;<br />
}<br />
}</p>
<p>/*-----------------------------------------------------------------*/</p>
<p>void JClogo()<br />
{</p>
<p>/*********** Logo ************/</p>
<p>setcolor(3);<br />
setfillstyle(SOLID_FILL,3);<br />
circle(280,180,30);<br />
floodfill(280,180,3);</p>
<p>setcolor(15);<br />
setfillstyle(SOLID_FILL,15);<br />
circle(280,180,27);<br />
circle(280,180,24);<br />
floodfill(254,180,15);</p>
<p>settextstyle(1,0,4);<br />
outtextxy(265,160,"JC");<br />
/******************************/</p>
<p>setcolor(15);<br />
settextstyle(0,0,2);<br />
text3D(200,240,2,3,11,"Just Coding");<br />
text3D(220,290,2,3,11,"Presents");<br />
text3D(70,390,2,3,11,"www.justdocodings.blogspot.in");</p>
<p>settextstyle(0,0,0);</p>
<p>}</p>
<p>//***************************************************************<br />
// Starting Screen<br />
//****************************************************************</p>
<p>void Start()<br />
{</p>
<p>settextstyle(0,0,2);<br />
text3D(230,200,2,3,11,"Loading...");<br />
settextstyle(0,0,0);<br />
for(int i=0;i&lt;1000;i++)<br />
putpixel(random(640),random(480),random(16));<br />
delay(4000);<br />
cleardevice();</p>
<p>JClogo();<br />
for(int l=0;l&lt;1000;l++)<br />
putpixel(random(640),random(480),random(16));</p>
<p>delay(5000);<br />
cleardevice();</p>
<p>settextstyle(0,0,2);<br />
text3D(230,200,2,3,11,"a game by");<br />
text3D(250,240,2,3,11,"Manish Kumar");<br />
settextstyle(0,0,0);<br />
for(int k=0;k&lt;1000;k++)<br />
putpixel(random(640),random(480),random(16));</p>
<p>delay(4000);<br />
cleardevice();</p>
<p>settextstyle(0,0,7);<br />
text3D(50,150,4,3,11,"SNAKE GAME");<br />
settextstyle(0,0,2);<br />
text3D(100,300,2,3,11,"(c) Copyright 2018 Manish Kumar");<br />
settextstyle(0,0,0);<br />
for(int j=0;j&lt;2000;j++)<br />
putpixel(random(640),random(480),random(16));<br />
delay(6000);<br />
cleardevice();</p>
<p>}</p>
<p>//***************************************************************<br />
// Introduction Function<br />
//****************************************************************</p>
<p>void Intro()<br />
{</p>
<p>cleardevice();<br />
setcolor(15);<br />
settextstyle(0,0,4);<br />
for(int i=0;i&lt;4;i++)<br />
outtextxy(260+i,30+i,"HELP");<br />
settextstyle(0,0,2);<br />
setcolor(4);<br />
for(int k=0;k&lt;=3;k++)<br />
{<br />
outtextxy(100+k,100+30-k,"Left Key : Move Left");<br />
outtextxy(100+k,130+30-k,"Right Key : Move Right");<br />
outtextxy(100+k,160+30-k,"Up Key : Move Up");<br />
outtextxy(100+k,190+30-k,"Down Key : Move Down");<br />
outtextxy(100+k,220+30-k,"Space : Pause");<br />
outtextxy(100+k,250+30-k,"Esc : Return");</p>
<p>outtextxy(100+k,380+30-k,"Press any key to continue...");<br />
if(k==2)<br />
setcolor(12);<br />
}<br />
for(int _i=0;_i&lt;1000;_i++)<br />
putpixel(random(640),random(480),random(16));<br />
getch();<br />
}</p>
<p>/*-------------------------------------------------------------------------*/</p>
<p>void chapterOne()<br />
{<br />
int isGameOver=FALSE;</p>
<p>initSnkPosition(20,20);</p>
<p>while(1)<br />
{</p>
<p>setcolor(12);<br />
rectangle(10,10,500,400);<br />
setcolor(3);<br />
rectangle(11,11,499,399);<br />
setcolor(12);<br />
rectangle(12,12,498,398);<br />
setcolor(0);</p>
<p>drawStars();<br />
moveSnake();<br />
drawSnake();<br />
hideLastPart();<br />
getFood();</p>
<p>delay(timedelay);</p>
<p>snakeTouchesWall();<br />
moveTheSnake();</p>
<p>if(isSnkHitItself()==TRUE)<br />
{<br />
isGameOver=TRUE;<br />
break;<br />
}</p>
<p>while(kbhit())<br />
keyEvents(ch=getch());</p>
<p>}<br />
if(isGameOver)<br />
{<br />
setcolor(0);<br />
outtextxy(518,370,"PLAYING...");<br />
setcolor(3);<br />
outtextxy(520,370,"Game Over");<br />
snakeCaught();<br />
gameOver();<br />
}</p>
<p>}</p>
<p>void chapterTwo()<br />
{<br />
int isGameOver=FALSE;</p>
<p>initSnkPosition(20,20);</p>
<p>drawBlock(8,10,30,HORIZONTAL);<br />
drawBlock(8,30,30,HORIZONTAL);</p>
<p>while(1)<br />
{</p>
<p>setcolor(12);<br />
rectangle(10,10,500,400);<br />
setcolor(3);<br />
rectangle(11,11,499,399);<br />
setcolor(12);<br />
rectangle(12,12,498,398);<br />
setcolor(0);</p>
<p>drawStars();<br />
moveSnake();<br />
drawSnake();<br />
hideLastPart();<br />
getFood();</p>
<p>delay(timedelay);</p>
<p>snakeTouchesWall();<br />
moveTheSnake();</p>
<p>if(isSnkHitItself()==TRUE || isSnkHitBlock())<br />
{<br />
isGameOver=TRUE;<br />
break;<br />
}</p>
<p>while(kbhit())<br />
keyEvents(ch=getch());</p>
<p>}<br />
if(isGameOver)<br />
{<br />
setcolor(0);<br />
outtextxy(518,370,"PLAYING...");<br />
setcolor(3);<br />
outtextxy(520,370,"Game Over");<br />
snakeCaught();<br />
gameOver();<br />
}</p>
<p>}</p>
<p>void chapterThree()<br />
{<br />
int isGameOver=FALSE;</p>
<p>initSnkPosition(20,20);</p>
<p>drawBlock(3,3,3,HORIZONTAL);<br />
drawBlock(3,4,2,VERTICAL);</p>
<p>drawBlock(3,35,3,HORIZONTAL);<br />
drawBlock(3,33,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,3,3,HORIZONTAL);<br />
drawBlock(MAXX-5,4,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,35,3,HORIZONTAL);<br />
drawBlock(MAXX-5,33,2,VERTICAL);</p>
<p>while(1)<br />
{</p>
<p>setcolor(12);<br />
rectangle(10,10,500,400);<br />
setcolor(3);<br />
rectangle(11,11,499,399);<br />
setcolor(12);<br />
rectangle(12,12,498,398);<br />
setcolor(0);</p>
<p>drawStars();<br />
moveSnake();<br />
drawSnake();<br />
hideLastPart();<br />
getFood();</p>
<p>delay(timedelay);</p>
<p>snakeTouchesWall();<br />
moveTheSnake();</p>
<p>if(isSnkHitItself()==TRUE || isSnkHitBlock())<br />
{<br />
isGameOver=TRUE;<br />
break;<br />
}</p>
<p>while(kbhit())<br />
keyEvents(ch=getch());</p>
<p>}<br />
if(isGameOver)<br />
{<br />
setcolor(0);<br />
outtextxy(518,370,"PLAYING...");<br />
setcolor(3);<br />
outtextxy(520,370,"Game Over");<br />
snakeCaught();<br />
gameOver();<br />
}</p>
<p>}</p>
<p>void chapterFour()<br />
{<br />
int isGameOver=FALSE;</p>
<p>initSnkPosition(20,20);</p>
<p>drawBlock(0,0,MAXX-1,HORIZONTAL);<br />
drawBlock(0,MAXY-2,MAXX-1,HORIZONTAL);<br />
drawBlock(0,1,MAXY-3,VERTICAL);<br />
drawBlock(MAXX-2,1,MAXY-3,VERTICAL);</p>
<p>while(1)<br />
{</p>
<p>setcolor(12);<br />
rectangle(10,10,500,400);<br />
setcolor(3);<br />
rectangle(11,11,499,399);<br />
setcolor(12);<br />
rectangle(12,12,498,398);<br />
setcolor(0);</p>
<p>drawStars();<br />
moveSnake();<br />
drawSnake();<br />
hideLastPart();<br />
getFood();</p>
<p>delay(timedelay);</p>
<p>snakeTouchesWall();<br />
moveTheSnake();</p>
<p>if(isSnkHitItself()==TRUE || isSnkHitBlock())<br />
{<br />
isGameOver=TRUE;<br />
break;<br />
}</p>
<p>while(kbhit())<br />
keyEvents(ch=getch());</p>
<p>}<br />
if(isGameOver)<br />
{<br />
setcolor(0);<br />
outtextxy(518,370,"PLAYING...");<br />
setcolor(3);<br />
outtextxy(520,370,"Game Over");<br />
snakeCaught();<br />
gameOver();<br />
}</p>
<p>}</p>
<p>void chapterFive()<br />
{<br />
int isGameOver=FALSE;</p>
<p>initSnkPosition(20,20);</p>
<p>drawBlock(8,10,30,HORIZONTAL);<br />
drawBlock(8,30,30,HORIZONTAL);</p>
<p>drawBlock(3,3,3,HORIZONTAL);<br />
drawBlock(3,4,2,VERTICAL);</p>
<p>drawBlock(3,35,3,HORIZONTAL);<br />
drawBlock(3,33,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,3,3,HORIZONTAL);<br />
drawBlock(MAXX-5,4,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,35,3,HORIZONTAL);<br />
drawBlock(MAXX-5,33,2,VERTICAL);</p>
<p>while(1)<br />
{</p>
<p>setcolor(12);<br />
rectangle(10,10,500,400);<br />
setcolor(3);<br />
rectangle(11,11,499,399);<br />
setcolor(12);<br />
rectangle(12,12,498,398);<br />
setcolor(0);</p>
<p>drawStars();<br />
moveSnake();<br />
drawSnake();<br />
hideLastPart();<br />
getFood();</p>
<p>delay(timedelay);</p>
<p>snakeTouchesWall();<br />
moveTheSnake();</p>
<p>if(isSnkHitItself()==TRUE || isSnkHitBlock())<br />
{<br />
isGameOver=TRUE;<br />
break;<br />
}</p>
<p>while(kbhit())<br />
keyEvents(ch=getch());</p>
<p>}<br />
if(isGameOver)<br />
{<br />
setcolor(0);<br />
outtextxy(518,370,"PLAYING...");<br />
setcolor(3);<br />
outtextxy(520,370,"Game Over");<br />
snakeCaught();<br />
gameOver();<br />
}</p>
<p>}</p>
<p>void chapterSix()<br />
{<br />
int isGameOver=FALSE;</p>
<p>initSnkPosition(20,20);</p>
<p>drawBlock(0,0,MAXX-1,HORIZONTAL);<br />
drawBlock(0,MAXY-2,MAXX-1,HORIZONTAL);</p>
<p>drawBlock(0,1,16,VERTICAL);<br />
drawBlock(MAXX-2,1,16,VERTICAL);</p>
<p>drawBlock(0,21,17,VERTICAL);<br />
drawBlock(MAXX-2,21,17,VERTICAL);</p>
<p>drawBlock(8,10,30,HORIZONTAL);<br />
drawBlock(8,30,30,HORIZONTAL);</p>
<p>drawBlock(3,3,3,HORIZONTAL);<br />
drawBlock(3,4,2,VERTICAL);</p>
<p>drawBlock(3,35,3,HORIZONTAL);<br />
drawBlock(3,33,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,3,3,HORIZONTAL);<br />
drawBlock(MAXX-5,4,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,35,3,HORIZONTAL);<br />
drawBlock(MAXX-5,33,2,VERTICAL);</p>
<p>while(1)<br />
{</p>
<p>setcolor(12);<br />
rectangle(10,10,500,400);<br />
setcolor(3);<br />
rectangle(11,11,499,399);<br />
setcolor(12);<br />
rectangle(12,12,498,398);<br />
setcolor(0);</p>
<p>drawStars();<br />
moveSnake();<br />
drawSnake();<br />
hideLastPart();<br />
getFood();</p>
<p>delay(timedelay);</p>
<p>snakeTouchesWall();<br />
moveTheSnake();</p>
<p>if(isSnkHitItself()==TRUE || isSnkHitBlock())<br />
{<br />
isGameOver=TRUE;<br />
break;<br />
}</p>
<p>while(kbhit())<br />
keyEvents(ch=getch());</p>
<p>}<br />
if(isGameOver)<br />
{<br />
setcolor(0);<br />
outtextxy(518,370,"PLAYING...");<br />
setcolor(3);<br />
outtextxy(520,370,"Game Over");<br />
snakeCaught();<br />
gameOver();<br />
}</p>
<p>}</p>
<p>void chapterSeven()<br />
{<br />
int isGameOver=FALSE;</p>
<p>initSnkPosition(20,20);</p>
<p>drawBlock(0,0,MAXX-1,HORIZONTAL);<br />
drawBlock(0,MAXY-2,MAXX-1,HORIZONTAL);</p>
<p>drawBlock(0,1,16,VERTICAL);<br />
drawBlock(MAXX-2,1,16,VERTICAL);</p>
<p>drawBlock(0,21,17,VERTICAL);<br />
drawBlock(MAXX-2,21,17,VERTICAL);</p>
<p>drawBlock(8,10,20,VERTICAL);<br />
drawBlock(40,12,20,VERTICAL);</p>
<p>drawBlock(3,3,3,HORIZONTAL);<br />
drawBlock(3,4,2,VERTICAL);</p>
<p>drawBlock(3,35,3,HORIZONTAL);<br />
drawBlock(3,33,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,3,3,HORIZONTAL);<br />
drawBlock(MAXX-5,4,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,35,3,HORIZONTAL);<br />
drawBlock(MAXX-5,33,2,VERTICAL);</p>
<p>while(1)<br />
{</p>
<p>setcolor(12);<br />
rectangle(10,10,500,400);<br />
setcolor(3);<br />
rectangle(11,11,499,399);<br />
setcolor(12);<br />
rectangle(12,12,498,398);<br />
setcolor(0);</p>
<p>drawStars();<br />
moveSnake();<br />
drawSnake();<br />
hideLastPart();<br />
getFood();</p>
<p>delay(timedelay);</p>
<p>snakeTouchesWall();<br />
moveTheSnake();</p>
<p>if(isSnkHitItself()==TRUE || isSnkHitBlock())<br />
{<br />
isGameOver=TRUE;<br />
break;<br />
}</p>
<p>while(kbhit())<br />
keyEvents(ch=getch());</p>
<p>}<br />
if(isGameOver)<br />
{<br />
setcolor(0);<br />
outtextxy(518,370,"PLAYING...");<br />
setcolor(3);<br />
outtextxy(520,370,"Game Over");<br />
snakeCaught();<br />
gameOver();<br />
}</p>
<p>}</p>
<p>void chapterEight()<br />
{<br />
int isGameOver=FALSE;</p>
<p>initSnkPosition(20,20);</p>
<p>drawBlock(0,0,MAXX-1,HORIZONTAL);<br />
drawBlock(0,MAXY-2,MAXX-1,HORIZONTAL);</p>
<p>drawBlock(6,10,16,VERTICAL);<br />
drawBlock(MAXX-9,20,15,VERTICAL);</p>
<p>drawBlock(12,10,20,VERTICAL);<br />
drawBlock(35,12,20,VERTICAL);</p>
<p>drawBlock(3,3,3,HORIZONTAL);<br />
drawBlock(3,4,2,VERTICAL);</p>
<p>drawBlock(3,35,3,HORIZONTAL);<br />
drawBlock(3,33,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,3,3,HORIZONTAL);<br />
drawBlock(MAXX-5,4,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,35,3,HORIZONTAL);<br />
drawBlock(MAXX-5,33,2,VERTICAL);</p>
<p>while(1)<br />
{</p>
<p>setcolor(12);<br />
rectangle(10,10,500,400);<br />
setcolor(3);<br />
rectangle(11,11,499,399);<br />
setcolor(12);<br />
rectangle(12,12,498,398);<br />
setcolor(0);</p>
<p>drawStars();<br />
moveSnake();<br />
drawSnake();<br />
hideLastPart();<br />
getFood();</p>
<p>delay(timedelay);</p>
<p>snakeTouchesWall();<br />
moveTheSnake();</p>
<p>if(isSnkHitItself()==TRUE || isSnkHitBlock())<br />
{<br />
isGameOver=TRUE;<br />
break;<br />
}</p>
<p>while(kbhit())<br />
keyEvents(ch=getch());</p>
<p>}<br />
if(isGameOver)<br />
{<br />
setcolor(0);<br />
outtextxy(518,370,"PLAYING...");<br />
setcolor(3);<br />
outtextxy(520,370,"Game Over");<br />
snakeCaught();<br />
gameOver();<br />
}</p>
<p>}</p>
<p>void chapterNine()<br />
{<br />
int isGameOver=FALSE;</p>
<p>initSnkPosition(20,20);</p>
<p>drawBlock(0,0,MAXX-1,HORIZONTAL);<br />
drawBlock(0,MAXY-2,MAXX-1,HORIZONTAL);</p>
<p>drawBlock(4,7,15,VERTICAL);<br />
drawBlock(MAXX-7,7,15,VERTICAL);</p>
<p>drawBlock(20,21,16,VERTICAL);<br />
drawBlock(MAXX-14,21,16,VERTICAL);</p>
<p>drawBlock(8,10,20,VERTICAL);<br />
drawBlock(40,12,20,VERTICAL);</p>
<p>drawBlock(3,3,3,HORIZONTAL);</p>
<p>drawBlock(3,35,3,HORIZONTAL);</p>
<p>drawBlock(MAXX-7,3,3,HORIZONTAL);</p>
<p>drawBlock(MAXX-7,35,3,HORIZONTAL);</p>
<p>while(1)<br />
{</p>
<p>setcolor(12);<br />
rectangle(10,10,500,400);<br />
setcolor(3);<br />
rectangle(11,11,499,399);<br />
setcolor(12);<br />
rectangle(12,12,498,398);<br />
setcolor(0);</p>
<p>drawStars();<br />
moveSnake();<br />
drawSnake();<br />
hideLastPart();<br />
getFood();</p>
<p>delay(timedelay);</p>
<p>snakeTouchesWall();<br />
moveTheSnake();</p>
<p>if(isSnkHitItself()==TRUE || isSnkHitBlock())<br />
{<br />
isGameOver=TRUE;<br />
break;<br />
}</p>
<p>while(kbhit())<br />
keyEvents(ch=getch());</p>
<p>}<br />
if(isGameOver)<br />
{<br />
setcolor(0);<br />
outtextxy(518,370,"PLAYING...");<br />
setcolor(3);<br />
outtextxy(520,370,"Game Over");<br />
snakeCaught();<br />
gameOver();<br />
}</p>
<p>}</p>
<p>void chapterTen()<br />
{<br />
int isGameOver=FALSE;</p>
<p>initSnkPosition(20,20);</p>
<p>drawBlock(0,0,MAXX-1,HORIZONTAL);<br />
drawBlock(0,MAXY-2,MAXX-1,HORIZONTAL);</p>
<p>drawBlock(0,1,MAXY-3,VERTICAL);<br />
drawBlock(MAXX-2,1,MAXY-3,VERTICAL);</p>
<p>drawBlock(11,10,27,HORIZONTAL);<br />
drawBlock(11,30,27,HORIZONTAL);</p>
<p>drawBlock(8,10,20,VERTICAL);<br />
drawBlock(40,10,20,VERTICAL);</p>
<p>drawBlock(3,3,3,HORIZONTAL);<br />
drawBlock(3,4,2,VERTICAL);</p>
<p>drawBlock(3,35,3,HORIZONTAL);<br />
drawBlock(3,33,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,3,3,HORIZONTAL);<br />
drawBlock(MAXX-5,4,2,VERTICAL);</p>
<p>drawBlock(MAXX-7,35,3,HORIZONTAL);<br />
drawBlock(MAXX-5,33,2,VERTICAL);</p>
<p>while(1)<br />
{</p>
<p>setcolor(12);<br />
rectangle(10,10,500,400);<br />
setcolor(3);<br />
rectangle(11,11,499,399);<br />
setcolor(12);<br />
rectangle(12,12,498,398);<br />
setcolor(0);</p>
<p>drawStars();<br />
moveSnake();<br />
drawSnake();<br />
hideLastPart();<br />
getFood();</p>
<p>delay(timedelay);</p>
<p>snakeTouchesWall();<br />
moveTheSnake();</p>
<p>if(isSnkHitItself()==TRUE || isSnkHitBlock())<br />
{<br />
isGameOver=TRUE;<br />
break;<br />
}</p>
<p>while(kbhit())<br />
keyEvents(ch=getch());</p>
<p>}<br />
if(isGameOver)<br />
{<br />
setcolor(0);<br />
outtextxy(518,370,"PLAYING...");<br />
setcolor(3);<br />
outtextxy(520,370,"Game Over");<br />
snakeCaught();<br />
gameOver();<br />
}</p>
<p>}</p>
<p>void SelectChapter()<br />
{<br />
reset();<br />
mainScreen();<br />
switch(chapter)<br />
{<br />
case 1:<br />
chapterOne();<br />
break;<br />
case 2:<br />
chapterTwo();<br />
break;<br />
case 3:<br />
chapterThree();<br />
break;<br />
case 4:<br />
chapterFour();<br />
break;<br />
case 5:<br />
chapterFive();<br />
break;<br />
case 6:<br />
chapterSix();<br />
break;<br />
case 7:<br />
chapterSeven();<br />
break;<br />
case 8:<br />
chapterEight();<br />
break;<br />
case 9:<br />
chapterNine();<br />
break;<br />
case 10:<br />
chapterTen();<br />
break;<br />
default:<br />
chapterOne();<br />
break;<br />
}</p>
<p>}</p>
<p>/*--------------------------------------------------------------*/</p>
<p>void chapterMenu()<br />
{<br />
int _x=220,_y=50,_h=30;<br />
int cY=_y+2*_h;<br />
int choice=1;<br />
int key;<br />
cleardevice();<br />
do{</p>
<p>settextstyle(0,0,4);<br />
text3D(_x-70,_y,2,3,11,"CHAPTER MENU");<br />
settextstyle(0,0,2);<br />
text3D(_x,_y+2*_h,1,3,11,"1. Chapter 1");<br />
text3D(_x,_y+3*_h,1,3,11,"2. Chapter 2");<br />
text3D(_x,_y+4*_h,1,3,11,"3. Chapter 3");<br />
text3D(_x,_y+5*_h,1,3,11,"4. Chapter 4");<br />
text3D(_x,_y+6*_h,1,3,11,"5. Chapter 5");<br />
text3D(_x,_y+7*_h,1,3,11,"6. Chapter 6");<br />
text3D(_x,_y+8*_h,1,3,11,"7. Chapter 7");<br />
text3D(_x,_y+9*_h,1,3,11,"8. Chapter 8");<br />
text3D(_x,_y+10*_h,1,3,11,"9. Chapter 9");<br />
text3D(_x,_y+11*_h,1,3,11,"10. Chapter 10");<br />
text3D(_x,_y+12*_h,1,3,11,"11. Main Menu");<br />
for(int j=0;j&lt;3000;j++) putpixel(random(640),random(480),random(16)); setcolor(12); outtextxy(_x-50,cY,"&gt;&gt;");</p>
<p>do{<br />
key=getch();</p>
<p>if(key==UP_KEY)<br />
{<br />
setcolor(0);<br />
outtextxy(_x-50,cY,"&gt;&gt;");</p>
<p>cY-=_h;<br />
choice--;</p>
<p>if(choice&lt;1) { choice=11; cY =_y+12*_h; } setcolor(12); outtextxy(_x-50,cY,"&gt;&gt;");</p>
<p>sound(1000);<br />
delay(20);<br />
nosound();</p>
<p>}<br />
else if(key==DOWN_KEY)<br />
{<br />
setcolor(0);<br />
outtextxy(_x-50,cY,"&gt;&gt;");<br />
cY+=_h;<br />
choice++;<br />
if(choice&gt;11)<br />
{<br />
choice=1;<br />
cY=_y+2*_h;<br />
}</p>
<p>setcolor(12);<br />
outtextxy(_x-50,cY,"&gt;&gt;");</p>
<p>sound(1000);<br />
delay(20);<br />
nosound();</p>
<p>}</p>
<p>}while(key!=13);</p>
<p>switch(choice)<br />
{<br />
case 1:<br />
chapter=1;<br />
choice=0;<br />
break;<br />
case 2:<br />
chapter=2;<br />
choice=0;<br />
break;<br />
case 3:<br />
chapter=3;<br />
choice=0;<br />
break;<br />
case 4:<br />
chapter=4;<br />
choice=0;<br />
break;<br />
case 5:<br />
chapter=5;<br />
choice=0;<br />
break;<br />
case 6:<br />
chapter=6;<br />
choice=0;<br />
break;<br />
case 7:<br />
chapter=7;<br />
choice=0;<br />
break;<br />
case 8:<br />
chapter=8;<br />
choice=0;<br />
break;<br />
case 9:<br />
chapter=9;<br />
choice=0;<br />
break;<br />
case 10:<br />
chapter=10;<br />
choice=0;<br />
break;<br />
case 11:<br />
mainMenu();<br />
break;</p>
<p>}</p>
<p>}while(choice!=0);<br />
cleardevice();<br />
SelectChapter();<br />
}<br />
void mainMenu()<br />
{<br />
int _x=220,_y=100,_h=30;<br />
int cY=_y+2*_h;<br />
int choice=1;<br />
int key;<br />
cleardevice();<br />
do{</p>
<p>settextstyle(0,0,4);<br />
text3D(_x-70,_y,2,3,11,"MAIN MENU");<br />
settextstyle(0,0,2);<br />
text3D(_x,_y+2*_h,1,3,11,"1. BEGINNER");<br />
text3D(_x,_y+3*_h,1,3,11,"2. ADVANCE");<br />
text3D(_x,_y+4*_h,1,3,11,"3. EXPERT");<br />
text3D(_x,_y+5*_h,1,3,11,"4. Exit");<br />
for(int j=0;j&lt;3000;j++) putpixel(random(640),random(480),random(16)); setcolor(12); outtextxy(_x-50,cY,"&gt;&gt;");</p>
<p>do{<br />
key=getch();</p>
<p>if(key==UP_KEY)<br />
{<br />
setcolor(0);<br />
outtextxy(_x-50,cY,"&gt;&gt;");</p>
<p>cY-=_h;<br />
choice--;</p>
<p>if(choice&lt;1) { choice=4; cY =_y+5*_h; } setcolor(12); outtextxy(_x-50,cY,"&gt;&gt;");</p>
<p>sound(1000);<br />
delay(20);<br />
nosound();</p>
<p>}<br />
else if(key==DOWN_KEY)<br />
{<br />
setcolor(0);<br />
outtextxy(_x-50,cY,"&gt;&gt;");<br />
cY+=_h;<br />
choice++;<br />
if(choice&gt;4)<br />
{<br />
choice=1;<br />
cY=_y+2*_h;<br />
}</p>
<p>setcolor(12);<br />
outtextxy(_x-50,cY,"&gt;&gt;");</p>
<p>sound(1000);<br />
delay(20);<br />
nosound();</p>
<p>}</p>
<p>}while(key!=13);</p>
<p>switch(choice)<br />
{<br />
case 1:<br />
level=1;<br />
choice=0;<br />
break;<br />
case 2:<br />
level=2;<br />
choice=0;<br />
break;<br />
case 3:<br />
level=3;<br />
choice=0;<br />
break;<br />
case 4:<br />
closegraph();<br />
restorecrtmode();<br />
clrscr();<br />
cout&lt;&lt;"\n\n\t\t Thank You for playing Snake Game.";<br />
cout&lt;&lt;"\n\n\tPlease visit our hompage : www.justdocodings.blogspot.in\n\n\n";<br />
exit(0);<br />
break;</p>
<p>}</p>
<p>}while(choice!=0);<br />
chapterMenu();<br />
}</p>
<p>void main()<br />
{<br />
int gd=DETECT,gm;<br />
initgraph(&amp;gd,&amp;gm,"c://turboc3//bgi");</p>
<p>Start();<br />
Intro();<br />
mainMenu();<br />
}<br />
</code><br />
Nella parte superiore del codice vengono definite quattro costanti per il controller. Successivamente vengono dichiarati diversi prototipi di funzione che invocheranno le opportuni funzioni a tempo debito. All&#8217;avvio System (cls) elimina le finestre da riga di comando per consentire l&#8217;esecuzione del gioco snake.  Il metodo di avvio viene utilizzato per avviare il gioco. Successivamente è possibile selezionare il livello di gioco dato in input dall&#8217;utente. Il metodo START viene utilizzato per dichiarare un&#8217;istruzione goto. Quando il serpente colpisce il muro, la funzione viene interrotta e l&#8217;istanza di gioco viene distrutta.<!--------------------------------------><!-- Conversion Box Made Using : -------><!-- WP Conversion Boxes - -------------><!-- http://wpconversionboxes.com --><!--------------------------------------></p>
<div class="wpcb_nothing_offset"></div>
<style>
<p>    .wpcb_template_main_1{</p>
<p>        background-color: #0faf97;
        width: 100%;
        height: ;
        border-width: ;
        border-color: ;
        margin-top: ;
        margin-bottom: ;
        margin-left: ;
        margin-right: ;
        padding: 20px;
        -webkit-box-shadow: inset 0px 0px 200px -38px rgba(0,0,0,0.5);
        -moz-box-shadow: inset 0px 0px 200px -38px rgba(0,0,0,0.5);
        box-shadow: inset 0px 0px 200px -38px rgba(0,0,0,0.5);     </p>
<p>    }</p>
<p>    .wpcb_template_main_1 .wpcb_box_heading{
        background-color: ;
        padding-top: 0px;
    }</p>
<p>    .wpcb_template_main_1 .wpcb_box_heading_text{
        font-family:    'Arial', serif;
        font-size:      32px;
        line-height:    38px;
        color:          #ffffff;
        text-align:     center;
        text-shadow: 0px 3px 4px rgba(0, 0, 0, 0.25);
        font-weight: 900;
        margin: 0;
    }</p>
<p>    .wpcb_template_main_1 .wpcb_box_content_container{</p>
<p>    }    </p>
<p>    .wpcb_template_main_1 .wpcb_box_content{
        font-family:    Arial;
        font-size:      20px;
        line-height:    24px;
        color:          #ffffff;
        text-align:     center;
        padding: 20px 0px;
    }</p>
<p>    .wpcb_template_main_1 .wpcb_box_button_div{
        text-align: center;
    }</p>
<p>    .wpcb_template_main_1 .wpcb_box_button_div a.wpcb_box_button, .wpcb_template_main_1 .wpcb_box_button_div button.wpcb_box_button{
        font-family:    Arial;
        font-size:      16px;
        color:          #fff;
        background-color: #4f78f2;
        border-radius: 30px;
        width: ;
        padding: 10px 15px;
    }</p>
<p>    .wpcb_button_gradient{background-image : -moz-linear-gradient(top, #4f78f2, #1851f9);background-image : -ms-linear-gradient(top, #4f78f2, #1851f9);background-image : -webkit-gradient(linear, #4f78f2, #1851f9);background-image : -webkit-linear-gradient(top, #4f78f2, #1851f9);background-image : -o-linear-gradient(top, #4f78f2, #1851f9);background-image : linear-gradient(top, #4f78f2, #1851f9);filter : progid:DXImageTransform.Microsoft.gradient(startColorstr=&quot;#4f78f2&quot;, endColorstr=&quot;#1851f9&quot;, GradientType=0);border-color : +#4f78f2 #1851f9 #1851f9;background-color : #4f78f2;}    </p>
</style>
<div class="wpcb_template_main wpcb_template_main_1 wpcb_nothing wpcb_nothing" data-fadetime="0">
<div class="wpcb_box_all_content_container">
<div class="wpcb_box_content_container">
<div class="wpcb_box_heading">
<div class="wpcb_box_heading_text">Hai bisogno di una consulenza o assistenza?</div>
</p></div>
<div class="wpcb_box_content">
                Apri un ticket di richiesta, ti risponderò in brevissimo tempo! Chiedere non costa nulla <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" />            </div>
<div class="wpcb_box_button_div">
                <a href="http://simonetocco.it/assistenza-e-consulenza/" target="" id="wpcb_box_button_1" class="wpcb_box_button wpcb_button_gradient">Apri Richiesta</a>
            </div>
</p></div>
</p></div>
</div>
<p><!------------------------------><!-- Conversion Box Ends Here --><!------------------------------></p>
<div class="wpcb-tracker" data-id="3640846" data-boxid="1" data-visitedpage="https://simonetocco.it:443/tag/c/feed/" data-visittype="visit"></div>
<p>L'articolo <a href="https://simonetocco.it/gioco-snake-in-linguaggio-c/">Gioco snake in linguaggio c++: algoritmo/codice sorgente</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://simonetocco.it/gioco-snake-in-linguaggio-c/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
