Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: JavaScript: Ökön Metsästyspeli :)

SysRq868 [25.09.2004 10:25:09]

#

Tässäpä tälläinen "Ökön" metsästyspeli, käyttää kuka tahtoo. Enpä tiedä, onko tälle mitään käyttöä.

Parempaa nimeä en keksinyt. Vaihtakaa itse tarvitsemanne nimi paikalle.

Pelaaminen ainakin IE:llä on aika ärsyttävää, kun JavaScript -ikkunat kilkattavat koko ajan. Repikää kaiuttimet irti pelaamisen ajaksi.

Ohjeet tulee mukana. Toivottavasti addiktiivinen. ;)

<body onLoad="aloitapeli()">
<center>
<h3>Metsästä Ökköä</h3><p>
<form name=board>
<table border=0 cellpadding=2 align=center>
<tr><td>Luola numero: <input size=4 name=cavenum></td></tr>
<tr><td>
<input type=checkbox name=lepakkolaatikko value=0> Kuulet lepakoita.</td></tr>
<tr><td>
<input type=checkbox name=reikalaatikko value=0> Tunnet kuopan.</td></tr>
<tr><td>
<input type=checkbox name=okkolaatikko value=0> Haistat ökön.</td></tr>
<tr><td align=center>Tunnelit vievät:</td></table>
<table cellpadding=3 border=0><tr><td><input size=2 name=laatikko1><br>
<input type=button name=button1 value="Mene" OnClick="mene(1)"><br>
<input type=button name=button1 value="Ammu" OnClick="ammu(1)"></td>
<td><input size=2 name=laatikko2><br>
<input type=button name=button2 value="Mene" OnClick="mene(2)"><br>
<input type=button name=button1 value="Ammu" OnClick="ammu(2)"></td>
<td><input size=2 name=laatikko3><br>
<input type=button name=button3 value="Mene" OnClick="mene(3)"><br>
<input type=button name=button1 value="Ammu" OnClick="ammu(3)"></td>
</tr></table></center><hr>
<h2>Ohjeet</h2><ul>
<li>Olet metsästämässä harvinaista Ökköä täysin pimeässä.
Joka luola on yhdistetty toisiin kolmella tunnelilla. Osa hauskuutta
pelissä on keksiä, miten luolat ovat yhdistetty. Joka luolassa
sinulle näytetään, kuuletko lepakoita, tunnetko pudotuksen, tai
haistatko Ökön katsomalla rasteja luolanumeron alapuolella.

<li>Jos tunnet pudotuksen, vieressäsi on luola, missä on kuoppa. Jos satut menemään tuohon luolaan, putoat kuoppaan, ja kuolet. Ököllä on jaloissaan lonkeroita, joiden avulla se ei putoa kuoppaan.
<li>Jos kuulet lepakoita, vieressäsi on luola, jossa on jättiläislepakko. Jos satut menemään tuohon luolaan, lepakko nappaa sinut, ja vie sinut johonkin muuhun luolaan. Ökkö on liian painava, lepakko ei jaksa kantaa sitä.
<li>Jos haistat Ökön, vieressäsi on luola, jossa Ökkö sillä hetkellä on. Jos menet luolaan, missä Ökkö on, se joko pakenee toiseen luolaan, tai syö sinut.

<li>Joka vuorolla voit päättää menetkö vai ammutko nuolen johonkin tunneliin. Näin voit tehdä painamalla "Mene" tai "Ammu" -painikkeita luolan numeron alapuolella.
Jos nuoli menee tunneliin jossa Ökkö on, se joko väistää pakenemalla toiseen tunneliin, tai sitten se ei huomaa nuoltasi, ja siihen osuu.
<li>Lyhyesti ideana on tappaa Ökkö ilman että se tappaa sinut ensin. Onnea!
</ul>
</p>
<script language="JavaScript">
// Alustetaan paikat
var paikka = 1;
var okko;
var lepakko1;
var lepakko2;
var reika;
var seed = .5;
// Funktiot
function srand() { // Satunnaisluku ajasta
  today = new Date();
  seed = Math.abs(Math.sin(today.getTime()));
}
function rand() { // Seed-lasku
  seed = seed + .3;
  if (seed > 1.0) seed = seed - 1.0;
  return seed;
}
function ihmepaikka() { // Laitetaan objekteja satunnaisesti
  return Math.floor(rand() * 20.0) + 1;
}
function teeKartta() { // Riveistä karttoja
  for (var i=1; i<=20; i++)
  this[i] = new teeRivi();
  return this;
}
function teeRivi() { // Tehdään rivejä
  for (var i=1; i<=3; i++)
  this[i]="";
  return this;
}
function aloitapeli() { // Tehdään kartta
  kartta = new teeKartta();
  srand();
  kartta[1][1]  = 2; kartta[1][2]  = 5; kartta[1][3]  = 8;
  kartta[2][1]  = 1; kartta[2][2]  = 3; kartta[2][3]  = 10;
  kartta[3][1]  = 2; kartta[3][2]  = 4; kartta[3][3]  = 12;
  kartta[4][1]  = 3; kartta[4][2]  = 5; kartta[4][3]  = 14;
  kartta[5][1]  = 1; kartta[5][2]  = 4; kartta[5][3]  = 6;
  kartta[6][1]  = 5; kartta[6][2]  = 7; kartta[6][3]  = 15;
  kartta[7][1]  = 6; kartta[7][2]  = 8; kartta[7][3]  = 17;
  kartta[8][1]  = 1; kartta[8][2]  = 7; kartta[8][3]  = 9;
  kartta[9][1]  = 8; kartta[9][2]  = 10; kartta[9][3]  = 18;
  kartta[10][1] = 2; kartta[10][2] = 9; kartta[10][3] = 11;
  kartta[11][1] = 10; kartta[11][2] = 12; kartta[11][3] = 19;
  kartta[12][1] = 3; kartta[12][2] = 11; kartta[12][3] = 13;
  kartta[13][1] = 12; kartta[13][2] = 14; kartta[13][3] = 20;
  kartta[14][1] = 4; kartta[14][2] = 13; kartta[14][3] = 15;
  kartta[15][1] = 6; kartta[15][2] = 14; kartta[15][3] = 16;
  kartta[16][1] = 15; kartta[16][2] = 17; kartta[16][3] = 20;
  kartta[17][1] = 7; kartta[17][2] = 16; kartta[17][3] = 8;
  kartta[18][1] = 9; kartta[18][2] = 17; kartta[18][3] = 19;
  kartta[19][1] = 11; kartta[19][2] = 18; kartta[19][3] = 20;
  kartta[20][1] = 13; kartta[20][2] = 16; kartta[20][3] = 19;
  paikka = 1; lepakko1 = 1;
  while (paikka == lepakko1 || paikka == lepakko2 || paikka == okko || paikka == reika
         || lepakko1 == reika || lepakko2 == reika || okko == reika) {
    // Ihme juttu
    lepakko1 = ihmepaikka();
    lepakko2 = ihmepaikka();
    okko = ihmepaikka();
    reika = ihmepaikka();
    paikka = ihmepaikka();
  }
  // Katotaan, josko pelaajalle olisi näistä hyötyä
  alert("lepakko1="+lepakko1+" lepakko2="+lepakko2+" okko="+okko+" reika="+reika+" paikka="+paikka);
  piirra();
}
function tormaa(a) { // Törmäillään
  r = Math.floor(rand() * 4) + 1;
  if (r < 4) {
    if (a == 1) { //Oho
      alert("Törmäsit ökköön!");
    }
    else //Tai muuten...
    {
      alert("Ökkö väisti nuolesi!");
    }
  }
  if (r == 1) {
    okko = kartta[okko][1];
  }
  else if (r == 2) {
    okko = kartta[okko][2];
  }
  else if (r == 3) {
    okko = kartta[okko][3];
  }
}
function piirra() { // Laatikkoja
  document.forms[0].cavenum.value = paikka;
  document.forms[0].laatikko1.value = kartta[paikka][1];
  document.forms[0].laatikko2.value = kartta[paikka][2];
  document.forms[0].laatikko3.value = kartta[paikka][3];
  document.forms[0].lepakkolaatikko.checked = "";
  document.forms[0].reikalaatikko.checked = "";
  document.forms[0].okkolaatikko.checked = "";
  for (var i=1; i<=3; i++) {
    var p = kartta[paikka][i];
    if (lepakko1 == p || lepakko2 == p) {
      document.forms[0].lepakkolaatikko.checked = 1;
    }
    if (reika == p) {
      document.forms[0].reikalaatikko.checked = 1;
    }
    if (okko == p) {
      document.forms[0].okkolaatikko.checked = 1;
    }
  }
  if (paikka == lepakko1) { //Oi voi
    alert("Jättiläislepakko kaappasi sinut!");
    paikka = ihmepaikka();
    piirra();
    lepakko1 = paikka;
    while (paikka == lepakko1 || paikka == okko || lepakko1 == reika) {
      lepakko1 = ihmepaikka();
    }
  }
  else if (paikka == lepakko2) { //Oi voi
    alert("Jättiläislepakko kaappasi sinut!");
    paikka = ihmepaikka();
    piirra();
    lepakko2 = paikka;
    while (paikka == lepakko2 || paikka == okko || lepakko2 == reika) {
      lepakko2 = ihmepaikka();
    }
  }
  else if (paikka == reika) { //Voi ei
    alert("AAAAAAAAAaaaaaaahhh.... putosit kuoppaan!");
    aloitapeli();
  }
  else if (paikka == okko) {
    tormaa(1);
    if (paikka == okko) {
      alert("Ökkö söi sinut!"); // Nami nam
      initgame();
    }
  }
}
function mene(n) { // Mennään toiseen luolaan
  paikka = kartta[paikka][n];
  piirra();
}
function ammu(n) { // Öhh.. tarviiko kommentoida?
  var arrow = kartta[paikka][n];
  alert("ökkö="+okko+" nuoli="+arrow); // Tilannejännitystä
  if (arrow == okko) {
    tormaa(2);
    if (arrow == okko) {
      alert("Tapoit ökön!"); // JEE
      aloitapeli();
    }
  } else {
    alert("Nuoli ei osunut mihinkään.");
  }
  piirra();
}
</script>

ajv [27.09.2004 20:26:46]

#

Tämä kiva :)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta