import 'dart:io'; // لإدخال القيم من المستخدم void main() { // ❶ تعريف الثوابت (الحد الأدنى والأقصى للحرارة) const int minTemp = 15; const int maxTemp = 30; // ❷ القيم الابتدائية للأجهزة bool lightsOn = false; int temperature = 20; bool securityArmed = false; // ❸ بداية الحلقة التكرارية while (true) { print('\n=== Smart Home System ==='); print('1. Turn lights on/off'); print('2. Set thermostat temperature'); print('3. Arm/Disarm security system'); print('4. View system status'); print('5. Exit'); stdout.write('Enter your choice: '); String? choice = stdin.readLineSync(); // تحقق من الإدخال if (choice == null) continue; switch (choice) { case '1': lightsOn = !lightsOn; // قلب الحالة print(lightsOn ? 'Lights are now ON' : 'Lights are now OFF'); break; case '2': stdout.write('Enter temperature ($minTemp-$maxTemp): '); String? tempInput = stdin.readLineSync(); if (tempInput != null) { int? newTemp = int.tryParse(tempInput); if (newTemp != null && newTemp >= minTemp && newTemp <= maxTemp) { temperature = newTemp; print('Temperature set to $temperature°C'); } else { print( 'Invalid temperature! Please enter between $minTemp and $maxTemp.', ); } } break; case '3': securityArmed = !securityArmed; print( securityArmed ? 'Security system ARMED' : 'Security system DISARMED', ); break; case '4': String lightsStatus = lightsOn ? 'ON' : 'OFF'; String securityStatus = securityArmed ? 'ARMED' : 'DISARMED'; String tempMessage = ''; // FizzBuzz-like logic if (temperature % 3 == 0 && temperature % 5 == 0) { tempMessage = 'Perfect Day'; } else if (temperature % 3 == 0) { tempMessage = 'Cool Day'; } else if (temperature % 5 == 0) { tempMessage = 'Warm Day'; } print('\n--- System Status ---'); print('Lights: $lightsStatus'); print( 'Temperature: $temperature°C ${tempMessage.isNotEmpty ? '($tempMessage)' : ''}', ); print('Security: $securityStatus'); break; case '5': print('Exiting system... Goodbye!'); return; default: print('Invalid choice! Please enter 1-5.'); } } }