From 501f2156cc8a6446440183725fca15cccec6ad26 Mon Sep 17 00:00:00 2001 From: antpoms <148887171+antpoms@users.noreply.github.com> Date: Sat, 14 Jun 2025 22:17:58 +0200 Subject: [PATCH] random placement --- SimpleGame/src/Source/TilePattern.cpp | 46 +++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/SimpleGame/src/Source/TilePattern.cpp b/SimpleGame/src/Source/TilePattern.cpp index 6556cc2..f989fea 100644 --- a/SimpleGame/src/Source/TilePattern.cpp +++ b/SimpleGame/src/Source/TilePattern.cpp @@ -9,12 +9,54 @@ void generateTilePattern(std::vector> new_notes, const AudioEmitter &audio_emitter) { int i = -1; float beatDuration = 60.f / audio_emitter.tempo; + int previous_note_pitch = 0; + NotePlaceEnum previous_note_placement = static_cast(0); for (auto note : new_notes) { i++; - // if (i % 4 != 0) // skip les 3/4 des notes (je suis trop nul sinon) - // continue; float start_time = note.first; NotePlaceEnum notePlace = static_cast(i % 3); + if (i == 0) { + notePlace = static_cast(rand()%3); + } + else { + if (note.second == previous_note_pitch) { + notePlace = previous_note_placement; + } + else if (note.second < previous_note_pitch) { + if (previous_note_placement == Left) { + notePlace = Left; + } + else if (previous_note_placement == Middle) { + notePlace = Left; + } + else { + if (rand() % 2 == 0) { + notePlace = Left; + } + else { + notePlace = Middle; + } + } + } + else { + if (previous_note_placement == Right) { + notePlace = Right; + } + else if (previous_note_placement == Middle) { + notePlace = Right; + } + else { + if (rand() % 2 == 0) { + notePlace = Right; + } + else { + notePlace = Middle; + } + } + } + } + previous_note_pitch = note.second; + previous_note_placement = notePlace; NoteTile::create(start_time, beatDuration, notePlace, audio_emitter.getTime()); } }