Menu
CoddyTech

סיכום – רמזור

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-GDScript של Coddy. שיעור 41 מתוך 78.

challenge icon

אתגר

קל

דמו רמזור. ברמה העליונה של הסקריפט, הכריזו על enum בשם TrafficLight עם האפשרויות RED, YELLOW ו-GREEN, וכתבו שלוש פונקציות שכל אחת מהן משתמשת ב-match על הרמזור:

  • get_driver_action(light) מחזירה "Stop" עבור אדום, "Caution" עבור צהוב ו-"Go" עבור ירוק
  • get_wait_time(light) מחזירה 30 עבור אדום, 3 עבור צהוב ו-25 עבור ירוק
  • get_next_light(light) מחזירה את הרמזור הבא: אדום מתחלף לירוק, ירוק מתחלף לצהוב וצהוב מתחלף לאדום

התוכנית קוראת שתי שורות: שם הרמזור הראשון (RED, YELLOW או GREEN) וכמה רמזורים להציג (מספר שלם, 1 או יותר). עבור כל רמזור, הדפיסו את שמו, את הפעולה שלו ואת זמן ההמתנה שלו, ואז עברו לרמזור הבא. לבסוף, הדפיסו את הסכום של כל זמני ההמתנה.

עבור הקלטים RED ו-4, הפלט הוא:

RED: Stop for 30 seconds
GREEN: Go for 25 seconds
YELLOW: Caution for 3 seconds
RED: Stop for 30 seconds
Total wait: 88 seconds

נסו בעצמכם

extends Node

# הכריזו כאן על ה־enum ‏TrafficLight

# כתבו כאן את get_driver_action(), get_wait_time() ואת get_next_light()

func _ready():
	var first := OS.read_string_from_stdin()
	var count := int(OS.read_string_from_stdin())
	# הציגו את הרמזורים ואת זמן ההמתנה הכולל
	pass

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

תרגלו בעצמכם: קומפיילר GDScript אונליין