/**************************************************************** tietovisa.java Tietovisa-appletti, jossa kysymykset haetaan WWW-palvelimella sijaitsevasta tekstitietokannasta. Tekijä: Pekka Malmirae, 2/1999 Muutoksia: * Päivitetty Java 1.1:n mukaiseksi: * size -> getSize * Tapahtumankäsittely päivitetty Adapter-luokkaa käyttäväksi Pekka Malmirae, 11/1999 ****************************************************************/ import java.awt.*; import java.awt.event.*; import java.applet.*; import java.io.*; import java.net.*; /************************************* ** kyselijä-luokka **************************************/ class kyselija { int kysymyksia, nro; String kysymys[]; String vastaus[]; String vaihtoEhdot[][]; Font teksti = new Font("Arial", Font.BOLD, 18); public kyselija(String kysymykset[], int lkm) { kysymyksia = lkm; kysymys = new String[kysymyksia]; vastaus = new String[kysymyksia]; vaihtoEhdot = new String[kysymyksia][3]; nro = 0; for (int i=0;i 35) { int i = 26; while (! kysymys[nro].substring(i,i+1).equals(" ") && i < kysymys[nro].length()) i++; String teksti1 = kysymys[nro].substring(0,i); String teksti2 = kysymys[nro].substring(i+1); g.drawString(teksti1, 35, 50); g.drawString(teksti2, 35, 70); } else g.drawString(kysymys[nro], 35, 50); for (int i=0;i<3;i++) g.drawString(vaihtoEhdot[nro][i], 35, 90+20*i); } } /********************************************************************* ** tietovisa -luokka ** ** Ohjelma käynnistää kyselijän ja pistelaskurin. ** Kyselijä lukee tiedostosta kysymyksiä ja vastauksia ja ** tulostaa niitä näyttöön. Jos käyttäjä vastaa kysymyksiin oikein, ** laskurin arvoa kasvatetaan. ** **********************************************************************/ public class tietovisa extends Applet { int Laskuri, kysymyksia; kyselija nero; String vastaus; Image Tausta, uusiPeli; Font fontti = new Font("Arial", Font.BOLD, 26); boolean Ladattu, visaLoppu; AudioClip juu, ei; String kysymysData[]; URL URLin; InputStream is; BufferedInputStream bis; BufferedReader br; public void init() { Laskuri = 0; try { URLin = new URL(getParameter("url")); try { is = URLin.openStream(); bis = new BufferedInputStream(is); br = new BufferedReader(new InputStreamReader(bis)); String s = br.readLine(); kysymyksia = s.length(); kysymysData = new String[kysymyksia]; for (int i=0; i= 167) && (y <= 215)) { if ((x >= 55) && (x <= 140)) { vastaus = "a"; tee_tulos(); return; } if ((x >= 167) && (x <= 250)) { vastaus = "b"; tee_tulos(); return; } if ((x >= 282) && (x <= 363)) { vastaus = "c"; tee_tulos(); return; } } if (visaLoppu && x>=50 && x<=202 && y>=70 && y<=131) { nero = new kyselija(kysymysData, kysymyksia); Laskuri = 0; visaLoppu = false; repaint(); } } } public boolean imageUpdate(Image img, int infoflags, int x, int y, int w, int h) { if (infoflags == ALLBITS) { Ladattu = true; repaint(); return false; } else return true; } }