maanantai 2. marraskuuta 2015

Hirsipuu-peli

HIRSIPUU-PELI

Esiversio hirsipuu-pelistä (javascript)
Kokeile osoitteessa:
http://myy.haaga-helia.fi/~a1400159/EKhirsipuu/harj3_ek.html

Koodi:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Kotila, Harjotus 3. </title>

<script>
var peli_status = true;
var sana = "";
var kirjain = "";
var arvatut = "";
var vaara_arvaus = 0;

var sanat = new Array("MJÖLKTÖLK", "NAKUPELLE", "MORKKIS", "LUUMU", "PAPUKAIJA", "KILPIKONNA");

function valitseKirjain(aakkonen){

// onko peli käynnissä?
if (peli_status == false){
return;}


if (arvatut.indexOf(aakkonen) != -1)
{
return;
}

//lisätään arvattujen kirjainten joukkoon uusi kirjain
arvatut += aakkonen;

//lisätään näytölle arvattu kirjain
document.peli.arvatutKirjaimet.value = arvatut;


if (sana.indexOf(aakkonen) != -1){
// oikein arvattu
oikein = 0;
oikea_kirjain = kirjain;

//löytyykö kirjain sanasta
// jos löytyy indexOf palauttaa monesko kirjain on alusta alkaen
// jos ei löydy niin arvo on -1
//aakkonen on etsittävä kirjain
//oikein on monenestako kirjaimesta eteenpäin etsitään
while (sana.indexOf(aakkonen, oikein) != -1){
//yksi kirjain löytyi, merkitään monesko kirjain
oikein = sana.indexOf(aakkonen, oikein);
//etsitään seuraavista kirjaimista onko lisää oikeaa kirjainta
loppu = oikein + 1;
//alkuosa on jo tutkittu
alku_osa = oikea_kirjain.substring(0, oikein);
//loppuosa on löydetystä kirjaimesta eteenpäin koko sanan pituuteen asti
loppu_osa = oikea_kirjain.substring(loppu, oikea_kirjain.length);
oikea_kirjain = alku_osa + aakkonen + loppu_osa;
oikein = loppu;
}


kirjain = oikea_kirjain;
document.peli.naytaSana.value = kirjain;

// jos sanassa ei ole enää risuaitaa on kaikki kirjaimet löydetty
if (kirjain.indexOf("#") == -1)
{
// oikea sana löytyi
alert("Voitit!");
peli_status = false;
}
}
else
{
// väärä kirjain arvattu
vaara_arvaus += 1;
eval('document.hirsipuu.src=\"hirsipuu/hirsipuu" + vaara_arvaus + ".gif\"');

// väärien vastausten lukumäärä on täynnä
if (vaara_arvaus == 11)
{
// häviö
alert("Hävisit! Peli loppui.");
peli_status = false;
}
}
}

function uusiPeli(){
// kutsutaam funktiota, joka arpoo sanan
valitseSana();
//tyhjennetään arvatut kirjaimet kenttä näytölläja scriptitssä
document.peli.arvatutKirjaimet.value = "";
arvatut = "";
vaara_arvaus = 0;
//aloituskuva
document.hirsipuu.src="\hirsipuu/hirsipuu.gif";
}

function valitseSana(){
peli_status = true;
luku = Math.round(Math.random() * (sanat.length - 1));
sana = sanat[luku];
piilotettu_kirjain = piilotaSana(sana);
document.peli.naytaSana.value = piilotettu_kirjain;
kirjain = piilotettu_kirjain;
}

function piilotaSana(s) {
piilotus = "";
sanan_pituus = s.length;
for (i = 0; i < sanan_pituus; i ++){
piilotus += "#";
}
return piilotus;
}
</script>

</head>

<body>
<p> Hirsipuu Javascriptillä / hienot sanat </p>
<a href="javascript:uusiPeli()"> Uusi peli!</a>
<p>
<img src="hirsipuu/hirsipuu.gif" name="hirsipuu">
</p>

<form name="peli">
Arvaa sana: <input type="text" name="naytaSana">
<br>
Käytetyt kirjaimet: <input type="text" name="arvatutKirjaimet">
</form>

<p>
<a href="javascript:valitseKirjain('A');">A</a>
<a href="javascript:valitseKirjain('B');">B</a>
<a href="javascript:valitseKirjain('C');">C</a>
<a href="javascript:valitseKirjain('D');">D</a>
<a href="javascript:valitseKirjain('E');">E</a>
<a href="javascript:valitseKirjain('F');">F</a>
<a href="javascript:valitseKirjain('G');">G</a>
<a href="javascript:valitseKirjain('H');">H</a>
<a href="javascript:valitseKirjain('I');">I</a>
<a href="javascript:valitseKirjain('J');">J</a>
<a href="javascript:valitseKirjain('K');">K</a>
<a href="javascript:valitseKirjain('L');">L</a>
<a href="javascript:valitseKirjain('M');">M</a>
<a href="javascript:valitseKirjain('N');">N</a>
<a href="javascript:valitseKirjain('O');">O</a>
<a href="javascript:valitseKirjain('P');">P</a>
<a href="javascript:valitseKirjain('Q');">Q</a>
<a href="javascript:valitseKirjain('R');">R</a>
<a href="javascript:valitseKirjain('S');">S</a>
<a href="javascript:valitseKirjain('T');">T</a>
<a href="javascript:valitseKirjain('U');">U</a>
<a href="javascript:valitseKirjain('V');">V</a>
<a href="javascript:valitseKirjain('W');">W</a>
<a href="javascript:valitseKirjain('Y');">Y</a>
<a href="javascript:valitseKirjain('Z');">Z</a>
<a href="javascript:valitseKirjain('Å');">Å</a>
<a href="javascript:valitseKirjain('Ä');">Ä</a>
<a href="javascript:valitseKirjain('Ö');">Ö</a>
</p>
   
</body>
</html>

maanantai 26. lokakuuta 2015

Mobiilituotekehitys: Projektityö

Muutamia ideoita mobiilituotekehityskurssin projektityöhön.

Metsästyskalenteri
"Etkö muista milloin metsästyskausi alkaa? Mikä olikaan paras metsästyspaikkasi kaakkoistuulen kanssa? Ei hätää, uusi metsästyssovellus auttaa sinua ratkomaan nämä sekä monet muut metsästykseet liittyvät muistiongelmat!"

Metsästyskalenteri on kokoelma eläimistä tietoineen, metsästysaikoineen sekä mahdollisine muistiinpanoineen, jotka sinä käyttäjänä saat kirjata omaan sovellukseesi. Näin muistat aina, missä sait parhaan saaliin, minä päivänä ja mikä olikaan tuulen suunta.

Reseptikirja
"Löydä arkiruokien reseptit muutaman näpäytyksen päästä! Lisää omat lempireseptisi tuttujen makaroonilaatikoiden ja makkarakeittojen joukkoon! Nauti ruuanlaitosta modernisti!"

Toiminnot:
Lisää reseptejä
Lisää uusia reseptejä tietokantaan.
·         Valmistusaika, uunin lämpötila C, Kypsennysaika, Raaka-aineet, valmistusohje 1, valmistusohje 2, vapaat kommentit

  • Valmistusaika: Kauanko ruuan tekemisessä kestää keskimäärin
  • Uunin lämpötila: Ruuan kypsennykseen sopiva uunin lämpötila
  • Kypsennysaika: Kauanko ruuan täytyy olla uunissa ollakseen kypsä
  • Raaka-aineet: Mitä ruoka-aineita ruuan valmistukseen tarvitaan
  • Valmistusohje1: Kuinka ruoka valmistetaan / vaihtoehtoisesti leivonnaisten kohdalla valmistusohje1 voi olla esim. pohja
  • Valmistusohje2: Kuinka ruoka voitaisiin valmistaa vaihtoehtoisesti/ tai leivonnaisten kohdalla esim. täyte
  • Vapaat kommentit: Ruokaan ja ohjeeseen liittyviä vapaita kommentteja, ei pakollinen.


Selaa reseptejä
Selaa olemassa olevia / aiemmin tietokantaan lisättyjä reseptejä listalta.


Lue reseptejä
Avaa listasta haluamasi resepti ja lue sen sisältö.

+ Bonus
Muokkaa reseptejä

Muokkaa aiemmin luomiasi reseptejä.

To do - sovellus
"Kirjaa ylös muistamisen arvoiset asiat, tehtävät, tekemiset ja tapaamiset!"


torstai 8. lokakuuta 2015

Mobiilituotekehitys: Painoindeksilaskuri Cordova

Mobiilituotekehitys kurssi
Ensimmäinen Cordova ohjelma

  • Painoindeksilaskuri
  • Tämä ohjelma laskee painoindeksisi pituutesi ja painosi mukaan, sekä kertoo oletko ali-, normaali- tai ylipainoinen!
  • alpha/ei toimi
  • APK 22

  • Tarkoituksena luoda toimiva painoindeksi laskuri Cordovalla. Muistiinpanojen pohjalta rakennettu kokonaisuus. En saanut toimimaan omalla tietokoneella, luulen johtuvan cordovan asennusesta (?)


Koodit, joita käytin ohjelman luomiseen. 
 
HMTL:
<!DOCTYPE html>

<html>
    <head>
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data:
gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *">
        <meta name="format-detection" content="telephone=no">
        <meta name="msapplication-tap-highlight" content="no">
         <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1,
width=device-width">
        <link rel="stylesheet" type="text/css" href="css/index.css">
<meta charset="utf-8" />
        <title>Painoindeksilaskuri</title>
    </head>
    <body>
<h1>Painoindeksilaskuri</h1>
<p> Kirjoita kenttiin painosi ja pituutesi.</p>
<p> Ohjelma laske painoindeksisi! </p>
        <form>
Paino <input id="paino" type="text" autofocus> kg
<br/>
Pituus <input id="pituus" type="text"> cm
<p>Painoindeksisi on  <span id="bmi"> <span>.</p>
<p><span id="result"> <span></p>
</form>

        <script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/calculate.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
    </body>
</html>

JQUERY:
function calculateBMI(){
var p1=$("#paino").val();
var p2=$("#pituus").val();
var bmi=Math.round(p1/(p2/100*p2/100));
$("#bmi").text(bmi);

if (bmi < 18){
$("#result").text("Alipainonen.");

} else if (bmi < 25 && bmi > 18.5){
$("#result").text("kiva normaali.");

} else if (bmi < 28 && bmi > 25){
$("#result").text("Normaali.");

} else if (bmi > 28){
$("#result").text("Ylipainonen.");
}
}
function onReady() {
calculateBMI();
$("INPUT").change(calculateBMI)
}

$(document).ready(onReady);


Lähteet:
http://learn.ionicframework.com/videos/windows-android/
http://terokarvinen.com/2015/aikataulu-–-mobiilituotekehitys-bus4tn008-5-syksylla-2015
http://terokarvinen.com/2015/hello-cordova-develop-android-apps-on-ubuntu-linux#comment-21203
Tunnilla(2) tehdyt muistiinpanot (sis. jquery)
http://pastebin.com