Kod:
String inputString = ""; // GELEN VERIYI TUTAN STRING
boolean stringComplete = false; //STRING TAMAM MI ANLAMAK ICIN KULLANILACAK
int tutulansayi;//MCU TARAFINDAN TUTULAN SAYI
int hak=5;//KULLANICI HAKKI
void setup() {
Serial.begin(9600);//9600 BAUDRATE DE SERI PORT BASLAT
inputString.reserve(20);//20 KARAKTERLIK YER TANIMLADIK GELEN VERI ICIN
randomSeed(analogRead(0));//ANALOG 0 GIRISINE BAGLI POT DAN DEGER OKUDUK
tutulansayi=random(300); //0-300 ARASI SAYI TUTUYOR
pinMode(11,OUTPUT);//11 NOLU PINI CIKIS YAP
Serial.print("SAYI TAHMIN OYUNUNA HOS GELDINIZ \n5 TAHMIN HAKKINIZ VAR");
}
void loop() {
if (stringComplete) //GELEN VERININ TAMAMLANIP TAMAMLANMADIGINA BAK
{
int sayi=inputString.toInt();//GELEN STRING VERIYI TAM SAYIYA CEVIR
if(sayi<tutulansayi)//EGER BIZIM GIRDIGIMIZ SAYI MCU TARAFINDAN TUTULAN SAYIDAN KUCUKSE
{hak--; //HAK SAYISINI 1 AZALT
Serial.print("\nGIRILEN SAYI=");//SERI PORTTAN GIRDIGIMIZ SAYIYI GOSTER
Serial.print(sayi);
Serial.print("\tSAYIYI ARTTIR \t KALAN HAKKINIZ=");Serial.println(hak);}//SAYIYI ARTTIR YAZ KALAN HAKKI GOSTER
if(sayi>tutulansayi)//EGER BIZIM GIRDIGIMIZ SAYI MCU TARAFINDAN TUTULAN SAYIDAN BUYKSE
{ Serial.print("\nGIRILEN SAYI=");
Serial.print(sayi);
hak--;Serial.print("\tSAYIYI AZALT \t KALAN HAKKINIZ=");Serial.println(hak);}//SAYIYI ARTTIR YAZ KALAN HAKKI GOSTER
if(hak==0)
{Serial.print("HAKKINIZ BITTI TUTULAN SAYI=");Serial.println(tutulansayi);
tutulansayi=random(300);hak=5;
inputString = "";
stringComplete = false;}
else
{if(sayi==tutulansayi)
{ Serial.println("\nTEBRIKLER BILDINIZ");
digitalWrite(11,HIGH);
delay(1000);
digitalWrite(11,LOW);
tutulansayi=random(300);hak=5;
}
inputString = "";
stringComplete = false;
}}
}
/*
SerialEvent occurs whenever a new data comes in the
hardware serial RX. This routine is run between each
time loop() runs, so using delay inside loop can delay
response. Multiple bytes of data may be available.
*/
void serialEvent() {
while (Serial.available()) {
// get the new byte:
char inChar = (char)Serial.read();
// add it to the inputString:
if (inChar != '\r')
inputString += inChar;
// if the incoming character is a newline, set a flag
// so the main loop can do something about it:
if (inChar == '\r') {
stringComplete = true;
}
}
}
Editörde yer alan seri port ekranından oynanabilir.Analog giriş kullanma sebebi her enerji verişte aynı sayıları tutmasın diye enerji vermeden önce pot ile oynanarak farklı sayılar tutmasını sağlamaktır.Editörde yer alan örnek kodlar üzerinde oynanarak yaptım.İyi Eğlenceler
**** olanlar S e r i a l olacak aralıksız yazılacak