Struct = tablica String - Value ? - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Struct = tablica String - Value ? (/watek-struct-tablica-string-value) |
Struct = tablica String - Value ? - tombag - 24-04-2018 Cześć czy za pomocą Struct mogę zrobić tablicę String - Value typu: nazwa tablicy = [ tomek, czasWmillis; Piotrek, czasWmillis; itp do 10 takich par ] ? Coś typu Tablica String + int jako String + Value + sortowanie takiej tablicy by na pierwszym miejscu była osoba która ma najmniejszą liczbę milisekund + dodawanie do tablicy nowej pary + zerowanie tablicy gdy zeruje grę Pozd RE: Struct = tablica String - Value ? - Robson Kerman - 24-04-2018 Możesz stworzyć tablicę struktur, oraz strukturę tablic. Zacznij naukę, bo to o co pytasz to podstawa podstaw. Opisz dokładniej o co Ci chodzi, bo pytanie nie jest napisane zgodnie z zasadami języka polskiego. Ciężko się to czyta. (Edit) No dobra, trochę to wyjaśnijmy. Można stworzyć typ danych dla struktury. Wtedy każda zmienna tego typu będzie przechowywać strukturę. Kod: typedef struct { Teraz tworzymy zmienną dla każdego zawodnika: Kod: zawodnik s_Marek; Następnie możemy przypisać im wartości. Kod: s_Marek.imie = "Marek"; Drugim sposobem jest stworzenie tablicy struktur. Kod: struct { Każda tablica będzie wypełniana tak jak powyżej. Kod: zawodnik[0].imie = "Marek"; Albo można wstawić tablicę zmiennych do struktury. Kod: struct { Można też stworzyć typ danych, jak podałem powyżej i stworzyć tablicę zmiennych tego typu. Kod: typedef struct { Każdy sposób jest dobry, wszystko zależy od widzimisię programisty. Ja osobiście wybrał bym ten ostatni, ponieważ jest dla mnie najbardziej "naturalny", czy przyjazny. A i zapomniał bym. Ten ostatni sposób jest najprostszy do stworzenia tablicy dynamicznej, o wymiarach określanych podczas pracy programu. Nie musisz rezerwować miejsca w pamięci, jeśli tego nie wykorzystasz, ponieważ graczy nie będzie 10, tylko powiedzmy trzech. Kod: int ilu_zawodnikow; RE: Struct = tablica String - Value ? - tombag - 25-04-2018 łał super odpowiedz już szybko tłumaczę co chcę zrobić Arduino + 2 ( lub 5) przycisków i tyle samo LED. Na początku gry wpisujemy imię graczy przez Serial Monitor: Serial.read(); tutaj 2'ch graczy, Każdy przycisk ma swoją diodę LED, Naciśnięcie przycisku uruchamia grę polegającą na tym, że gdy losowo wybrana dioda LED się zapali to odpowiedni gracz naciska jak najszybciej przycisk aby ją zgasić. Arduino łapie czas od zaświecenia się LED do naciśnięcia przycisku i zapisuje po czym uruchamia grę ponownie. Takich rund będzie np 10. Po zakończeniu całej gry Arduino sortuje tablicę i wyświetla użytkowników od tego co był najszybszy do najwolniejszego Zatrzymałem się tylko na tym jak dodawać złapane czasy do takiej jakby tablicy i w niej robić operacje na wartościach czyli sortowanie na sam koniec gry. Przepraszam za poprzedni chaotyczny post. Twoja odpowiedz jest super dawką wiedzy, której w sumie nie ma chyba w internecie. Jest tylko informacja o struct ale tak pobieżna, że szok: https://playground.arduino.cc/Code/Struct Zabieram się za zrozumienie powyższych komend i jego implementację RE: Struct = tablica String - Value ? - Robson Kerman - 25-04-2018 W takim przypadku, można na przykład stworzyć tablicę struktur o wymiarze równym ilości graczy. Wewnątrz struktury umieścić zmienną "imię", oraz zmienną tablicową "czas" o wymiarze równym ilości rund. Kod: struct { W powyższym mamy czterech zawodników oraz dziesięć rund. Oczywiście można pokusić się o stworzenie tablic dynamicznych dla ilości zawodników, oraz liczby rund. Dodawanie czasów no oczywiście w pętli. Kod: for (int x = 0; x < 10; x++)// dziesięć rund Tu masz rundy dla kolejnych graczy, można oczywiście kolejność losować, żeby gracze nie wiedzieli, któremu zapali się dioda. Czyli losować wartość x oraz y. To się nazywa losowanie bez powtórzeń. A sortowanie, to sortowanie. Sprawdzasz w pętli czy kolejny element w tablicy jest większy od poprzedniego i zamieniasz je miejscami. Wcześniej raczej będziesz liczył średnią tych czasów? RE: Struct = tablica String - Value ? - tombag - 11-05-2018 Nie żadnej średniej nie będzie tylko ile minęło czasu od zapalenia LED do zgaszenia jej przyciskiem |