<!--

ar_words = new Array ("LIBELLE","PARKUHR","MEERSCHWEINCHEN","SCHNEEMANN",
                     "REGENSCHIRM","MARKTPLATZ","GYMNASIUM","VOLLMOND",
                     "MOTORBOOT","GEWITTER","HAUSAUFGABEN","FRUEHSTUECK",
                     "SONNENSCHIRM","FAHRRAD","BUTTERBLUME","ESKIMO",
                     "MAULWURF","PIZZA","MANDARINE","SCHULHEFT");

var choice="";
var syn="";
var errs=0;
var started = false;

function showWord() {
  syn="";
  errs=0;
  n = Math.round(Math.random() * (ar_words.length-1));
  choice = ar_words[n];
  for (i=0;i<choice.length;i++)
    syn = syn + "?";
    
  document.galgi.term.value = syn;
  document.img1.src = "images/games/hangstart.gif";
  document.img1.width=113;
  document.img1.height=128;
  started = true;
}

function change(letter) {
  temp=syn.substr(0,n) + letter + syn.substring(n+1);
}
  
function teste(letter) {
  if (!started) {
    alert("Erst mal das Spiel starten!");
    return;
  }
  if (syn.indexOf(letter) != -1) {
    alert("Doppelt hält auch nicht besser!");
    return;
  }
  if (choice.indexOf(letter) == -1) {
    errs++;
    eval("document.img1.src = 'images/games/hang" + errs + ".gif'");
    document.img1.width=160;
    document.img1.height=128;
    if (errs == 12) {
      alert("Sorry, man");
      document.galgi.term.value = choice;
      started = false;
    }
  } else {
    t1 = choice;
    n = t1.indexOf(letter);
    nn = n;
    while (n != -1) {
      t2=syn.substr(0,nn) + letter + syn.substring(nn+1);
      syn = t2;
      document.galgi.term.value = syn;
      t1 = choice.substring(nn+1);
      n = t1.indexOf(letter);
      nn = nn + n + 1;
    }
    if (syn.indexOf("?") == -1) {
      alert("Geschafft!");
      started = false;
    }
  }
}

player1 = new Array (0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0);

player2 = new Array (0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0,
                     0,0,0,0,0,0,0,0,0,0);

sh7 = new Array(4,0,0,0,0);
sh6 = new Array(3,0,0,0);
sh5 = new Array(3,0,0,0);
sh4 = new Array(2,0,0);
sh3 = new Array(2,0,0);
sh2 = new Array(2,0,0);
csh7 = new Array(4,0,0,0,0);
csh6 = new Array(3,0,0,0);
csh5 = new Array(3,0,0,0);
csh4 = new Array(2,0,0);
csh3 = new Array(2,0,0);
csh2 = new Array(2,0,0);

var firsttime=true;
var shipStarted = false;
var down=0;
var cdown=0;

function gameOver() {
  if (down < 10 && cdown < 10)
    return false;
  if (down == 10)
    alert("Hurra, du steigst auf zum 2. Admiral!");
  else
    alert("Pech gehabt, deine Schiffe sind alle versenkt");
  shipStarted = false;
  return true;
}

function versenkt(no) {
  eval("document.img" + no + ".src = 'images/games/ship_red.jpg'");
  eval("document.img" + no + ".width = 20");
  eval("document.img" + no + ".height = 20");
  return;
}

function cversenkt(no) {
  eval("document.cimg" + no + ".src = 'images/games/ship_red.jpg'");
  eval("document.cimg" + no + ".width = 20");
  eval("document.cimg" + no + ".height = 20");
  return;
}

function shot(no) {
  if(!shipStarted) {
    alert("Die eigenen Schiffe müssen erst gesetzt werden");
    return;
  }
  switch (player1[no-1]) {
    case -1:
      shotC();
      return;
    case 0:
      eval("document.img" + no + ".src = 'images/games/ship_lblue.jpg'");
      eval("document.img" + no + ".width = 20");
      eval("document.img" + no + ".height = 20");
      shotC();
      return;
    case 1:
      player1[no-1] = -1;
      alert("U-Boot  -  Versenkt!");
      versenkt(no);
      down++;
      if (gameOver())
        return;
      shotC();
      return;
    case 2:
    case 3:
    case 4:
      temp = eval("sh" + player1[no-1] + "[0]");
      if (temp > 1) {
         eval("sh" + player1[no-1] + "[0] = " + (temp-1))
         alert("Torpedo");
         break;
      }
      alert("Torpedo - Versenkt");
      versenkt(eval("sh" + player1[no-1] + "[1]") + 1);
      versenkt(eval("sh" + player1[no-1] + "[2]") + 1);
      player1[no-1] = -1;
      down++;
      if (gameOver())
        return;
      shotC();
      return;
    case 5:
    case 6:
      temp = eval("sh" + player1[no-1] + "[0]");
      if (temp > 1) {
         eval("sh" + player1[no-1] + "[0] = " + (temp-1))
         alert("Kreuzer");
         break;
      }
      alert("Kreuzer - Versenkt");
    //  n = eval("sh" + player1[no-1] + "[1]");
    //  versenkt(n+1);
      for (i=1;i<=3;i++)
        versenkt(eval("sh" + player1[no-1] + "[" + i + "]") + 1);
      player1[no-1] = -1;
      down++;
      if (gameOver())
        return;
      shotC();
      return;
    case 7:
      temp = eval("sh" + player1[no-1] + "[0]");
      if (temp > 1) {
         eval("sh" + player1[no-1] + "[0] = " + (temp-1))
         alert("Schlachtschiff");
         break;
      }
      alert("Schlachtschiff - Versenkt");
      for (i=1;i<=4;i++)
        versenkt(eval("sh" + player1[no-1] + "[" + i + "]") + 1);
      player1[no-1] = -1;
      down++;
      if (gameOver())
        return;
      shotC();
      return;
  }
  player1[no-1] = -1;
  eval("document.img" + no + ".src = 'images/games/ship_orange.jpg'");
  eval("document.img" + no + ".width = 20");
  eval("document.img" + no + ".height = 20");
  shotC();
}

function shotC() {
  do {
    no = Math.round(Math.random()*99)+1;
  } while (player2[no-1] < 0)
  switch (player2[no-1]) {
    case 0:
      player2[no-1] = -2;
      eval("document.cimg" + no + ".src = 'images/games/ship_lblue.jpg'");
      eval("document.cimg" + no + ".width = 20");
      eval("document.cimg" + no + ".height = 20");     
      return;
    case 1:
      player2[no-1] = -1;
      alert("Dein U-Boot wurde versenkt!");
      cversenkt(no);
      cdown++;
      if (gameOver())
        return;
      return;
    case 2:
    case 3:
    case 4:
      temp = eval("csh" + player2[no-1] + "[0]");
      if (temp > 1) {
         eval("csh" + player2[no-1] + "[0] = " + (temp-1))
         alert("Dein Torpedo ist getroffen!");
         break;
      }
      alert("Dein Torpedo wurde versenkt!");
      cversenkt(eval("csh" + player2[no-1] + "[1]"));
      cversenkt(eval("csh" + player2[no-1] + "[2]"));
      player2[no-1] = -1;
      cdown++;
      if (gameOver())
        return;
      return;
    case 5:
    case 6:
      temp = eval("csh" + player2[no-1] + "[0]");
      if (temp > 1) {
         eval("csh" + player2[no-1] + "[0] = " + (temp-1))
         alert("Dein Kreuzer ist getroffen!");
         break;
      }
      alert("Dein Kreuzer wurde versenkt!");
      for (i=1;i<=3;i++)
        cversenkt(eval("csh" + player2[no-1] + "[" + i + "]"));
      player2[no-1] = -1;
      cdown++;
      if (gameOver())
        return;
      return;
    case 7:
      temp = eval("csh" + player2[no-1] + "[0]");
      if (temp > 1) {
         eval("csh" + player2[no-1] + "[0] = " + (temp-1))
         alert("Dein Schlachtschiff ist getroffen!");
         break;
      }
      alert("Dein Schlachtschiff wurde versenkt!");
      for (i=1;i<=4;i++)
        cversenkt(eval("csh" + player2[no-1] + "[" + i + "]"));
      player2[no-1] = -1;
      cdown++;
      if (gameOver())
        return;
      return;
  }
  player2[no-1] = -1;
  eval("document.cimg" + no + ".src = 'images/games/ship_orange.jpg'");
  eval("document.cimg" + no + ".width = 20");
  eval("document.cimg" + no + ".height = 20");
}

var step=0;
var stepx=0;
var sval=7;
var ucnt=0;

function reset() {
  for (i=1;i<=100;i++) { 
    player1[i-1]=0;
    player2[i-1]=0;
    eval("document.img" + i + ".src = 'images/games/ship_mblue.jpg'");
    eval("document.img" + i + ".width = 20");
    eval("document.img" + i + ".height = 20");
    eval("document.cimg" + i + ".src = 'images/games/ship_mblue.jpg'");
    eval("document.cimg" + i + ".width = 20");
    eval("document.cimg" + i + ".height = 20");
  }
  down=0;
  cdown=0;
  stepx=0;
  sval=7;
  ucnt=0;
  sh7[0]=4;csh7[0]=4;
  sh6[0]=3;csh6[0]=3;sh5[0]=3;csh5[0]=3;
  sh4[0]=2;csh4[0]=2;sh3[0]=2;csh3[0]=2;sh2[0]=2;csh2[0]=2;
}

function setAll() {
  if (firsttime) 
    firsttime = false;
  else
    reset();
  step = 4;
  setShip(4,7);
  setShip(3,6);
  setShip(3,5);
  setShip(2,4);
  setShip(2,3);
  setShip(2,2);
  for (j=0;j<4;j++)
    setShip(1,1);
  alert("Bitte Schlachtschiff positionieren");
}

function setShip(anz,val) { 
  n = Math.round(Math.random());
  if (n == 0) { //waagerecht
    n = (Math.round(Math.random()*(10-anz))+1) + (Math.round(Math.random()*9)*10);
    for (i=-1;i<anz-1;i++) {
      if (player1[n+i] != 0) {
        setShip(anz,val);
        return;
      }
    }
    for (i=-1;i<anz-1;i++) { 
      player1[n+i] = val;
      if ( anz > 1)
        eval("sh" + val + "[i+2]="+ (n+i));
    } 
  } else { // senkrecht
    n = (Math.round(Math.random()*9)+1) + ((Math.round(Math.random()*(10-anz))+1)*10);
    for (i=-1;i<(anz-1)*10;i+=10) {
      if (player1[n+i] != 0) {      
        setShip(anz,val);
        return;
      }
    } 
    k=1;
    for (i=-1;i<(anz-1)*10;i+=10) {
      player1[n+i] = val;
      if ( anz > 1)
        eval("sh" + val + "[k]="+ (n+i));
      k++;
    } 
  }
}

function checkShip(no) {
  if (stepx==0)
    return(true);
  if (no%10 != 0 && player2[no] == sval)
    return(true);
  if (no%10 != 1 && player2[no-2] == sval)
    return(true);
  if (no > 10 && player2[no-11] == sval)
    return(true);
  if (no <= 90 && player2[no+9] == sval)
    return(true);
  alert("So wird das aber kein Schiff!");
  return(false);
}

function myShip(no) {
  if (step == 0) 
    return;
  if (player2[no-1] != 0) {
    alert("Feld schon gesetzt");
    return;
  }
  if (!checkShip(no))
    return;
  player2[no-1] = sval;
  if ( step > 1)
    eval("csh" + sval + "[stepx+1]=" + no);
  eval("document.cimg" + no + ".src = 'images/games/ship_dblue.jpg'");
  eval("document.cimg" + no + ".width = 20");
  eval("document.cimg" + no + ".height = 20");
  stepx++;
  if (stepx == step) {
    if (sval==7 || sval==5 || sval==2) step--;
    if (sval>=2) sval--;   
    stepx=0;
    if (ucnt==4) step=0;
    switch(step) {
      case 3:
        alert("Bitte Kreuzer positionieren");
        break;
      case 2:
        alert("Bitte Torpedo positionieren");
        break;
      case 1:
        alert("Bitte U-Boot positionieren");
        ucnt++;
        break;
      case 0:
        alert("Dann mal los, Du bist am Zug!");
        shipStarted = true;
        break;
    }
  }
}

//-->
