⚡ بازی سرعت عمل — چقدر سریع واکنش نشان می‌دهی؟

یک بازی ساده که مفهوم اندازه‌گیری زمان را عالی یاد می‌دهد: چراغ روشن می‌شود، تو دکمه را می‌زنی، و آردوینو می‌گوید چند میلی‌ثانیه طول کشید.

منطق بازی

  1. یک مدت تصادفی صبر کن (تا بازیکن نتواند حدس بزند).
  2. چراغ را روشن کن و زمان را با millis() ثبت کن.
  3. منتظر دکمه بمان.
  4. اختلاف دو زمان، سرعت عمل است.

کد

const int led = 13, button = 2;
unsigned long best = 99999;

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

void loop() {
  Serial.println("Amade bash...");
  digitalWrite(led, LOW);
  delay(random(2000, 6000));        // انتظار تصادفی

  // تقلب: اگر همین حالا دکمه را نگه داشته باشد
  if (digitalRead(button) == LOW) {
    Serial.println("Taghallob! Sabr kon.");
    delay(2000);
    return;
  }

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

  while (digitalRead(button) == HIGH) { }   // منتظر فشار

  unsigned long ms = millis() - start;
  digitalWrite(led, LOW);

  Serial.print("Sorat: ");
  Serial.print(ms);
  Serial.println(" ms");

  if (ms < best) {
    best = ms;
    Serial.println("Rekord jadid!");
  }
  delay(2000);
}

تشخیص تقلب

بدون آن بازیکن می‌تواند دکمه را از قبل نگه دارد و همیشه صفر میلی‌ثانیه بگیرد. یک بررسی ساده قبل از روشن‌کردن چراغ، بازی را منصفانه می‌کند — و به بچه‌ها یاد می‌دهد که به ورودی کاربر اعتماد نکن.

عددها چه معنی دارند؟

سرعت عمل یک انسان معمولی حدود ۲۵۰ میلی‌ثانیه است. زیر ۲۰۰ خیلی خوب است و زیر ۱۵۰ تقریباً غیرممکن — اگر چنین عددی دیدی، احتمالاً زودتر زده‌ای.

بازی سرعت عمل را بساز ⚡

مقاله‌های دیگر

🤖

آردوینو چیست؟ راهنمای کامل برای شروع از صفر

بهترین شبیه‌ساز مدار آنلاین فارسی — چرا شبیه‌ساز، و چرا روبومیکر؟

💡

ساده‌ترین پروژه الکترونیک برای بچه‌ها: روشن‌کردن یک LED