Я пытаюсь создать программу, которая будет рассчитывать различные музыкальные гаммы на основе предоставленной вами начальной ноты.
У меня есть перечисление для разных нот:
public enum NoteValue
{
A = 0,
Asharp = 1,
B = 2,
C = 3,
Csharp = 4,
D = 5,
Dsharp = 6,
E = 7,
F = 8,
Fsharp = 9,
G = 10,
Gsharp = 11
}
Iзатем есть метод, который устанавливает каждую ноту
public void setNotes(NoteValue startingNote)
{
//Creates an array of notes the size that is specified
theNote = new Note[(numberOfNotes)];
//Sets the notes
theNote[0] = new Note(startingNote);
theNote[1] = new Note((startingNote + step[1]));
theNote[2] = new Note((startingNote + step[2] + step[1]));
theNote[3] = new Note((startingNote + step[3] + step[2] + step[1]));
theNote[4] = new Note((startingNote + step[4] + step[3] + step[2] + step[1]));
theNote[5] = new Note((startingNote + step[5] + step[4] + step[3] + step[2] + step[1]));
theNote[6] = new Note((startingNote - step[7]));
Console.WriteLine("{0} \n{1} \n{2} \n{3} \n{4} \n{5} \n{6}",
theNote[0].value, theNote[1].value, theNote[2].value, theNote[3].value,
theNote[4].value, theNote[5].value, theNote[6].value);
}
Проблема, с которой я сталкиваюсь, заключается в том, что если она пойдет, я начну с G (в моем перечислении 10), он просто начнет печатать числа после G #.Могу ли я сделать так, чтобы он возвращался к 0 после 11, а не просто продолжал?
Я получу что-то вроде этого (для основного масштаба):
G 12 1415 17 19
вместо
GABCDEF #
Есть ли способ исправить это?Спасибо.