Menu
CoddyTech

הגדרת מנייה

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

הצהרת enum היא מילת המפתח enum, שם והאפשרויות בתוך סוגריים מסולסלים, מופרדים בפסיקים. מדריך הסגנון של Godot כותב את השם ב־PascalCase ואת האפשרויות ב־CONSTANT_CASE:

enum Direction { NORTH, EAST, SOUTH, WEST }

אפשר לכתוב כל אפשרות בשורה נפרדת במניין ארוך. מותר להוסיף פסיק אחרי האפשרות האחרונה:

enum Weapon {
	SWORD,
	BOW,
	STAFF,
}

אפשר לבחור את הערך של אפשרות באמצעות =. אפשרות ללא ערך מקבלת את הערך של האפשרות שלפניה ועוד 1:

enum Difficulty { EASY = 1, NORMAL, HARD, NIGHTMARE = 10 }
# EASY = 1, NORMAL = 2, HARD = 3, NIGHTMARE = 10

גם enum הוא טיפוס. משתנה שהוצהר באמצעותו מכיל אחת מהאפשרויות שלו:

var level: Difficulty = Difficulty.HARD
print(level) # 3
print(level * 50) # 150

סקריפט יכול להצהיר על כמה מונים, שלכל אחד מהם יש שם משלו. אם משמיטים את השם, כמו ב־enum { LEFT, RIGHT }, האפשרויות הופכות לקבועים של הסקריפט, וכותבים LEFT ללא קידומת.

challenge icon

אתגר

קל

התוכנית קוראת את נזק הבסיס של אויב (מספר שלם). ברמות קושי גבוהות יותר האויב מכה חזק יותר: הנזק הוא נזק הבסיס כפול הערך של רמת הקושי.

  1. ברמה העליונה של הסקריפט, הכריזו על enum בשם Difficulty עם האפשרויות EASY (ערך 1), NORMAL, HARD ו-NIGHTMARE (ערך 10). אל תתנו ל-NORMAL ול-HARD ערך משלהם, כך שהם ימשיכו את הספירה מ-EASY.
  2. הדפיסו את הנזק עבור כל רמת קושי, אחד בכל שורה, תוך שימוש באפשרויות של ה-enum בחישוב.

עבור הקלט 12, הפלט הוא:

EASY: 12
NORMAL: 24
HARD: 36
NIGHTMARE: 120

נסו בעצמכם

extends Node

# הכריזו כאן על ה-enum בשם Difficulty

func _ready():
	var base_damage := int(OS.read_string_from_stdin())
	# הדפיסו את הנזק עבור כל רמת קושי
	pass
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

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

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