Projekt 1.5 - Střežení objektu

7. Rozšíření na 4 číslice

JAVA verze

import lejos.nxt.*;


public class alarm
{
  public static void main (String[] aArg)
  throws Exception
  {
     int cislo1 = 0;
     int cislo2 = 0;
     int cislo3 = 0;
     int cislo4 = 0;
     int pozice = 1;
     boolean kodOK = false;
     // Vytvoříme novou instanci třídy ultrasonic sensor
     // - připojeném na vstupu 1:  
     UltrasonicSensor sonic1 = new UltrasonicSensor(SensorPort.S3);
     Motor.B.resetTachoCount();
     LCD.drawString("STREZIM",0,4);
     // Cekani na naruseni objektu:
     while (sonic1.getRange()>10) {
	     	if  (Button.ESCAPE.isPressed())   
		System.exit(1);
     } 
     LCD.clear();
     Sound.playTone(1000,300);
     // Cyklus zadavani kodu
     // bezi dokud neni zadan spravny kod :
     while (!kodOK)  {
	if (pozice==1) {
		LCD.drawString("PRVNI CISLO: " + cislo1,0,0);
	} else {
		LCD.drawString("Prvni cislo: " + cislo1,0,0);
	}
	if (pozice==2) {
		LCD.drawString("DRUHE CISLO: " + cislo2,0,1);
	} else {	
		LCD.drawString("Druhe cislo: " + cislo2,0,1);
	}
	if (pozice==3) {
		LCD.drawString("TRETI CISLO: " + cislo3,0,2);
	} else {	
		LCD.drawString("Treti cislo: " + cislo3,0,2);
	}
	if (pozice==4) {
		LCD.drawString("CTVRTE CISLO: " + cislo4,0,3);
	} else {	
		LCD.drawString("Ctvrte cislo: " + cislo4,0,3);
	}
	// Když stiskneme ESC program se ukončí:
     	if  (Button.ESCAPE.isPressed())   
		System.exit(1);

	// Když :
	if (Motor.B.getTachoCount()>30) {
		Sound.playTone(1000,300);
		switch (pozice) {
			case 1: cislo1+=1; if (cislo1 > 9) cislo1=0; break;
			case 2: cislo2+=1; if (cislo2 > 9) cislo1=0; break;
			case 3:	cislo3+=1; if (cislo3 > 9) cislo1=0; break;
			case 4:	cislo4+=1; if (cislo4 > 9) cislo1=0; break;
		} // konec switch
		Motor.B.resetTachoCount();
	} // konec if
	
	// Když :
	if (Motor.B.getTachoCount()<(-30)) {
		Sound.playTone(1000,300);
		switch (pozice) {
			case 1: cislo1-=1; if (cislo1 < 0) cislo1=9; break;
			case 2: cislo2-=1; if (cislo2 < 0) cislo2=9; break;
			case 3: cislo3-=1; if (cislo3 < 0) cislo3=9; break;
			case 4: cislo4-=1; if (cislo4 < 0) cislo4=9; break;
		} // konec switch
		Motor.B.resetTachoCount();
	} // konec if
		
	if (Button.ENTER.isPressed())	{
		pozice+=1;
		Sound.playTone(800,300);
	}
	// Muzeme prejit i na dalsi pokus:
	if (pozice>4) pozice=1;
	// Vyhodnoceni spravneho kodu:
	if ((cislo1==1) & (cislo2==2) & (cislo3==3) & (cislo4==4) ) {
		kodOK=true;
	}
	Thread.sleep(300);
     } // Konec cyklu zadavani kodu
     if (kodOK) {
		// KOD OK :
		LCD.clear();
		LCD.drawString(" kombinace OK ",0,0);
		Thread.sleep(10000);	
	} else {
		LCD.clear();
		LCD.drawString(" POPLACH ",0,0);
		while (true) {
			// Poplach:
			Sound.playTone(2000,1000);
			Sound.playTone(4000,1000);
			if  (Button.ESCAPE.isPressed())   
				System.exit(1);
		}

	}	
   } // Konec hlavniho programu main
} // konec cele tridy