Da WIKI CoderDojo Firenze.
(Inserito codice base)
 
(Ricaricato ex novo)
Riga 1: Riga 1:
 
File index.html:
 
File index.html:
  
&lt;!DOCTYPE html&gt;<br/>&lt;html lang="it"&gt;<br/>&nbsp;&nbsp; &nbsp;&lt;head&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;meta charset="utf-8"&gt;
+
<pre>
 +
<!DOCTYPE html>
 +
<html lang="it">
 +
  <head>
 +
    <meta charset="utf-8">
  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;meta name="description" content=""&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;meta name="author" content="Roberto Naldi"&gt;
+
    <meta name="description" content="">
 +
    <meta name="author" content="Roberto Naldi">
  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;link rel="shortcut icon" href="1417151246_56297.ico" /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;link rel="stylesheet" type="text/css" href="jsframe01.css" /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;title&gt;Inizio&lt;/title&gt;<br/>&nbsp;&nbsp; &nbsp;&lt;/head&gt;
+
    <link rel="stylesheet" type="text/css" href="jsframe01.css" />
 +
   
 +
    <title>Inizio</title>
 +
  </head>
  
&nbsp;&nbsp; &nbsp;&lt;body onload="settaggiBase();"&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;header&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;h1&gt;CoderDojo Firenze&lt;/h1&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/header&gt;
+
  <body onload="settaggiBase();">
 +
    <div>
 +
      <header>
 +
        <h1>CoderDojo Firenze</h1>
 +
      </header>
  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;section id="sezStoria"&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;h1 id="titolo"&gt;&nbsp;&lt;/h1&gt;
+
      <section id="sezStoria">
 +
        <h1 id="titolo">&nbsp;</h1>
  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;p id="descrizione"&gt;&nbsp;&lt;/p&gt;
+
        <p id="descrizione">&nbsp;</p>
  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;section id="scelte"&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;p&gt;&lt;a href="#scelta1" id="scelta1" onclick="raggiungiLuogo(this);"&gt;nbsp;&lt;/a&gt;&lt;/p&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;p&gt;&lt;a href="#scelta2" id="scelta2" onclick="raggiungiLuogo(this);"&gt;nbsp;&lt;/a&gt;&lt;/p&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/section&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/section&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;section id="sezComandi"&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;h1&gt;Crea la tua storia!&lt;/h1&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;form&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;fieldset&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;legend&gt;Usa questi campi per aggiungere nuove situazioni&lt;/legend&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;label&gt;Un titolo per questa situazione:&lt;/label&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;input type="text" placeholder="Es. La Sala del Tesoro" id="nuovoTitolo" /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;label&gt;Descrivi cosa c’è e cosa succede:&lt;/label&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;textarea cols="60" rows="10" placeholder="Ti trovi in un grande..." id="nuovaDescri"&gt;&lt;/textarea&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div class="bordato"&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;p&gt;Se non è il finale, dovrai offrire almeno un’azione da compiere; sarebbero meglio due.&lt;/p&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;label&gt;Descrivi qui la prima scelta:&lt;/label&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;input type="text" placeholder="Esco dalla porta..." id="nuovaScelta1" /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;label&gt;Scrivi il nome della situazione in cui si andrà a finire:&lt;/label&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;input type="text" placeholder="es. ScalaRipida" id="nuovoLuogo1" class="corto" /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;hr /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;label&gt;Descrivi qui la seconda scelta:&lt;/label&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;input type="text" placeholder="Passo dalla finestra..." id="nuovaScelta2" class="corto" /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;label&gt;Scrivi il nome della situazione in cui si andrà a finire:&lt;/label&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;input type="text" placeholder="es. Terrazza" id="nuovoLuogo2" class="corto" /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;p class="centrato grassetto grande"&gt;Attenzione! Il primo nome deve essere “Inizio”!&lt;/p&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;label&gt;Il nome che il pc userà per ritrovare questa situazione:&lt;/label&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;input type="text" placeholder="es. StanzaBlu" id="nuovoNome" class="corto" /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;label&gt;Per caricare in memoria clicka qui:&lt;/label&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;input type="button" value="Registra" class="corto" onclick="registraLuogo();" /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/fieldset&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;label&gt;Quando hai finito clicka qui:&lt;/label&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;input type="button" value="Dammi lista" class="corto" onclick="listaDaCopiare();" /&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/form&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/section&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;section id="sezDaCopiare"&gt;&nbsp;&lt;/section&gt;
+
        <section id="scelte">
 
+
            <p><a href="#scelta1" id="scelta1" onclick="raggiungiLuogo(this);">nbsp;</a></p>
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;footer&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;p&gt;© Copyright by Coder Dojo Firenze&lt;/p&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/footer&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;/div&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;script type="text/javascript" src="fm01.js"&gt;&lt;/script&gt;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&lt;script type="text/javascript" src="settaggi.js"&gt;&lt;/script&gt;<br/>&nbsp;&nbsp; &nbsp;&lt;/body&gt;<br/>&lt;/html&gt;
+
            <p><a href="#scelta2" id="scelta2" onclick="raggiungiLuogo(this);">nbsp;</a></p>
 +
        </section>
 +
      </section>
 +
     
 +
      <section id="sezComandi">
 +
        <h1>Crea la tua storia!</h1>
 +
        <form>
 +
          <fieldset>
 +
            <legend>Usa questi campi per aggiungere nuove situazioni</legend>
 +
            <div>
 +
              <label>Un titolo per questa situazione:</label>
 +
              <input type="text" placeholder="Es. La Sala del Tesoro" id="nuovoTitolo" />
 +
            </div>
 +
            <div>
 +
              <label>Descrivi cosa c&rsquo;&egrave; e cosa succede:</label>
 +
              <textarea cols="60" rows="10" placeholder="Ti trovi in un grande..." id="nuovaDescri"></textarea>
 +
            </div>
 +
            <div class="bordato">
 +
              <p>Se non &egrave; il finale, dovrai offrire almeno un&rsquo;azione da compiere; sarebbero meglio due.</p>
 +
              <div>
 +
                <label>Descrivi qui la prima scelta:</label>
 +
                <input type="text" placeholder="Esco dalla porta..." id="nuovaScelta1" />
 +
              </div>
 +
              <div>
 +
                <label>Scrivi il nome della situazione in cui si andrà a finire:</label>
 +
                <input type="text" placeholder="es. ScalaRipida" id="nuovoLuogo1" class="corto" />
 +
              </div>
 +
              <hr />
 +
              <div>
 +
                <label>Descrivi qui la seconda scelta:</label>
 +
                <input type="text" placeholder="Passo dalla finestra..." id="nuovaScelta2" class="corto" />
 +
              </div>
 +
              <div>
 +
                <label>Scrivi il nome della situazione in cui si andrà a finire:</label>
 +
                <input type="text" placeholder="es. Terrazza" id="nuovoLuogo2" class="corto" />
 +
              </div>
 +
            </div>
 +
            <div>
 +
              <p class="centrato grassetto grande">Attenzione! Il primo nome deve essere &ldquo;Inizio&rdquo;!</p>
 +
              <label>Il nome che il pc userà per ritrovare questa situazione:</label>
 +
              <input type="text" placeholder="es. StanzaBlu" id="nuovoNome" class="corto" />
 +
            </div>
 +
            <div>
 +
              <label>Per caricare in memoria clicka qui:</label>
 +
              <input type="button" value="Registra" class="corto" onclick="registraLuogo();" />
 +
            </div>
 +
          </fieldset>
 +
          <div>
 +
            <label>Quando hai finito clicka qui:</label>
 +
            <input type="button" value="Dammi lista" class="corto" onclick="listaDaCopiare();" />
 +
          </div>
 +
        </form>
 +
      </section>
 +
     
 +
      <section id="sezDaCopiare">&nbsp;</section>
  
 +
      <footer>
 +
        <p>&copy; Copyright by Coder Dojo Firenze</p>
 +
      </footer>
 +
    </div>
 +
    <script type="text/javascript" src="fm01.js"></script>
 +
    <script type="text/javascript" src="settaggi.js"></script>
 +
  </body>
 +
</html>
  
 +
</pre>
  
 
File fm01.js
 
File fm01.js
  
/*--------------------------------------------------------------<br/>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; VARIABILI GLOBALI<br/>&nbsp;-------------------------------------------------------------*/
+
<pre>
 +
/*--------------------------------------------------------------
 +
*             VARIABILI GLOBALI
 +
-------------------------------------------------------------*/
  
/*<br/>&nbsp;* Contenitore di tutti i luoghi esistenti<br/>&nbsp;*/<br/>var luoghi = {};
+
/*
 +
* Contenitore di tutti i luoghi esistenti
 +
*/
 +
var luoghi = {};
  
/*<br/>&nbsp;* Contenitore per i luoghi che saranno creati<br/>&nbsp;*/<br/>var nuoviLuoghi = {};
+
/*
 +
* Contenitore per i luoghi che saranno creati
 +
*/
 +
var nuoviLuoghi = {};
  
/*<br/>&nbsp;* Connessioni 'permanenti' ad elementi HTML<br/>&nbsp;* Le seguenti variabili servono per ridurre le chiamate<br/>&nbsp;* a document.getElementById<br/>&nbsp;*/<br/>var htmlTitolo = document.getElementById("titolo");<br/>var htmlDescrizione = document.getElementById("descrizione");<br/>var htmlScelta1 = document.getElementById("scelta1");<br/>var htmlScelta2 = document.getElementById("scelta2");<br/>var htmlNuovoNome = document.getElementById("nuovoNome");<br/>var htmlNuovoTitolo = document.getElementById("nuovoTitolo");<br/>var htmlNuovaDescrizione = document.getElementById("nuovaDescri");<br/>var htmlNuovaScelta1Des = document.getElementById("nuovaScelta1");<br/>var htmlNuovaScelta1Nome = document.getElementById("nuovoLuogo1");<br/>var htmlNuovaScelta2Des = document.getElementById("nuovaScelta2");<br/>var htmlNuovaScelta2Nome = document.getElementById("nuovoLuogo2");
+
/*
 +
* Connessioni 'permanenti' ad elementi HTML
 +
* Le seguenti variabili servono per ridurre le chiamate  
 +
* a document.getElementById
 +
*/
 +
var htmlTitolo = document.getElementById("titolo");
 +
var htmlDescrizione = document.getElementById("descrizione");
 +
var htmlScelta1 = document.getElementById("scelta1");
 +
var htmlScelta2 = document.getElementById("scelta2");
 +
var htmlNuovoNome = document.getElementById("nuovoNome");
 +
var htmlNuovoTitolo = document.getElementById("nuovoTitolo");
 +
var htmlNuovaDescrizione = document.getElementById("nuovaDescri");
 +
var htmlNuovaScelta1Des = document.getElementById("nuovaScelta1");
 +
var htmlNuovaScelta1Nome = document.getElementById("nuovoLuogo1");
 +
var htmlNuovaScelta2Des = document.getElementById("nuovaScelta2");
 +
var htmlNuovaScelta2Nome = document.getElementById("nuovoLuogo2");
  
// la seguente variabile tiene traccia del luogo dove siamo<br/>// in questo momento<br/>var gloPosizione;
+
// la seguente variabile tiene traccia del luogo dove siamo
 +
// in questo momento
 +
var gloPosizione;
  
<br/>/*--------------------------------------------------------------<br/>&nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; Oggetto base che rappresenta un luogo<br/>&nbsp;*<br/>&nbsp;* Un 'luogo' rappresenta il nucleo della narrazione.<br/>&nbsp;-------------------------------------------------------------*/<br/>// Creo il costruttore di luogo<br/>function luogo(nome, titolo, descrizione)<br/>{<br/>&nbsp;&nbsp; &nbsp;// Proprieta'<br/>&nbsp;&nbsp; &nbsp;this.luogoNome = nome; // nome sara' usato per identificare il luogo<br/>&nbsp;&nbsp; &nbsp;this.luogoTitolo = titolo;<br/>&nbsp;&nbsp; &nbsp;this.luogoDescrizione = descrizione;<br/>&nbsp;&nbsp; &nbsp;this.alternative = {<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;vaiA1&nbsp;: { testo&nbsp;: "testo a schermo", posto&nbsp;: "PrimaScelta"},<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;vaiA2&nbsp;: { testo&nbsp;: "testo a schermo", posto&nbsp;: "SecondaScelta"}<br/>&nbsp;&nbsp; &nbsp;};<br/>}
 
  
 +
/*--------------------------------------------------------------
 +
*    Oggetto base che rappresenta un luogo
 +
*
 +
* Un 'luogo' rappresenta il nucleo della narrazione.
 +
-------------------------------------------------------------*/
 +
// Creo il costruttore di luogo
 +
function luogo(nome, titolo, descrizione)
 +
{
 +
    // Proprieta'
 +
    this.luogoNome = nome; // nome sara' usato per identificare il luogo
 +
    this.luogoTitolo = titolo;
 +
    this.luogoDescrizione = descrizione;
 +
    this.alternative = {
 +
        vaiA1 : { testo : "testo a schermo", posto : "PrimaScelta"},
 +
        vaiA2 : { testo : "testo a schermo", posto : "SecondaScelta"}
 +
    };
 +
}
  
  
/*--------------------------------------------------------------<br/>&nbsp;* settaggiBase() inizializza gli oggetti<br/>&nbsp;*&nbsp; &nbsp;<br/>&nbsp;-------------------------------------------------------------*/<br/>function settaggiBase() {<br/>&nbsp;&nbsp; &nbsp;elencaLuoghi();<br/>&nbsp;&nbsp; &nbsp;gloPosizione = luoghi["Inizio"];<br/>&nbsp;&nbsp; &nbsp;storiaASchermo();<br/>}
 
  
function raggiungiLuogo(partenza) {<br/>&nbsp;&nbsp; &nbsp;var tmpPosizione;<br/>&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;// Il valore di 'partenza' a questo punto è simile a:<br/>&nbsp;&nbsp; &nbsp;// file:///C:/...index.html#scelta1<br/>&nbsp;&nbsp; &nbsp;// A noi ci servono gli ultimi 7 caratteri (scelta1/2)<br/>&nbsp;&nbsp; &nbsp;// Quindi, 7imo carattere prima della fine, una string di 7 caratteri<br/>&nbsp;&nbsp; &nbsp;partenza = partenza.toString();<br/>&nbsp;&nbsp; &nbsp;partenza = partenza.substr(partenza.length - 7, 7);
+
/*--------------------------------------------------------------
 +
* settaggiBase() inizializza gli oggetti
 +
 +
-------------------------------------------------------------*/
 +
function settaggiBase() {
 +
    elencaLuoghi();
 +
    gloPosizione = luoghi["Inizio"];
 +
    storiaASchermo();
 +
}
  
&nbsp;&nbsp; &nbsp;switch(partenza) {<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;case "scelta1":<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;tmpPosizione = gloPosizione.alternative.vaiA1.posto;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;break;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;case "scelta2":<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;tmpPosizione = gloPosizione.alternative.vaiA2.posto;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;break;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;default:<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;alert("Errore nel programma!\nFunzione raggiungiLuogo\nIstruzione switch\nPartenza = " + partenza);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return;<br/>&nbsp;&nbsp; &nbsp;}<br/>&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;gloPosizione = luoghi[tmpPosizione];<br/>&nbsp;&nbsp; &nbsp;storiaASchermo();<br/>}
+
function raggiungiLuogo(partenza) {
 +
    var tmpPosizione;
 +
   
 +
    // Il valore di 'partenza' a questo punto è simile a:
 +
    // file:///C:/...index.html#scelta1
 +
    // A noi ci servono gli ultimi 7 caratteri (scelta1/2)
 +
    // Quindi, 7imo carattere prima della fine, una string di 7 caratteri
 +
    partenza = partenza.toString();
 +
    partenza = partenza.substr(partenza.length - 7, 7);
  
 +
    switch(partenza) {
 +
        case "scelta1":
 +
            tmpPosizione = gloPosizione.alternative.vaiA1.posto;
 +
            break;
 +
        case "scelta2":
 +
            tmpPosizione = gloPosizione.alternative.vaiA2.posto;
 +
            break;
 +
        default:
 +
            alert("Errore nel programma!\nFunzione raggiungiLuogo\nIstruzione switch\nPartenza = " + partenza);
 +
            return;
 +
    }
 +
   
 +
    gloPosizione = luoghi[tmpPosizione];
 +
    storiaASchermo();
 +
}
  
  
function storiaASchermo () {<br/>&nbsp;&nbsp; &nbsp;htmlTitolo.innerHTML = gloPosizione.luogoTitolo;<br/>&nbsp;&nbsp; &nbsp;htmlDescrizione.innerHTML = gloPosizione.luogoDescrizione;<br/>&nbsp;&nbsp; &nbsp;htmlScelta1.innerHTML = gloPosizione.alternative.vaiA1.testo;<br/>&nbsp;&nbsp; &nbsp;htmlScelta2.innerHTML = gloPosizione.alternative.vaiA2.testo;<br/>}
 
  
 +
function storiaASchermo () {
 +
    htmlTitolo.innerHTML = gloPosizione.luogoTitolo;
 +
    htmlDescrizione.innerHTML = gloPosizione.luogoDescrizione;
 +
    htmlScelta1.innerHTML = gloPosizione.alternative.vaiA1.testo;
 +
    htmlScelta2.innerHTML = gloPosizione.alternative.vaiA2.testo;
 +
}
  
  
function caricaLuoghi(name, tit, descr, a1_testo, a1_luogo, a2_testo, a2_luogo) {<br/>&nbsp;&nbsp; &nbsp;var tmpLuogo = new luogo;
 
  
&nbsp;&nbsp; &nbsp;tmpLuogo.luogoNome = name;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.luogoTitolo = tit;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.luogoDescrizione = descr;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.alternative.vaiA1.testo = a1_testo;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.alternative.vaiA1.posto = a1_luogo;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.alternative.vaiA2.testo = a2_testo;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.alternative.vaiA2.posto = a2_luogo;<br/>&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;luoghi[tmpLuogo.luogoNome] = tmpLuogo;<br/>}
+
function caricaLuoghi(name, tit, descr, a1_testo, a1_luogo, a2_testo, a2_luogo) {
 +
    var tmpLuogo = new luogo;
  
<br/>function registraLuogo() {<br/>&nbsp;&nbsp; &nbsp;var tmpLuogo = new luogo;
+
    tmpLuogo.luogoNome = name;
 +
    tmpLuogo.luogoTitolo = tit;
 +
    tmpLuogo.luogoDescrizione = descr;
 +
    tmpLuogo.alternative.vaiA1.testo = a1_testo;
 +
    tmpLuogo.alternative.vaiA1.posto = a1_luogo;
 +
    tmpLuogo.alternative.vaiA2.testo = a2_testo;
 +
    tmpLuogo.alternative.vaiA2.posto = a2_luogo;
 +
   
 +
    luoghi[tmpLuogo.luogoNome] = tmpLuogo;
 +
}
  
&nbsp;&nbsp; &nbsp;tmpLuogo.luogoNome = htmlNuovoNome.value;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.luogoTitolo = htmlNuovoTitolo.value;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.luogoDescrizione = htmlNuovaDescrizione.value;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.alternative.vaiA1.testo = htmlNuovaScelta1Des.value;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.alternative.vaiA1.posto = htmlNuovaScelta1Nome.value;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.alternative.vaiA2.testo = htmlNuovaScelta2Des.value;<br/>&nbsp;&nbsp; &nbsp;tmpLuogo.alternative.vaiA2.posto = htmlNuovaScelta2Nome.value;
 
  
&nbsp;&nbsp; &nbsp;nuoviLuoghi[tmpLuogo.luogoNome] = tmpLuogo;<br/>&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;htmlNuovoNome.value = "";<br/>&nbsp;&nbsp; &nbsp;htmlNuovoTitolo.value = "";<br/>&nbsp;&nbsp; &nbsp;htmlNuovaDescrizione.value = "";<br/>&nbsp;&nbsp; &nbsp;htmlNuovaScelta1Des.value = "";<br/>&nbsp;&nbsp; &nbsp;htmlNuovaScelta1Nome.value = "";<br/>&nbsp;&nbsp; &nbsp;htmlNuovaScelta2Des.value = "";<br/>&nbsp;&nbsp; &nbsp;htmlNuovaScelta2Nome.value = "";<br/>}
+
function registraLuogo() {
 +
    var tmpLuogo = new luogo;
  
<br/>function listaDaCopiare() {<br/>&nbsp;&nbsp; &nbsp;//alert("listaDaCopiare()");<br/>&nbsp;&nbsp; &nbsp;inizioListaDaCopiare();<br/>&nbsp;&nbsp; &nbsp;var rifSezDaCopiare = document.getElementById("sezDaCopiare");
+
    tmpLuogo.luogoNome = htmlNuovoNome.value;
 +
    tmpLuogo.luogoTitolo = htmlNuovoTitolo.value;
 +
    tmpLuogo.luogoDescrizione = htmlNuovaDescrizione.value;
 +
    tmpLuogo.alternative.vaiA1.testo = htmlNuovaScelta1Des.value;
 +
    tmpLuogo.alternative.vaiA1.posto = htmlNuovaScelta1Nome.value;
 +
    tmpLuogo.alternative.vaiA2.testo = htmlNuovaScelta2Des.value;
 +
    tmpLuogo.alternative.vaiA2.posto = htmlNuovaScelta2Nome.value;
  
&nbsp;&nbsp; &nbsp;for(var indice in nuoviLuoghi) {<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (nuoviLuoghi.hasOwnProperty(indice)) {<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var elemento = nuoviLuoghi[indice];<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var pNome = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var tnNome = document.createTextNode('var nome = "' + elemento.luogoNome + '";');<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;pNome.appendChild(tnNome);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var pTitolo = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var tnTitolo = document.createTextNode('var titolo = "' + elemento.luogoTitolo + '";');<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;pTitolo.appendChild(tnTitolo);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var pDescrizione = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var tnDescrizione = document.createTextNode('var descrizione = "' + elemento.luogoDescrizione + '";');<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;pDescrizione.appendChild(tnDescrizione);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var pVaiA1_testo = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var tnVaiA1_testo = document.createTextNode('var vaiA1_testo = "' + elemento.alternative.vaiA1.testo + '";');<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;pVaiA1_testo.appendChild(tnVaiA1_testo);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var pVaiA1_luogo = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var tnVaiA1_luogo = document.createTextNode('var vaiA1_luogo = "' + elemento.alternative.vaiA1.posto + '";');<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;pVaiA1_luogo.appendChild(tnVaiA1_luogo);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var pVaiA2_testo = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var tnVaiA2_testo = document.createTextNode('var vaiA2_testo = "' + elemento.alternative.vaiA2.testo + '";');<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;pVaiA2_testo.appendChild(tnVaiA2_testo);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var pVaiA2_luogo = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var tnVaiA2_luogo = document.createTextNode('var vaiA2_luogo = "' + elemento.alternative.vaiA2.posto + '";');<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;pVaiA2_luogo.appendChild(tnVaiA2_luogo);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var pCaricaLuoghi = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var tnCaricaLuoghi = document.createTextNode('caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);');<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;pCaricaLuoghi.appendChild(tnCaricaLuoghi);
+
    nuoviLuoghi[tmpLuogo.luogoNome] = tmpLuogo;
 +
   
 +
    htmlNuovoNome.value = "";
 +
    htmlNuovoTitolo.value = "";
 +
    htmlNuovaDescrizione.value = "";
 +
    htmlNuovaScelta1Des.value = "";
 +
    htmlNuovaScelta1Nome.value = "";
 +
    htmlNuovaScelta2Des.value = "";
 +
    htmlNuovaScelta2Nome.value = "";
 +
}
  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pNome);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pTitolo);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pDescrizione);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pVaiA1_testo);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pVaiA1_luogo);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pVaiA2_testo);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pVaiA2_luogo);<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pCaricaLuoghi);
 
  
&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br/>&nbsp;&nbsp; &nbsp;}<br/>&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;var pGraffaFinale = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;var tnGraffaFinale = document.createTextNode("}");<br/>&nbsp;&nbsp; &nbsp;pGraffaFinale.appendChild(tnGraffaFinale);<br/>&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pGraffaFinale);<br/>}
+
function listaDaCopiare() {
 +
    //alert("listaDaCopiare()");
 +
    inizioListaDaCopiare();
 +
    var rifSezDaCopiare = document.getElementById("sezDaCopiare");
  
<br/>function inizioListaDaCopiare () {<br/>&nbsp;&nbsp; &nbsp;// La prima parte della lista deve essere<br/>&nbsp;&nbsp; &nbsp;// function elencaLuoghi() {<br/>&nbsp;&nbsp; &nbsp;var pEleLuoghi = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;var tnEleLuoghi = document.createTextNode("function elencaLuoghi() {");<br/>&nbsp;&nbsp; &nbsp;pEleLuoghi.appendChild(tnEleLuoghi);
+
    for(var indice in nuoviLuoghi) {
 +
        if (nuoviLuoghi.hasOwnProperty(indice)) {
 +
            var elemento = nuoviLuoghi[indice];
 +
           
 +
            var pNome = document.createElement("p");
 +
            var tnNome = document.createTextNode('var nome = "' + elemento.luogoNome + '";');
 +
            pNome.appendChild(tnNome);
 +
           
 +
            var pTitolo = document.createElement("p");
 +
            var tnTitolo = document.createTextNode('var titolo = "' + elemento.luogoTitolo + '";');
 +
            pTitolo.appendChild(tnTitolo);
 +
           
 +
            var pDescrizione = document.createElement("p");
 +
            var tnDescrizione = document.createTextNode('var descrizione = "' + elemento.luogoDescrizione + '";');
 +
            pDescrizione.appendChild(tnDescrizione);
 +
           
 +
            var pVaiA1_testo = document.createElement("p");
 +
            var tnVaiA1_testo = document.createTextNode('var vaiA1_testo = "' + elemento.alternative.vaiA1.testo + '";');
 +
            pVaiA1_testo.appendChild(tnVaiA1_testo);
 +
           
 +
            var pVaiA1_luogo = document.createElement("p");
 +
            var tnVaiA1_luogo = document.createTextNode('var vaiA1_luogo = "' + elemento.alternative.vaiA1.posto + '";');
 +
            pVaiA1_luogo.appendChild(tnVaiA1_luogo);
 +
           
 +
            var pVaiA2_testo = document.createElement("p");
 +
            var tnVaiA2_testo = document.createTextNode('var vaiA2_testo = "' + elemento.alternative.vaiA2.testo + '";');
 +
            pVaiA2_testo.appendChild(tnVaiA2_testo);
 +
           
 +
            var pVaiA2_luogo = document.createElement("p");
 +
            var tnVaiA2_luogo = document.createTextNode('var vaiA2_luogo = "' + elemento.alternative.vaiA2.posto + '";');
 +
            pVaiA2_luogo.appendChild(tnVaiA2_luogo);
 +
           
 +
            var pCaricaLuoghi = document.createElement("p");
 +
            var tnCaricaLuoghi = document.createTextNode('caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);');
 +
            pCaricaLuoghi.appendChild(tnCaricaLuoghi);
  
&nbsp;&nbsp; &nbsp;// a questo punto si può decidere se costringere ad un inizio<br/>&nbsp;&nbsp; &nbsp;// standard oppure no.<br/>&nbsp;&nbsp; &nbsp;// Il primo luogo si deve chiamare "Inizio"<br/>&nbsp;&nbsp; &nbsp;// con la 'I' maiuscola<br/>&nbsp;&nbsp; &nbsp;<br/>&nbsp;&nbsp; &nbsp;/*var pNome = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;var tnNome = document.createTextNode('var nome = "Inizio";');<br/>&nbsp;&nbsp; &nbsp;pNome.appendChild(tnNome);
+
            rifSezDaCopiare.appendChild(pNome);
 +
            rifSezDaCopiare.appendChild(pTitolo);
 +
            rifSezDaCopiare.appendChild(pDescrizione);
 +
            rifSezDaCopiare.appendChild(pVaiA1_testo);
 +
            rifSezDaCopiare.appendChild(pVaiA1_luogo);
 +
            rifSezDaCopiare.appendChild(pVaiA2_testo);
 +
            rifSezDaCopiare.appendChild(pVaiA2_luogo);
 +
            rifSezDaCopiare.appendChild(pCaricaLuoghi);
  
&nbsp;&nbsp; &nbsp;var pTitolo = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;var tnTitolo = document.createTextNode('var titolo = "Il gioco dei bivi";');<br/>&nbsp;&nbsp; &nbsp;pTitolo.appendChild(tnTitolo);
+
        }
 +
    }
 +
   
 +
    var pGraffaFinale = document.createElement("p");
 +
    var tnGraffaFinale = document.createTextNode("}");
 +
    pGraffaFinale.appendChild(tnGraffaFinale);
 +
    rifSezDaCopiare.appendChild(pGraffaFinale);
 +
}
  
&nbsp;&nbsp; &nbsp;var pDescrizione = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;var tnDescrizione = document.createTextNode('var descrizione = "Stai per iniziare un’avventura scritta da qualcuno della tua età!";');<br/>&nbsp;&nbsp; &nbsp;pDescrizione.appendChild(tnDescrizione);
 
  
&nbsp;&nbsp; &nbsp;var pVaiA1_testo = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;var tnVaiA1_testo = document.createTextNode('var vaiA1_testo = "Inizia";');<br/>&nbsp;&nbsp; &nbsp;pVaiA1_testo.appendChild(tnVaiA1_testo);
+
function inizioListaDaCopiare () {
 +
    // La prima parte della lista deve essere
 +
    // function elencaLuoghi() {
 +
    var pEleLuoghi = document.createElement("p");
 +
    var tnEleLuoghi = document.createTextNode("function elencaLuoghi() {");
 +
    pEleLuoghi.appendChild(tnEleLuoghi);
  
&nbsp;&nbsp; &nbsp;var pVaiA1_luogo = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;var tnVaiA1_luogo = document.createTextNode('var vaiA1_luogo = "InizioGioco";');<br/>&nbsp;&nbsp; &nbsp;pVaiA1_luogo.appendChild(tnVaiA1_luogo);
+
    // a questo punto si può decidere se costringere ad un inizio
 +
    // standard oppure no.
 +
    // Il primo luogo si deve chiamare "Inizio"
 +
    // con la 'I' maiuscola
 +
   
 +
    /*var pNome = document.createElement("p");
 +
    var tnNome = document.createTextNode('var nome = "Inizio";');
 +
    pNome.appendChild(tnNome);
  
&nbsp;&nbsp; &nbsp;var pVaiA2_testo = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;var tnVaiA2_testo = document.createTextNode('var vaiA2_testo = "Rinuncia";');<br/>&nbsp;&nbsp; &nbsp;pVaiA2_testo.appendChild(tnVaiA2_testo);
+
    var pTitolo = document.createElement("p");
 +
    var tnTitolo = document.createTextNode('var titolo = "Il gioco dei bivi";');
 +
    pTitolo.appendChild(tnTitolo);
  
&nbsp;&nbsp; &nbsp;var pVaiA2_luogo = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;var tnVaiA2_luogo = document.createTextNode('var vaiA2_luogo = "FineGioco";');<br/>&nbsp;&nbsp; &nbsp;pVaiA2_luogo.appendChild(tnVaiA2_luogo);
+
    var pDescrizione = document.createElement("p");
 +
    var tnDescrizione = document.createTextNode('var descrizione = "Stai per iniziare un’avventura scritta da qualcuno della tua età!";');
 +
    pDescrizione.appendChild(tnDescrizione);
  
&nbsp;&nbsp; &nbsp;var pCaricaLuoghi = document.createElement("p");<br/>&nbsp;&nbsp; &nbsp;var tnCaricaLuoghi = document.createTextNode('caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);');<br/>&nbsp;&nbsp; &nbsp;pCaricaLuoghi.appendChild(tnCaricaLuoghi);*/
+
    var pVaiA1_testo = document.createElement("p");
 +
    var tnVaiA1_testo = document.createTextNode('var vaiA1_testo = "Inizia";');
 +
    pVaiA1_testo.appendChild(tnVaiA1_testo);
  
&nbsp;&nbsp; &nbsp;var rifSezDaCopiare = document.getElementById("sezDaCopiare");<br/>&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pEleLuoghi);<br/>&nbsp;&nbsp; &nbsp;/*rifSezDaCopiare.appendChild(pNome);<br/>&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pTitolo);<br/>&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pDescrizione);<br/>&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pVaiA1_testo);<br/>&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pVaiA1_luogo);<br/>&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pVaiA2_testo);<br/>&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pVaiA2_luogo);<br/>&nbsp;&nbsp; &nbsp;rifSezDaCopiare.appendChild(pCaricaLuoghi);*/<br/>}
+
    var pVaiA1_luogo = document.createElement("p");
 +
    var tnVaiA1_luogo = document.createTextNode('var vaiA1_luogo = "InizioGioco";');
 +
    pVaiA1_luogo.appendChild(tnVaiA1_luogo);
  
 +
    var pVaiA2_testo = document.createElement("p");
 +
    var tnVaiA2_testo = document.createTextNode('var vaiA2_testo = "Rinuncia";');
 +
    pVaiA2_testo.appendChild(tnVaiA2_testo);
  
 +
    var pVaiA2_luogo = document.createElement("p");
 +
    var tnVaiA2_luogo = document.createTextNode('var vaiA2_luogo = "FineGioco";');
 +
    pVaiA2_luogo.appendChild(tnVaiA2_luogo);
  
<br/>// Funzione per conoscere le dimensioni di un oggetto JavaScript<br/>function dimOggetto(oggetto) {<br/>&nbsp;&nbsp; &nbsp;var contatore = 0;<br/>&nbsp;<br/>&nbsp;&nbsp; &nbsp;if (typeof oggetto == "object") {<br/>&nbsp;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if (Object.keys) {<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; contatore = Object.keys(oggetto).length;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} else if (window._) {<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; contatore = _.keys(oggetto).length;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} else if (window.$) {<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; contatore = $.map(oggetto, function() { return 1; }).length;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} else {<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (var key in oggetto) if (oggetto.hasOwnProperty(key)) contatore++;<br/>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br/>&nbsp;&nbsp;&nbsp; &nbsp;<br/>&nbsp;}<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; &nbsp;return contatore;<br/>}
+
    var pCaricaLuoghi = document.createElement("p");
 +
    var tnCaricaLuoghi = document.createTextNode('caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);');
 +
    pCaricaLuoghi.appendChild(tnCaricaLuoghi);*/
  
 +
    var rifSezDaCopiare = document.getElementById("sezDaCopiare");
 +
    rifSezDaCopiare.appendChild(pEleLuoghi);
 +
    /*rifSezDaCopiare.appendChild(pNome);
 +
    rifSezDaCopiare.appendChild(pTitolo);
 +
    rifSezDaCopiare.appendChild(pDescrizione);
 +
    rifSezDaCopiare.appendChild(pVaiA1_testo);
 +
    rifSezDaCopiare.appendChild(pVaiA1_luogo);
 +
    rifSezDaCopiare.appendChild(pVaiA2_testo);
 +
    rifSezDaCopiare.appendChild(pVaiA2_luogo);
 +
    rifSezDaCopiare.appendChild(pCaricaLuoghi);*/
 +
}
  
  
File settaggi.js:
 
  
function elencaLuoghi() {<br/>&nbsp;&nbsp; &nbsp;var nome = "Inizio";<br/>&nbsp;&nbsp; &nbsp;var titolo = "Il gioco dei bivi";<br/>&nbsp;&nbsp; &nbsp;var descrizione = "Stai per iniziare un’avventura scritta da qualcuno della tua età!";<br/>&nbsp;&nbsp; &nbsp;var vaiA1_testo = "Inizia";<br/>&nbsp;&nbsp; &nbsp;var vaiA1_luogo = "InizioGioco";<br/>&nbsp;&nbsp; &nbsp;var vaiA2_testo = "Rinuncia";<br/>&nbsp;&nbsp; &nbsp;var vaiA2_luogo = "FineGioco";
 
  
&nbsp;&nbsp; &nbsp;caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);
+
// Funzione per conoscere le dimensioni di un oggetto JavaScript
 +
function dimOggetto(oggetto) {
 +
    var contatore = 0;
 +
 +
    if (typeof oggetto == "object") {
 +
 +
        if (Object.keys) {
 +
            contatore = Object.keys(oggetto).length;
 +
        } else if (window._) {
 +
            contatore = _.keys(oggetto).length;
 +
        } else if (window.$) {
 +
            contatore = $.map(oggetto, function() { return 1; }).length;
 +
        } else {
 +
            for (var key in oggetto) if (oggetto.hasOwnProperty(key)) contatore++;
 +
        }
 +
   
 +
}
 +
 +
    return contatore;
 +
}
  
&nbsp;&nbsp; &nbsp;nome = "InizioGioco";<br/>&nbsp;&nbsp; &nbsp;titolo = "Il Castello Maledetto";<br/>&nbsp;&nbsp; &nbsp;descrizione = "Ti trovi fuori da un castello dall’aspetto tetro.&lt;br /&gt;Davanti a te c’è un ponte levatoio del tutto allo scoperto.&lt;br /&gt;Sotto di te un fossato pieno d'acqua.&lt;br /&gt;Cosa fai?";<br/>&nbsp;&nbsp; &nbsp;vaiA1_testo = "Attraverso il ponte levatoio";<br/>&nbsp;&nbsp; &nbsp;vaiA1_luogo = "PuntoMorto";<br/>&nbsp;&nbsp; &nbsp;vaiA2_testo = "Mi tuffo nel fossato";<br/>&nbsp;&nbsp; &nbsp;vaiA2_luogo = "PuntoMorto";
+
</pre>
  
&nbsp;&nbsp; &nbsp;caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);
 
  
&nbsp;&nbsp; &nbsp;nome = "FineGioco";<br/>&nbsp;&nbsp; &nbsp;titolo = "Il Castello Maledetto";<br/>&nbsp;&nbsp; &nbsp;descrizione = "Peccato! Speravo tanto tu ci volessi giocare...&lt;br /&gt;Ora cosa farai?";<br/>&nbsp;&nbsp; &nbsp;vaiA1_testo = "Spengo il computer e vado a nanna.";<br/>&nbsp;&nbsp; &nbsp;vaiA1_luogo = "PuntoMorto";<br/>&nbsp;&nbsp; &nbsp;vaiA2_testo = "Imparo qualcos’altro.";<br/>&nbsp;&nbsp; &nbsp;vaiA2_luogo = "PuntoMorto";
+
File settaggi.js
 +
 
 +
 
 +
<pre
 +
function elencaLuoghi() {
 +
    var nome = "Inizio";
 +
    var titolo = "Il gioco dei bivi";
 +
    var descrizione = "Stai per iniziare un’avventura scritta da qualcuno della tua età!";
 +
    var vaiA1_testo = "Inizia";
 +
    var vaiA1_luogo = "InizioGioco";
 +
    var vaiA2_testo = "Rinuncia";
 +
    var vaiA2_luogo = "FineGioco";
 +
 
 +
    caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);
 +
 
 +
    nome = "InizioGioco";
 +
    titolo = "Il Castello Maledetto";
 +
    descrizione = "Ti trovi fuori da un castello dall’aspetto tetro.<br />Davanti a te c’è un ponte levatoio del tutto allo scoperto.<br />Sotto di te un fossato pieno d'acqua.<br />Cosa fai?";
 +
    vaiA1_testo = "Attraverso il ponte levatoio";
 +
    vaiA1_luogo = "PuntoMorto";
 +
    vaiA2_testo = "Mi tuffo nel fossato";
 +
    vaiA2_luogo = "PuntoMorto";
 +
 
 +
    caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);
 +
 
 +
    nome = "FineGioco";
 +
    titolo = "Il Castello Maledetto";
 +
    descrizione = "Peccato! Speravo tanto tu ci volessi giocare...<br />Ora cosa farai?";
 +
    vaiA1_testo = "Spengo il computer e vado a nanna.";
 +
    vaiA1_luogo = "PuntoMorto";
 +
    vaiA2_testo = "Imparo qualcos’altro.";
 +
    vaiA2_luogo = "PuntoMorto";
 +
 
 +
    caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);
 +
}
 +
 
 +
</pre>
  
&nbsp;&nbsp; &nbsp;caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);<br/>}
 
  
 
File jsframe01.css:
 
File jsframe01.css:
  
body {<br/>&nbsp;&nbsp; &nbsp;background-color: #E6E6E6;<br/>}
+
<pre>
 +
 
 +
body {
 +
  background-color: #E6E6E6;
 +
}
 +
 
 +
header {
 +
  background-color: teal;
 +
  color: yellow;
 +
  margin-bottom: 3em;
 +
}
 +
 
 +
header h1 {
 +
  margin-left: 0;
 +
  text-align: center;
 +
}
  
header {<br/>&nbsp;&nbsp; &nbsp;background-color: teal;<br/>&nbsp;&nbsp; &nbsp;color: yellow;<br/>&nbsp;&nbsp; &nbsp;margin-bottom: 3em;<br/>}
+
footer {
 +
  background-color: blue;
 +
  color: yellow;
 +
  margin-top: 2em;
 +
}
  
header h1 {<br/>&nbsp;&nbsp; &nbsp;margin-left: 0;<br/>&nbsp;&nbsp; &nbsp;text-align: center;<br/>}
+
footer p {
 +
  margin-left: 0;
 +
  text-align: center;
 +
}
  
footer {<br/>&nbsp;&nbsp; &nbsp;background-color: blue;<br/>&nbsp;&nbsp; &nbsp;color: yellow;<br/>&nbsp;&nbsp; &nbsp;margin-top: 2em;<br/>}
+
fieldset > div {
 +
  margin-top: 1em;
 +
}
  
footer p {<br/>&nbsp;&nbsp; &nbsp;margin-left: 0;<br/>&nbsp;&nbsp; &nbsp;text-align: center;<br/>}
+
fieldset > div > div {
 +
  margin-top: 0.5em;
 +
}
  
fieldset > div {<br/>&nbsp;&nbsp; &nbsp;margin-top: 1em;<br/>}
+
hr {
 +
  margin: 1em 30%;
 +
}
  
fieldset > div > div {<br/>&nbsp;&nbsp; &nbsp;margin-top: 0.5em;<br/>}
+
input {
 +
  width: 25em;
 +
}
  
hr {<br/>&nbsp;&nbsp; &nbsp;margin: 1em 30%;<br/>}
+
input.corto {
 +
  width: auto;
 +
}
  
input {<br/>&nbsp;&nbsp; &nbsp;width: 25em;<br/>}
+
#sezStoria {
 +
  border-style: ridge;
 +
  margin: auto 20%;
 +
  padding: 1em;
 +
}
  
input.corto {<br/>&nbsp;&nbsp; &nbsp;width: auto;<br/>}
+
#sezComandi {
 +
  border-style: ridge;
 +
  margin: auto 20%;
 +
  padding: 1em;
 +
}
  
#sezStoria {<br/>&nbsp;&nbsp; &nbsp;border-style: ridge;<br/>&nbsp;&nbsp; &nbsp;margin: auto 20%;<br/>&nbsp;&nbsp; &nbsp;padding: 1em;<br/>}
+
#sezDaCopiare {
 +
  margin-top: 2em;
 +
  background-color: #FFFFCC;
 +
}
  
#sezComandi {<br/>&nbsp;&nbsp; &nbsp;border-style: ridge;<br/>&nbsp;&nbsp; &nbsp;margin: auto 20%;<br/>&nbsp;&nbsp; &nbsp;padding: 1em;<br/>}
+
#sezDaCopiare p{
 +
  margin: 0 auto;
 +
}
  
#sezDaCopiare {<br/>&nbsp;&nbsp; &nbsp;margin-top: 2em;<br/>&nbsp;&nbsp; &nbsp;background-color: #FFFFCC;<br/>}
+
.centrato {
 +
  margin-left: 0;
 +
  text-align: center;
 +
}
  
#sezDaCopiare p{<br/>&nbsp;&nbsp; &nbsp;margin: 0 auto;<br/>}
+
.bordato {
 +
  border-style: ridge;
 +
  padding: 0.5em;
 +
}
  
.centrato {<br/>&nbsp;&nbsp; &nbsp;margin-left: 0;<br/>&nbsp;&nbsp; &nbsp;text-align: center;<br/>}
+
.grassetto {
 +
  font-weight: bold;
 +
}
  
.bordato {<br/>&nbsp;&nbsp; &nbsp;border-style: ridge;<br/>&nbsp;&nbsp; &nbsp;padding: 0.5em;<br/>}
+
.grande {
 +
  font-size: large;
 +
}
  
.grassetto {<br/>&nbsp;&nbsp; &nbsp;font-weight: bold;<br/>}
 
  
.grande {<br/>&nbsp;&nbsp; &nbsp;font-size: large;<br/>}
+
</pre>
[[Category:Javascript|Category:Javascript]]
+

Versione delle 17:53, 30 nov 2014

File index.html:

<!DOCTYPE html>
<html lang="it">
  <head>
    <meta charset="utf-8">

    <meta name="description" content="">
    <meta name="author" content="Roberto Naldi">

    <link rel="stylesheet" type="text/css" href="jsframe01.css" />
    
    <title>Inizio</title>
  </head>

  <body onload="settaggiBase();">
    <div>
      <header>
        <h1>CoderDojo Firenze</h1>
      </header>

      <section id="sezStoria">
        <h1 id="titolo"> </h1>

        <p id="descrizione"> </p>

        <section id="scelte">
            <p><a href="#scelta1" id="scelta1" onclick="raggiungiLuogo(this);">nbsp;</a></p>
            <p><a href="#scelta2" id="scelta2" onclick="raggiungiLuogo(this);">nbsp;</a></p>
        </section>
      </section>
      
      <section id="sezComandi">
        <h1>Crea la tua storia!</h1>
        <form>
          <fieldset>
            <legend>Usa questi campi per aggiungere nuove situazioni</legend>
            <div>
              <label>Un titolo per questa situazione:</label>
              <input type="text" placeholder="Es. La Sala del Tesoro" id="nuovoTitolo" />
            </div>
            <div>
              <label>Descrivi cosa c’è e cosa succede:</label>
              <textarea cols="60" rows="10" placeholder="Ti trovi in un grande..." id="nuovaDescri"></textarea>
            </div>
            <div class="bordato">
              <p>Se non è il finale, dovrai offrire almeno un’azione da compiere; sarebbero meglio due.</p>
              <div>
                <label>Descrivi qui la prima scelta:</label>
                <input type="text" placeholder="Esco dalla porta..." id="nuovaScelta1" />
              </div>
              <div>
                <label>Scrivi il nome della situazione in cui si andrà a finire:</label>
                <input type="text" placeholder="es. ScalaRipida" id="nuovoLuogo1" class="corto" />
              </div>
              <hr />
              <div>
                <label>Descrivi qui la seconda scelta:</label>
                <input type="text" placeholder="Passo dalla finestra..." id="nuovaScelta2" class="corto" />
              </div>
              <div>
                <label>Scrivi il nome della situazione in cui si andrà a finire:</label>
                <input type="text" placeholder="es. Terrazza" id="nuovoLuogo2" class="corto" />
              </div>
            </div>
            <div>
              <p class="centrato grassetto grande">Attenzione! Il primo nome deve essere “Inizio”!</p>
              <label>Il nome che il pc userà per ritrovare questa situazione:</label>
              <input type="text" placeholder="es. StanzaBlu" id="nuovoNome" class="corto" />
            </div>
            <div>
              <label>Per caricare in memoria clicka qui:</label>
              <input type="button" value="Registra" class="corto" onclick="registraLuogo();" />
            </div>
          </fieldset>
          <div>
            <label>Quando hai finito clicka qui:</label>
            <input type="button" value="Dammi lista" class="corto" onclick="listaDaCopiare();" />
          </div>
        </form>
      </section>
      
      <section id="sezDaCopiare"> </section>

      <footer>
        <p>© Copyright by Coder Dojo Firenze</p>
      </footer>
    </div>
    <script type="text/javascript" src="fm01.js"></script>
    <script type="text/javascript" src="settaggi.js"></script>
  </body>
</html>

File fm01.js

/*--------------------------------------------------------------
 *             VARIABILI GLOBALI
 -------------------------------------------------------------*/

/*
 * Contenitore di tutti i luoghi esistenti
 */
var luoghi = {};

/*
 * Contenitore per i luoghi che saranno creati
 */
var nuoviLuoghi = {};

/*
 * Connessioni 'permanenti' ad elementi HTML
 * Le seguenti variabili servono per ridurre le chiamate 
 * a document.getElementById
 */
var htmlTitolo = document.getElementById("titolo");
var htmlDescrizione = document.getElementById("descrizione");
var htmlScelta1 = document.getElementById("scelta1");
var htmlScelta2 = document.getElementById("scelta2");
var htmlNuovoNome = document.getElementById("nuovoNome");
var htmlNuovoTitolo = document.getElementById("nuovoTitolo");
var htmlNuovaDescrizione = document.getElementById("nuovaDescri");
var htmlNuovaScelta1Des = document.getElementById("nuovaScelta1");
var htmlNuovaScelta1Nome = document.getElementById("nuovoLuogo1");
var htmlNuovaScelta2Des = document.getElementById("nuovaScelta2");
var htmlNuovaScelta2Nome = document.getElementById("nuovoLuogo2");

// la seguente variabile tiene traccia del luogo dove siamo
// in questo momento
var gloPosizione;


/*--------------------------------------------------------------
 *     Oggetto base che rappresenta un luogo
 * 
 * Un 'luogo' rappresenta il nucleo della narrazione. 
 -------------------------------------------------------------*/
// Creo il costruttore di luogo
function luogo(nome, titolo, descrizione)
{
    // Proprieta'
    this.luogoNome = nome; // nome sara' usato per identificare il luogo
    this.luogoTitolo = titolo;
    this.luogoDescrizione = descrizione;
    this.alternative = {
        vaiA1 : { testo : "testo a schermo", posto : "PrimaScelta"},
        vaiA2 : { testo : "testo a schermo", posto : "SecondaScelta"}
    };
}



/*--------------------------------------------------------------
 * settaggiBase() inizializza gli oggetti
 *   
 -------------------------------------------------------------*/
function settaggiBase() {
    elencaLuoghi();
    gloPosizione = luoghi["Inizio"];
    storiaASchermo();
}

function raggiungiLuogo(partenza) {
    var tmpPosizione;
    
    // Il valore di 'partenza' a questo punto è simile a:
    // file:///C:/...index.html#scelta1
    // A noi ci servono gli ultimi 7 caratteri (scelta1/2)
    // Quindi, 7imo carattere prima della fine, una string di 7 caratteri
    partenza = partenza.toString();
    partenza = partenza.substr(partenza.length - 7, 7);

    switch(partenza) {
        case "scelta1":
            tmpPosizione = gloPosizione.alternative.vaiA1.posto;
            break;
        case "scelta2": 
            tmpPosizione = gloPosizione.alternative.vaiA2.posto;
            break;
        default:
            alert("Errore nel programma!\nFunzione raggiungiLuogo\nIstruzione switch\nPartenza = " + partenza);
            return;
    }
    
    gloPosizione = luoghi[tmpPosizione];
    storiaASchermo();
}



function storiaASchermo () {
    htmlTitolo.innerHTML = gloPosizione.luogoTitolo;
    htmlDescrizione.innerHTML = gloPosizione.luogoDescrizione;
    htmlScelta1.innerHTML = gloPosizione.alternative.vaiA1.testo;
    htmlScelta2.innerHTML = gloPosizione.alternative.vaiA2.testo;
}



function caricaLuoghi(name, tit, descr, a1_testo, a1_luogo, a2_testo, a2_luogo) {
    var tmpLuogo = new luogo;

    tmpLuogo.luogoNome = name;
    tmpLuogo.luogoTitolo = tit;
    tmpLuogo.luogoDescrizione = descr;
    tmpLuogo.alternative.vaiA1.testo = a1_testo;
    tmpLuogo.alternative.vaiA1.posto = a1_luogo;
    tmpLuogo.alternative.vaiA2.testo = a2_testo;
    tmpLuogo.alternative.vaiA2.posto = a2_luogo;
    
    luoghi[tmpLuogo.luogoNome] = tmpLuogo;
}


function registraLuogo() {
    var tmpLuogo = new luogo;

    tmpLuogo.luogoNome = htmlNuovoNome.value;
    tmpLuogo.luogoTitolo = htmlNuovoTitolo.value;
    tmpLuogo.luogoDescrizione = htmlNuovaDescrizione.value;
    tmpLuogo.alternative.vaiA1.testo = htmlNuovaScelta1Des.value;
    tmpLuogo.alternative.vaiA1.posto = htmlNuovaScelta1Nome.value;
    tmpLuogo.alternative.vaiA2.testo = htmlNuovaScelta2Des.value;
    tmpLuogo.alternative.vaiA2.posto = htmlNuovaScelta2Nome.value;

    nuoviLuoghi[tmpLuogo.luogoNome] = tmpLuogo;
    
    htmlNuovoNome.value = "";
    htmlNuovoTitolo.value = "";
    htmlNuovaDescrizione.value = "";
    htmlNuovaScelta1Des.value = "";
    htmlNuovaScelta1Nome.value = "";
    htmlNuovaScelta2Des.value = "";
    htmlNuovaScelta2Nome.value = "";
}


function listaDaCopiare() {
    //alert("listaDaCopiare()");
    inizioListaDaCopiare();
    var rifSezDaCopiare = document.getElementById("sezDaCopiare");

    for(var indice in nuoviLuoghi) {
        if (nuoviLuoghi.hasOwnProperty(indice)) {
            var elemento = nuoviLuoghi[indice];
            
            var pNome = document.createElement("p");
            var tnNome = document.createTextNode('var nome = "' + elemento.luogoNome + '";');
            pNome.appendChild(tnNome);
            
            var pTitolo = document.createElement("p");
            var tnTitolo = document.createTextNode('var titolo = "' + elemento.luogoTitolo + '";');
            pTitolo.appendChild(tnTitolo);
            
            var pDescrizione = document.createElement("p");
            var tnDescrizione = document.createTextNode('var descrizione = "' + elemento.luogoDescrizione + '";');
            pDescrizione.appendChild(tnDescrizione);
            
            var pVaiA1_testo = document.createElement("p");
            var tnVaiA1_testo = document.createTextNode('var vaiA1_testo = "' + elemento.alternative.vaiA1.testo + '";');
            pVaiA1_testo.appendChild(tnVaiA1_testo);
            
            var pVaiA1_luogo = document.createElement("p");
            var tnVaiA1_luogo = document.createTextNode('var vaiA1_luogo = "' + elemento.alternative.vaiA1.posto + '";');
            pVaiA1_luogo.appendChild(tnVaiA1_luogo);
            
            var pVaiA2_testo = document.createElement("p");
            var tnVaiA2_testo = document.createTextNode('var vaiA2_testo = "' + elemento.alternative.vaiA2.testo + '";');
            pVaiA2_testo.appendChild(tnVaiA2_testo);
            
            var pVaiA2_luogo = document.createElement("p");
            var tnVaiA2_luogo = document.createTextNode('var vaiA2_luogo = "' + elemento.alternative.vaiA2.posto + '";');
            pVaiA2_luogo.appendChild(tnVaiA2_luogo);
            
            var pCaricaLuoghi = document.createElement("p");
            var tnCaricaLuoghi = document.createTextNode('caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);');
            pCaricaLuoghi.appendChild(tnCaricaLuoghi);

            rifSezDaCopiare.appendChild(pNome);
            rifSezDaCopiare.appendChild(pTitolo);
            rifSezDaCopiare.appendChild(pDescrizione);
            rifSezDaCopiare.appendChild(pVaiA1_testo);
            rifSezDaCopiare.appendChild(pVaiA1_luogo);
            rifSezDaCopiare.appendChild(pVaiA2_testo);
            rifSezDaCopiare.appendChild(pVaiA2_luogo);
            rifSezDaCopiare.appendChild(pCaricaLuoghi);

        }
    }
    
    var pGraffaFinale = document.createElement("p");
    var tnGraffaFinale = document.createTextNode("}");
    pGraffaFinale.appendChild(tnGraffaFinale);
    rifSezDaCopiare.appendChild(pGraffaFinale);
}


function inizioListaDaCopiare () {
    // La prima parte della lista deve essere
    // function elencaLuoghi() {
    var pEleLuoghi = document.createElement("p");
    var tnEleLuoghi = document.createTextNode("function elencaLuoghi() {");
    pEleLuoghi.appendChild(tnEleLuoghi);

    // a questo punto si può decidere se costringere ad un inizio
    // standard oppure no.
    // Il primo luogo si deve chiamare "Inizio"
    // con la 'I' maiuscola
    
    /*var pNome = document.createElement("p");
    var tnNome = document.createTextNode('var nome = "Inizio";');
    pNome.appendChild(tnNome);

    var pTitolo = document.createElement("p");
    var tnTitolo = document.createTextNode('var titolo = "Il gioco dei bivi";');
    pTitolo.appendChild(tnTitolo);

    var pDescrizione = document.createElement("p");
    var tnDescrizione = document.createTextNode('var descrizione = "Stai per iniziare un’avventura scritta da qualcuno della tua età!";');
    pDescrizione.appendChild(tnDescrizione);

    var pVaiA1_testo = document.createElement("p");
    var tnVaiA1_testo = document.createTextNode('var vaiA1_testo = "Inizia";');
    pVaiA1_testo.appendChild(tnVaiA1_testo);

    var pVaiA1_luogo = document.createElement("p");
    var tnVaiA1_luogo = document.createTextNode('var vaiA1_luogo = "InizioGioco";');
    pVaiA1_luogo.appendChild(tnVaiA1_luogo);

    var pVaiA2_testo = document.createElement("p");
    var tnVaiA2_testo = document.createTextNode('var vaiA2_testo = "Rinuncia";');
    pVaiA2_testo.appendChild(tnVaiA2_testo);

    var pVaiA2_luogo = document.createElement("p");
    var tnVaiA2_luogo = document.createTextNode('var vaiA2_luogo = "FineGioco";');
    pVaiA2_luogo.appendChild(tnVaiA2_luogo);

    var pCaricaLuoghi = document.createElement("p");
    var tnCaricaLuoghi = document.createTextNode('caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);');
    pCaricaLuoghi.appendChild(tnCaricaLuoghi);*/

    var rifSezDaCopiare = document.getElementById("sezDaCopiare");
    rifSezDaCopiare.appendChild(pEleLuoghi);
    /*rifSezDaCopiare.appendChild(pNome);
    rifSezDaCopiare.appendChild(pTitolo);
    rifSezDaCopiare.appendChild(pDescrizione);
    rifSezDaCopiare.appendChild(pVaiA1_testo);
    rifSezDaCopiare.appendChild(pVaiA1_luogo);
    rifSezDaCopiare.appendChild(pVaiA2_testo);
    rifSezDaCopiare.appendChild(pVaiA2_luogo);
    rifSezDaCopiare.appendChild(pCaricaLuoghi);*/
}




// Funzione per conoscere le dimensioni di un oggetto JavaScript
function dimOggetto(oggetto) {
    var contatore = 0;
 
    if (typeof oggetto == "object") {
 
        if (Object.keys) {
             contatore = Object.keys(oggetto).length;
        } else if (window._) {
             contatore = _.keys(oggetto).length;
        } else if (window.$) {
             contatore = $.map(oggetto, function() { return 1; }).length;
        } else {
             for (var key in oggetto) if (oggetto.hasOwnProperty(key)) contatore++;
        }
     
 }
 
     return contatore;
}


File settaggi.js


Davanti a te c’è un ponte levatoio del tutto allo scoperto.
Sotto di te un fossato pieno d'acqua.
Cosa fai?";
   vaiA1_testo = "Attraverso il ponte levatoio";
   vaiA1_luogo = "PuntoMorto";
   vaiA2_testo = "Mi tuffo nel fossato";
   vaiA2_luogo = "PuntoMorto";
   caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);
   nome = "FineGioco";
   titolo = "Il Castello Maledetto";
   descrizione = "Peccato! Speravo tanto tu ci volessi giocare...
Ora cosa farai?"; vaiA1_testo = "Spengo il computer e vado a nanna."; vaiA1_luogo = "PuntoMorto"; vaiA2_testo = "Imparo qualcos’altro."; vaiA2_luogo = "PuntoMorto";
   caricaLuoghi(nome, titolo, descrizione, vaiA1_testo, vaiA1_luogo, vaiA2_testo, vaiA2_luogo);

}

</pre>


File jsframe01.css:


body {
   background-color: #E6E6E6;
}

header {
   background-color: teal;
   color: yellow;
   margin-bottom: 3em;
}

header h1 {
   margin-left: 0;
   text-align: center;
}

footer {
   background-color: blue;
   color: yellow;
   margin-top: 2em;
}

footer p {
   margin-left: 0;
   text-align: center;
}

fieldset > div {
   margin-top: 1em;
}

fieldset > div > div {
   margin-top: 0.5em;
}

hr {
   margin: 1em 30%;
}

input {
   width: 25em;
}

input.corto {
   width: auto;
}

#sezStoria {
   border-style: ridge;
   margin: auto 20%;
   padding: 1em;
}

#sezComandi {
   border-style: ridge;
   margin: auto 20%;
   padding: 1em;
}

#sezDaCopiare {
   margin-top: 2em;
   background-color: #FFFFCC;
}

#sezDaCopiare p{
   margin: 0 auto;
}

.centrato {
   margin-left: 0;
   text-align: center;
}

.bordato {
   border-style: ridge;
   padding: 0.5em;
}

.grassetto {
   font-weight: bold;
}

.grande {
   font-size: large;
}