<?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>Programmazione Archivi -</title>
	<atom:link href="https://simonetocco.it/category/programmazione/feed/" rel="self" type="application/rss+xml" />
	<link>https://simonetocco.it/category/programmazione/</link>
	<description></description>
	<lastBuildDate>Fri, 01 Oct 2021 06:34:33 +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>Programmazione Archivi -</title>
	<link>https://simonetocco.it/category/programmazione/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Arduino Monitor Seriale non funziona e con caratteri strani</title>
		<link>https://simonetocco.it/arduino-monitor-seriale-non-funziona-e-con-caratteri-strani/</link>
					<comments>https://simonetocco.it/arduino-monitor-seriale-non-funziona-e-con-caratteri-strani/#comments</comments>
		
		<dc:creator><![CDATA[Simone Tocco]]></dc:creator>
		<pubDate>Fri, 01 Oct 2021 06:34:29 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[arduino]]></category>
		<guid isPermaLink="false">https://simonetocco.it/?p=2666</guid>

					<description><![CDATA[<p>Se ti è capitato di avere un problema con il monitor seriale di Arduino questo è un articolo che potrebbe fare al tuo caso. Mi è successo di avviare uno sketch e vederne i risultati sul monitor seriale ma, su questo, vedevo comparire una serie di caratteri e simboli strani non decifrabili e insoliti. Mi [&#8230;]</p>
<p>L'articolo <a href="https://simonetocco.it/arduino-monitor-seriale-non-funziona-e-con-caratteri-strani/">Arduino Monitor Seriale non funziona e con caratteri strani</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Se ti è capitato di avere un <strong>problema con il monitor seriale di Arduino</strong> questo è un articolo che potrebbe fare al tuo caso.</p>



<p>Mi è successo di avviare uno sketch e vederne i risultati sul monitor seriale ma, su questo, vedevo comparire una serie di c<strong>aratteri e simboli strani</strong> non decifrabili e insoliti. </p>



<p>Mi ha fatto perdere un pò di tempo e come spesso avviene, la soluzione è semplice e stupida allo stesso tempo.</p>



<p>Quando si ha un problema con<strong> il monitor seriale di Arduino</strong> spesso si ha un&#8217; incompatibilità di <strong>velocità della Serial.begin()</strong> con quella del monitor.</p>



<p>Poichè spesso la velocità è impostata a 9600, quando si utilizzano sketch con velocità diversa il problema si presenterà. </p>



<p>Per risolvere il problema basta quindi settare la velocità specificata nella Serial.begin() con la stessa del Monitor Seriale di Arduino come da immagine.</p>



<figure class="wp-block-image size-large"><a href="https://simonetocco.it/wp-content/uploads/2021/10/Schermata-2021-10-01-alle-08.28.09.png"><img fetchpriority="high" decoding="async" width="1024" height="951" src="https://simonetocco.it/wp-content/uploads/2021/10/Schermata-2021-10-01-alle-08.28.09-1024x951.png" alt="" class="wp-image-2668" srcset="https://simonetocco.it/wp-content/uploads/2021/10/Schermata-2021-10-01-alle-08.28.09-1024x951.png 1024w, https://simonetocco.it/wp-content/uploads/2021/10/Schermata-2021-10-01-alle-08.28.09-300x279.png 300w, https://simonetocco.it/wp-content/uploads/2021/10/Schermata-2021-10-01-alle-08.28.09-768x713.png 768w, https://simonetocco.it/wp-content/uploads/2021/10/Schermata-2021-10-01-alle-08.28.09-1536x1426.png 1536w, https://simonetocco.it/wp-content/uploads/2021/10/Schermata-2021-10-01-alle-08.28.09.png 1680w" sizes="(max-width: 1024px) 100vw, 1024px" /></a></figure>
<!--------------------------------------><!-- 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="3640690" data-boxid="1" data-visitedpage="https://simonetocco.it:443/category/programmazione/feed/" data-visittype="visit"></div><p>L'articolo <a href="https://simonetocco.it/arduino-monitor-seriale-non-funziona-e-con-caratteri-strani/">Arduino Monitor Seriale non funziona e con caratteri strani</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://simonetocco.it/arduino-monitor-seriale-non-funziona-e-con-caratteri-strani/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<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="3640692" data-boxid="1" data-visitedpage="https://simonetocco.it:443/category/programmazione/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>Valvola Solare Termica motorizzata con Arduino</title>
		<link>https://simonetocco.it/valvola-solare-termica-motorizzata-con-arduino/</link>
					<comments>https://simonetocco.it/valvola-solare-termica-motorizzata-con-arduino/#respond</comments>
		
		<dc:creator><![CDATA[Simone Tocco]]></dc:creator>
		<pubDate>Thu, 26 Nov 2020 14:12:53 +0000</pubDate>
				<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Robotica]]></category>
		<category><![CDATA[arduino]]></category>
		<category><![CDATA[sensore]]></category>
		<category><![CDATA[solare]]></category>
		<category><![CDATA[temperatura]]></category>
		<category><![CDATA[valvola]]></category>
		<guid isPermaLink="false">https://simonetocco.it/?p=2110</guid>

					<description><![CDATA[<p>Un impianto solare termico, utilizza l&#8217;irraggiamento solare per riscaldare dell&#8217;acqua da immettere dentro casa. Quando, però, la sua temperatura non è sufficiente, questi impianti utilizzano un supporto al riscaldamento come una caldaia a gas. La richiesta di supporto alla caldaia, viene solitamente inviata da una valvola solare termica, ovvero una valvola meccanica che ha al [&#8230;]</p>
<p>L'articolo <a href="https://simonetocco.it/valvola-solare-termica-motorizzata-con-arduino/">Valvola Solare Termica motorizzata con Arduino</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></description>
										<content:encoded><![CDATA[

<p>Un impianto solare termico, utilizza l&#8217;irraggiamento solare per riscaldare dell&#8217;acqua da immettere dentro casa. Quando, però, la sua temperatura non è sufficiente, questi impianti utilizzano un supporto al riscaldamento come una caldaia a gas. La richiesta di supporto alla caldaia, viene solitamente inviata da una valvola solare termica, ovvero una valvola meccanica che ha al suo interno un bulbo costituito da un materiale che reagisce al calore dell&#8217;acqua facendo alzare o abbassare una valvola di flusso.</p>
<p>La Valvola Solare Termica è un elemento però delicato che subisce alterazioni soprattutto in presenza di acqua dura che comporta spesso il blocco dei meccanismi interni.</p>
<p>Avendo avuto più volte questo problema, ho deciso di provare a realizzare una valvola solare termica motorizzata con Arduino. Questa è in grado di rilevare la temperatura dell&#8217;acqua e ruotare la valvola a seconda che ci sia bisogno o meno dell&#8217;intervento della caldaia.</p>
<p> </p>
<h3>Occorrente:</h3>
<p><iframe style="width: 120px; height: 240px;" src="https://rcm-eu.amazon-adsystem.com/e/cm?ref=qf_sp_asin_til&amp;t=simonetocco-21&amp;m=amazon&amp;o=29&amp;p=8&amp;l=as1&amp;IS1=1&amp;asins=B008GRTSV6&amp;linkId=f31bbeb218b8e2c9205fa3429f02bf24&amp;bc1=FFFFFF&amp;lt1=_top&amp;fc1=333333&amp;lc1=0066C0&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no">
    </iframe><iframe style="width: 120px; height: 240px;" src="https://rcm-eu.amazon-adsystem.com/e/cm?ref=tf_til&amp;t=simonetocco-21&amp;m=amazon&amp;o=29&amp;p=8&amp;l=as1&amp;IS1=1&amp;asins=B07KNQJ3D7&amp;linkId=6de4c5597fd7d7d2d4b1cbb64754acfb&amp;bc1=FFFFFF&amp;lt1=_top&amp;fc1=333333&amp;lc1=0066C0&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no">
    </iframe><iframe style="width: 120px; height: 240px;" src="https://rcm-eu.amazon-adsystem.com/e/cm?ref=tf_til&amp;t=simonetocco-21&amp;m=amazon&amp;o=29&amp;p=8&amp;l=as1&amp;IS1=1&amp;asins=B07GCGSPVJ&amp;linkId=da2ccf1493742fec71fda0f1bd699fe3&amp;bc1=FFFFFF&amp;lt1=_top&amp;fc1=333333&amp;lc1=0066C0&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no">
    </iframe><iframe style="width: 120px; height: 240px;" src="https://rcm-eu.amazon-adsystem.com/e/cm?ref=tf_til&amp;t=simonetocco-21&amp;m=amazon&amp;o=29&amp;p=8&amp;l=as1&amp;IS1=1&amp;asins=B07KQ2ZGT8&amp;linkId=b9f65e95d53970f3c608ced76e62301b&amp;bc1=FFFFFF&amp;lt1=_top&amp;fc1=333333&amp;lc1=0066C0&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no">
    </iframe><iframe style="width: 120px; height: 240px;" src="https://rcm-eu.amazon-adsystem.com/e/cm?ref=tf_til&amp;t=simonetocco-21&amp;m=amazon&amp;o=29&amp;p=8&amp;l=as1&amp;IS1=1&amp;asins=B01N40EK6M&amp;linkId=2bb1d142774fd9b142e559cd75ee2ee2&amp;bc1=FFFFFF&amp;lt1=_top&amp;fc1=333333&amp;lc1=0066C0&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no">
    </iframe><iframe style="width: 120px; height: 240px;" src="https://rcm-eu.amazon-adsystem.com/e/cm?ref=tf_til&amp;t=simonetocco-21&amp;m=amazon&amp;o=29&amp;p=8&amp;l=as1&amp;IS1=1&amp;asins=B0814PLDRX&amp;linkId=754cdce342a49a55614fcb125a42f2f5&amp;bc1=FFFFFF&amp;lt1=_top&amp;fc1=333333&amp;lc1=0066C0&amp;bg1=FFFFFF&amp;f=ifr" frameborder="0" marginwidth="0" marginheight="0" scrolling="no">
    </iframe> </p>
<h3>Collegamenti:</h3>
<p>Per collegare l&#8217;impianto occorre:</p>
<p>La valvola motorizzata deve essere collegata</p>
<ul>
<li style="text-align: left;">al negativo della batteria (o dell&#8217;alimentatore quanto in funzione),</li>
<li style="text-align: left;">il cavo blu e marrone agli estremi di uscita del relè,</li>
<li style="text-align: left;">mentre il connettore centrale sarà alimentato dal polo positivo della batteria (o alimentatore).</li>
</ul>
<p>L&#8217;altro capo del relè sarà invece connesso:</p>
<ul>
<li>sul primo pin uniremo il segnale digitale 8 dell&#8217;Arduino</li>
<li>sul secondo pin collegheremo l&#8217;alimentazione sul positivo a 5V di arduino</li>
<li>sul terzo pin collegheremo l&#8217;alimentazione sul negativo di arduino</li>
</ul>
<p>Il sensore di temperatura DS18B20 dovrà invece essere collegato con il</p>
<ul>
<li>rosso al positivo 5V di arduino</li>
<li>nero al negativo di arduino</li>
<li>giallo al segnale digitale 10 di arduino</li>
<li>è necessario inoltre ponticellare il positivo di arduino ed il cavo di segnale giallo del sensore con una resistenza a 4,7K</li>
</ul>
<h3>Programma Arduino Sketch</h3>
<p>/********************************************************************/<br />// First we include the libraries<br />#include &lt;OneWire.h&gt;<br />#include &lt;DallasTemperature.h&gt;<br />/********************************************************************/<br />// Data wire is plugged into pin 2 on the Arduino<br />#define ONE_WIRE_BUS 10<br />/********************************************************************/<br />// Setup a oneWire instance to communicate with any OneWire devices<br />// (not just Maxim/Dallas temperature ICs)<br />OneWire oneWire(ONE_WIRE_BUS);<br />/********************************************************************/<br />// Pass our oneWire reference to Dallas Temperature.<br />DallasTemperature sensors(&amp;oneWire);<br />/********************************************************************/</p>
<p>int relay_pin = 8;</p>
<p>void setup(void)<br />{<br />// start serial port<br />Serial.begin(9600);<br />Serial.println(&#8220;Dallas Temperature IC Control Library Demo&#8221;);<br />// Start up the library<br />sensors.begin();<br />pinMode(relay_pin,OUTPUT);<br />}<br />void loop(void)<br />{<br />// call sensors.requestTemperatures() to issue a global temperature<br />// request to all devices on the bus<br />/********************************************************************/<br />Serial.print(&#8221; Requesting temperatures&#8230;&#8221;);<br />sensors.requestTemperatures(); // Send the command to get temperature readings<br />Serial.println(&#8220;DONE&#8221;);<br />/********************************************************************/<br />Serial.print(&#8220;Temperature is: &#8220;);<br />Serial.print(sensors.getTempCByIndex(0));</p>
<p>if (sensors.getTempCByIndex(0)&gt;30){<br />Serial.print(&#8221; Diretta &#8220;);<br />digitalWrite(relay_pin,HIGH);</p>
<p>}<br />else{<br />Serial.print(&#8221; Verso Caldaia &#8220;);<br />digitalWrite(relay_pin,LOW);<br />}<br />// You can have more than one DS18B20 on the same bus.<br />// 0 refers to the first IC on the wire<br />delay(1000);<br />}</p>
<p>Per rendere il tutto più user friendly ho aggiunto 2 led per segnalare lo status dell&#8217;impianto ed un buzzer per segnalare un allarme quando l&#8217;impianto solare raggiunge i 90°. Inscatolato il progetto ultimato diventa così:</p>
<p><img decoding="async" class="aligncenter size-full wp-image-2120" src="https://simonetocco.it/wp-content/uploads/2020/11/valvola-solare-arduino.jpeg" alt="" width="800" height="600" srcset="https://simonetocco.it/wp-content/uploads/2020/11/valvola-solare-arduino.jpeg 800w, https://simonetocco.it/wp-content/uploads/2020/11/valvola-solare-arduino-600x450.jpeg 600w, https://simonetocco.it/wp-content/uploads/2020/11/valvola-solare-arduino-300x225.jpeg 300w, https://simonetocco.it/wp-content/uploads/2020/11/valvola-solare-arduino-768x576.jpeg 768w" sizes="(max-width: 800px) 100vw, 800px" /></p>


<figure class="wp-block-embed-youtube wp-block-embed"><div class="wp-block-embed__wrapper">
<p class="responsive-video-wrap clr"><iframe title="Valvola solare motorizzata con Arduino" width="1200" height="675" src="https://www.youtube.com/embed/sp4I-q_KQvA?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
</div></figure>
<!--------------------------------------><!-- 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="3640694" data-boxid="1" data-visitedpage="https://simonetocco.it:443/category/programmazione/feed/" data-visittype="visit"></div><p>L'articolo <a href="https://simonetocco.it/valvola-solare-termica-motorizzata-con-arduino/">Valvola Solare Termica motorizzata con Arduino</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://simonetocco.it/valvola-solare-termica-motorizzata-con-arduino/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Acquisizione Forense Pagine Web come prova</title>
		<link>https://simonetocco.it/acquisizione-forense-pagine-web-come-prova/</link>
					<comments>https://simonetocco.it/acquisizione-forense-pagine-web-come-prova/#respond</comments>
		
		<dc:creator><![CDATA[Simone Tocco]]></dc:creator>
		<pubDate>Fri, 26 Oct 2018 18:00:08 +0000</pubDate>
				<category><![CDATA[Informatica Forense]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Ricerca]]></category>
		<category><![CDATA[Sicurezza]]></category>
		<category><![CDATA[forense]]></category>
		<category><![CDATA[forensic]]></category>
		<category><![CDATA[hash]]></category>
		<category><![CDATA[md5]]></category>
		<category><![CDATA[sha1]]></category>
		<guid isPermaLink="false">https://simonetocco.it/?p=1818</guid>

					<description><![CDATA[<p>Ormai gran parte delle informazioni e soprattutto delle discussioni viaggiano sul web. E&#8217; quindi inevitabile che anche molti reati o presunti tali vengano commessi all&#8217;interno di pagine web. Hai fini giudiziari risulta quindi indispensabile fornire come prova una pagina internet quale elemento probatorio di accusa o difesa.  Spesso però si commettono errori grossolani che invalidano [&#8230;]</p>
<p>L'articolo <a href="https://simonetocco.it/acquisizione-forense-pagine-web-come-prova/">Acquisizione Forense Pagine Web come prova</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Ormai gran parte delle informazioni e soprattutto delle discussioni viaggiano sul web. E&#8217; quindi inevitabile che anche molti <strong>reati o presunti tali</strong> vengano commessi all&#8217;interno di pagine web. Hai fini giudiziari risulta quindi indispensabile fornire <strong>come prova una pagina internet</strong> quale elemento probatorio di accusa o difesa.  Spesso però si commettono errori grossolani che invalidano molto semplicemente una prova in quanto non acquisita in metodo scientifico.</p>
<p>&nbsp;</p>
<h2>Foto o stampa della pagina web non basta come prova</h2>
<p>Molti ritengono che sia sufficiente <strong>stampare una pagina di un sito web o farle una foto</strong> per acquisirla quindi come prova ed essere esibita quindi in corso di giudizio. Questo purtroppo o per fortuna<strong> non è assolutamente sufficiente</strong> in quanto una foto potrebbe essere facilmente manipolata così come una stampa rendendo non veritieri gli elementi di accusa o difesa che compongono il sito web (<strong>Corte di Cassazione, con sentenza n. 2912/94</strong>). Anche se una foto di una pagina di un sito web o una stampa della stessa <strong>venissero autenticate da un pubblico ufficiale o notaio</strong>, questa sarebbe del tutto inefficace dal punto di vista probatorio a meno che il notaio non verifichi anche la presenta di quanto si vuole <strong>dimostrare direttamente online</strong>. Questo però comporta che tra la pubblicazione del contenuto oggetto di prova e l&#8217;acquisizione certificata con un pubblico ufficiale <strong>può passare diverso tempo</strong>, tempo che può essere utilizzato dalla controparte per <strong>modificare o eliminare</strong> quanto proposto su un sito internet.</p>
<p>&nbsp;</p>
<h2>Acquisizione Forense di una pagina Web</h2>
<p>Utilissima in caso di reati quali ingiuria, calunnia, minacce, stalking e diffamazione, l&#8217;acquisizione forense di una pagina web viene eseguita utilizzando particolari accorgimenti tecnici che legano il <strong>contenuto di una pagina internet ad una data certa</strong> rendendo impossibile la manipolazione del contenuto e del suo legame con la data di acquisizione. Attraverso questo espediente si può <strong>dare valore legale ad una pagina web</strong> utilizzandola quindi come prova in sede di giudizio. Il metodo più frequente e meno dispendioso per effettuare una <strong>certificazione di una pagina web</strong>, è quello di utilizzare algoritmi di crittografia quindi utilizzando le <strong>funzioni HASH</strong></p>
<p>&nbsp;</p>
<h2>Acquisizione Forense con Funzioni Hash</h2>
<p>Gli <strong>algoritmi MD5 e SHA1</strong> sono detti anche di hash in quanto, <strong>partendo da un testo qualsiasi, generano una stringa di lunghezza fissa</strong>. L&#8217;aspetto forte è che la funzione opera <strong>solo in un verso</strong>, non è quindi possibile risalire ad un testo partendo da una stringa hash. Questa funzione rappresenta una sorta di <strong>impronta digitale</strong> del contenuto di un file e viene spesso usata per asserire che un testo o un file non sia stato alterato da una persona, virus o malware. Allo stesso modo è possibile utilizzare le <strong>funzioni HASH per autenticare una pagina web</strong>.  A tal fine gli algoritmi procedono all&#8217;acquisizione del <strong>contenuto di una pagina web</strong> e anche delle <strong>comunicazioni che il server invia</strong> ad un utente dove sono contenute anche la data e l&#8217;orario in cui una pagina viene richiesta. <strong>I testi ricavati</strong> vengono quindi passati sotto un algoritmo di hash il quale <strong>genera una stringa univoca ripetibile solo avendo gli stessi testi come input</strong>. Viene da se quindi che queste funzioni sono molto utili per avere <strong>un&#8217;acquisizione forense</strong> di una pagina web che non potrà essere invalidata.</p>
<h1 style="text-align: center;"><a href="https://simonetocco.it/generatore-di-pagine-web-certificate-come-prova/">SCOPRI IL SERVIZIO GRATUITO DI ACQUISIZIONE FORENSE</a></h1>
<p><!--------------------------------------><!-- 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="3640696" data-boxid="1" data-visitedpage="https://simonetocco.it:443/category/programmazione/feed/" data-visittype="visit"></div>
<p>L'articolo <a href="https://simonetocco.it/acquisizione-forense-pagine-web-come-prova/">Acquisizione Forense Pagine Web come prova</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://simonetocco.it/acquisizione-forense-pagine-web-come-prova/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="3640698" data-boxid="1" data-visitedpage="https://simonetocco.it:443/category/programmazione/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>
		<item>
		<title>Differenze tra SOAP e REST per i Web Service</title>
		<link>https://simonetocco.it/differenze-soap-rest-web-service/</link>
					<comments>https://simonetocco.it/differenze-soap-rest-web-service/#respond</comments>
		
		<dc:creator><![CDATA[Simone Tocco]]></dc:creator>
		<pubDate>Sun, 07 May 2017 08:19:09 +0000</pubDate>
				<category><![CDATA[Pillole]]></category>
		<category><![CDATA[Programmazione]]></category>
		<category><![CDATA[Sicurezza]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[rest]]></category>
		<category><![CDATA[soap]]></category>
		<category><![CDATA[web service]]></category>
		<guid isPermaLink="false">http://simonetocco.it/?p=1564</guid>

					<description><![CDATA[<p>I Web Service vengono utilizzati per far comunicare diverse applicazioni che lavorano in linguaggi diversi e su piattaforme diverse. Ad esempio, un&#8217;applicazione Java che gira su macchina Linux è in grado di comunicare con un altro applicativo scritto in PHP che gira sotto macchina Windows utilizzando i web service. Ci sono attualmente due tipi di [&#8230;]</p>
<p>L'articolo <a href="https://simonetocco.it/differenze-soap-rest-web-service/">Differenze tra SOAP e REST per i Web Service</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>I <strong>Web Service</strong> vengono utilizzati per far comunicare diverse applicazioni che lavorano in linguaggi diversi e su piattaforme diverse. Ad esempio, un&#8217;applicazione Java che gira su macchina Linux è in grado di comunicare con un altro applicativo scritto in PHP che gira sotto macchina Windows utilizzando i web service. Ci sono attualmente due tipi di web service: <strong>SOAP e REST</strong>. Trattiamo quindi le principali differenze comparative di questi:</p>
<div></div>
<div></div>
<h2>SOAP vs REST &#8211; Le Differenze</h2>
<table>
<tbody>
<tr>
<td width="43"><strong>S.No</strong></td>
<td width="234"><strong>SOAP</strong></td>
<td width="230"><strong>REST</strong></td>
</tr>
<tr>
<td width="43">1.</td>
<td width="234">SOAP è l&#8217;acronimo di Simple Object Access Protocol.</td>
<td width="230">REST sta per Representational State Transfer.</td>
</tr>
<tr>
<td width="43">2.</td>
<td width="234">SOAP è un protocollo. Definisce alcuni standard che devono essere seguiti rigorosamente.</td>
<td width="230">REST è uno stile architettonico. Non definisce così tanti standard come SOAP.</td>
</tr>
<tr>
<td width="43">3.</td>
<td width="234">SOAP è altamente sicuro in quanto definisce la propria sicurezza.</td>
<td width="230">REST eredita le misure di sicurezza del protocollo di trasporto sottostante.</td>
</tr>
<tr>
<td width="43">4.</td>
<td width="234">SOAP ha un tempo di elaborazione più lento rispetto a REST</td>
<td width="230">UNA richiesta di messaggio REST viene elaborata più velocemente rispetto a SOAP.</td>
</tr>
<tr>
<td width="43">5.</td>
<td width="234">SOAP supporta solo il formato  dati XML.</td>
<td width="230">REST supporta i formati di dati come testo, XML, HTML, JSON, ecc</td>
</tr>
<tr>
<td width="43">6.</td>
<td width="234">SOAP non è molto facile da implementare</td>
<td width="230">REST è più facile da implementare</td>
</tr>
<tr>
<td width="43">7.</td>
<td width="234">SOAP richiede più larghezza di banda e le risorse.</td>
<td width="230">REST richiede meno larghezza di banda e le risorse.</td>
</tr>
<tr>
<td width="43">8.</td>
<td width="234">In java servizi SOAP Web sono implementate utilizzando JAX-WS API.</td>
<td width="230">In java servizi web RESTful sono implementati usando JAX-RS API.</td>
</tr>
<tr>
<td width="43">9.</td>
<td width="234">Non usa meccanismo di caching web.</td>
<td width="230">Utilizza il meccanismo di caching web.</td>
</tr>
<tr>
<td width="43">10.</td>
<td width="234">SOAP è comunemente usato in sistemi di pagamento, dei servizi finanziari e delle telecomunicazioni.</td>
<td width="230">REST è comunemente usato nei social media, web chat e servizi di telefonia mobile.</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<h3>SOAP vs REST?</h3>
<p>Se la sicurezza è una delle principali preoccupazioni e le risorse non sono limitate allora dovremmo usare i servizi web SOAP. Se ad esempio stiamo realizzando un&#8217;applicativo bancario, la scelta è consigliabile sia SOAP. Se invece la sicurezza non è rilevante, ad esempio se stiamo creando un applicativo che divulga informazioni Meteo tramite API, la scelta consigliata è sicuramente REST.<!--------------------------------------><!-- 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="3640700" data-boxid="1" data-visitedpage="https://simonetocco.it:443/category/programmazione/feed/" data-visittype="visit"></div>
<p>L'articolo <a href="https://simonetocco.it/differenze-soap-rest-web-service/">Differenze tra SOAP e REST per i Web Service</a> sembra essere il primo su <a href="https://simonetocco.it"></a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://simonetocco.it/differenze-soap-rest-web-service/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
