⚡ درس 49: مسابقه‌ی دو نفره

چه کسی سریع‌تر است؟ — و چطور بازی را منصفانه کنیم.

سطح: متوسط · زمان: حدود 13 دقیقه · مفاهیم: millis، انصاف، بازی

قدم‌های این درس

  1. ایده
  2. قدم ۱ — سه قانون انصاف
  3. چالش: بهترین از پنج

نمونه‌ای از کد این درس

const int led = 13, p1 = 2, p2 = 3, buzzer = 8;

void setup() {
  pinMode(led, OUTPUT);
  pinMode(p1, INPUT_PULLUP);
  pinMode(p2, INPUT_PULLUP);
  pinMode(buzzer, OUTPUT);
  randomSeed(analogRead(A0));
  Serial.begin(9600);
}

void loop() {
  Serial.println("Amade...");
  digitalWrite(led, LOW);
  delay(random(2000, 6000));

  // قانون ۲: کسی زودتر زده؟
  if (digitalRead(p1) == LOW || digitalRead(p2) == LOW) {
    Serial.println("Zood zadi! Bakhti.");
    tone(buzzer, 150, 500);
    delay(2000);
    return;
  }

  digitalWrite(led, HIGH);
  unsigned long start = millis();

  // قانون ۳: هر دو در یک حلقه
  while (true) {
    bool a = (digitalRead(p1) == LOW);
    bool b = (digitalRead(p2) == LOW);
    if (a || b) {
      unsigned long ms = millis() - start;
      digitalWrite(led, LOW);
      Serial.print(a ? "Bazikon 1" : "Bazikon 2");
      Serial.print(" bord ba ");
      Serial.print(ms);
      Serial.println(" ms");
      tone(buzzer, 1200, 200);
      break;
    }
  }
  delay(2500);
}

چرا این درس؟

دوره‌ی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیه‌ساز انجام می‌دهی — مدار واقعی می‌چینی، کد واقعی اجرا می‌کنی و نتیجه را همان لحظه می‌بینی. این درس روی درس‌های قبلی ساخته شده، پس اگر تازه شروع کرده‌ای از درس ۱ بیا!

این درس را رایگان در شبیه‌ساز شروع کن 🎓

درس‌های دیگر دوره

🎮

درس 48: بازی سایمون

🌉

درس 50: موتور جلو و عقب