/* * Kanvaa.java * * Created on laupäev, 31. Juuli 2004. a, 21:00 */ package j2me; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import javax.microedition.rms.*; import java.util.*; import java.io.*; import java.lang.*; public class Kanvaa extends Canvas{ // pulgale vajaminevate muutujate kirjeldamine, mille vastu kuul p6rkab int aluse_x=0; int aluse_y=getHeight()-20; int aluse_width=getWidth()/4; int aluse_height=2; // kuuli muutujate kirjeldamine int kuuli_x; int kuuli_y; int kuuli_raadius = 10; int samm = 1; // muud vajaminevad deklareeringud Timer t; Random rnd = new Random(); int skoor = 0; char veamark = '*'; int viga = 0; int arv; // kasutamiseks salvestuse juures // allpool on tehtud vastavad meetodid, mis on vajalikud pulga ja kuuli puute kontrolliks ning // ekraaniserva kontrollimiseks, mis v2listab pulga liikumist ekraani serva taha boolean pulgaPuude = false; boolean servaPuude = false; // andmehoidla tegemine ja striimide initsialiserimine globaalselt // String hoidlanimi = "skbaas"; private RecordStore rs = null; static final String REC_STORE = "skbaas"; // ByteArrayOutputStream bos = new ByteArrayOutputStream(); // DataOutputStream dos = new DataOutputStream(bos); protected void paint(Graphics g){ g.setColor(255, 255, 255); g.fillRect(0, 0, getWidth(), getHeight()); // joonistab ruudu kanvaale aluseks teistele asjadele g.setColor(0, 0, 0); g.drawString(Integer.toString(skoor), 5, 5, Graphics.TOP | Graphics.LEFT); // kirjutab skoori // vastavalt vigade arvule joonistatakse kanvaale t2rne, kui neid saab kokku 3 ehk vigu on 3, // trykitkse v2lja vastav kommentaar ja m2ngu l6plik skoor for (int i = 1; i <= viga; i++){ if (viga != 0) { g.drawChar(veamark, getWidth()-40 + i*10, 5, Graphics.TOP | Graphics.LEFT); } } if (viga == 3) { g.drawString("Koba", 5, getHeight()/3, Graphics.TOP | Graphics.LEFT); g.drawString("Skoor: " + Integer.toString(skoor), 5, getHeight()/2, Graphics.TOP | Graphics.LEFT); ReadWrite(); } g.fillArc(kuuli_x, kuuli_y, kuuli_raadius, kuuli_raadius, 0, 360); // p6rkuv kuul g.fillRect(aluse_x, aluse_y, aluse_width, aluse_height); // alguses paikneb alus vasakus nurgas } protected void keyPressed(int kood){ if(getGameAction(kood)==Canvas.LEFT){ if(aluse_x>0){ // kontrollib, et servadest v2lja ei l2he vasakule aluse_x=aluse_x-20; } } if(getGameAction(kood)==Canvas.RIGHT){ if(aluse_x0 && kuuli_y+samm>getHeight()-10) || (samm>0 && kuuli_y-samm<0)){ servaPuude = true; viga++; samm=0; } else { kuuli_y+=samm; repaint(); } } // pulgapuute kontrollimise meetod, mis tagastab t6ev22rtuse boolean kontrolliPulka(){ if(samm > 0 && (kuuli_y + 10 == aluse_y) && (kuuli_x + 10 >= aluse_x) && (kuuli_x + 10 <= aluse_x + aluse_width)){ return true; // kui oli puude } else { return false; // polnud puudet } } // ================================================================================================= // SALVESTUSALA // ================================================================================================= public void ReadWrite() { openRecStore(); // loob hoidla // kirjutab skoori sisse ja tagastab writeRecord(Integer.toString(skoor)); readRecords(); closeRecStore(); // suleb hoidla } public void openRecStore() { try { // teine parameeter k2sib luua hoidla kui seda ei eksisteeri rs = RecordStore.openRecordStore(REC_STORE, true); } catch (Exception e) { db(e.toString()); } } public void closeRecStore() { try { rs.closeRecordStore(); } catch (Exception e) { db(e.toString()); } } // stringi konvertimine baitide massiiviks, et saaks salvestada midagi hoidlasse public void writeRecord(String str) { byte[] rec = str.getBytes(); try { rs.addRecord(rec, 0, rec.length); } catch (Exception e) { db(e.toString()); } } public void readRecords() { try { byte[] recData = new byte[100]; int len; for (int i = 1; i <= rs.getNumRecords(); i++) { len = rs.getRecord(i, recData, 0); // tagastab antud salvestise ID alla kuuluva asja System.out.println(i); // kontrolli m6ttes v2ljastab see asjad system outi, sest siin esineb anomaalia } } catch (Exception e) { db(e.toString()); } } // veateate inimlikum esitus private void db(String str) { System.err.println("Msg: " + str); } }