Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Primo semplice script (perchč non vā)? Livello mooolto basic

    ciao a tutti,
    ho iniziato da un paio di giorni a studiare un pō di JS.
    Nel libro che utilizzo spiegava come fare una sorta di battaglia navale ad una sola riga (quindi si trattava di indovinare 3 navi da un quadrato).
    Il codice (funzionante) č questo:

    var location1 = 3;
    var location2 = 4;
    var location3 = 5;
    var guess;
    var hits = 0;
    var guesses = 0;
    var isSunk = false;
    while (isSunk == false) {
    guess = prompt("Ready, aim, fire! (enter a number from 0-6):");
    if (guess < 0 || guess > 6) {
    alert("Please enter a valid cell number!");
    } else {
    guesses = guesses + 1;
    if (guess == location1 || guess == location2 || guess == location3) {
    alert("HIT!");
    hits = hits + 1;
    if (hits == 3) {
    isSunk = true;
    alert("You sank my battleship!");
    }
    } else {
    alert("MISS");
    }
    }
    }
    var stats = "You took " + guesses + " guesses to sink the battleship, " +
    "which means your shooting accuracy was " + (3/guesses);
    alert(stats);

    per esercitarmi ho pensato di semplificarlo agganciando direttamente il while al numero di affondamenti senza la variabile sunk
    ..ma naturalmente non funziona. Il mio interesse č di capire solo il motivo a fini didattici/curiositā. Comprendo che c'č proprio un problema di impostazione. Scusate la banalitā del problema

    Ecco la mia pensata

    var location1 = 3;
    var location2 = 4;
    var location3 = 5;
    var guess;
    var hits = 0;
    var guesses = 0;

    while (hits < 4) {
    guess = prompt ("dig num 0-6");
    guesses = guesses + 1;
    if (guess == location1 || guess == location2 || guess == location3) {alert ("preso");
    hits = hits + 1;
    }
    }
    else {alert("sbagliato");}
    var stat = "colpi: " + guesses;
    alert (stat);

    Grazia a tutti
    F.

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    codice:
    while (hits < 4) {
        guess = prompt ("dig num 0-6");
        guesses = guesses + 1;
        if (guess == location1 || guess == location2 || guess == location3) {
            alert ("preso");
            hits = hits + 1;
        }
    }
    else {
        alert("sbagliato");
    }
    Indentando bene il codice si vede che l'else non č legato all'if ma al while...
    Quel codice sarebbe:

    1. Finché hits č minore di 4:

      1. Chiedi un numero
      2. Se l'utente ha beccato uno di quei numeri:

        • Diglielo
        • Aumenta la variabile hits


    2. Altrimenti:

      • Digli che ha sbagliato




    Anche in italiano non ha molto senso Finché...Altrimenti

    PS Quando ho degli errori di logica mi traduco sempre tutto in italiano per trovarli

    PPS Quando posti del codice nel forum usa i tag "[ code][/ code]", "[ html][/ html]", "[ php][/ php]" (senza spazi )
    No

  3. #3
    Grazie Tamper,
    in effetti ho tolto l'else e ho messo l'alert di seguito e almeno il prompt mi si apre.

    [CODE]
    var location1 = 3;
    var location2 = 4;
    var location3 = 5;
    var guess;
    var hits = 0;
    var guesses = 0;

    while (hits < 4) {
    guess = prompt ("dig num 0-6");
    guesses = guesses + 1;
    if (guess == location1 || guess == location2 || guess == location3) {alert ("preso");
    hits = hits + 1;
    }
    }
    alert("sbagliato");
    var stat = "colpi: " + guesses;
    alert (stat);
    [/ CODE]

    Ha molti problemi ancora (il risultato č diverso da quello del libro) ma

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    residenza
    Voltati
    Messaggi
    913
    ma
    ???

    Comunque l'else e l'alert("sbagliato") dovevi solo spostarli subito dopo l'if

    PS Hai scritto [/code] con uno spazio di troppo
    No

  5. #5
    ..non so perchč mi ha trocato il messaggio..dicevo ma (appunto) ha altri problemi secondari rispetto a quello che hai rilevato giustamente tu e che serviva a me..dopo provo ad applicare gli altri tuoi consigli (compreso il tag code .
    Grazie mille

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.