Skocz do zawartości

Panboni

Zbanowani
  • Postów

    23
  • Dołączył

  • Ostatnia wizyta

Treść opublikowana przez Panboni

  1. Ale ty musisz swój kod przeanalizować :) . Pomogę ci: GML for(i = 1;i < 5; i += 1) for(j = 1;j < 5; j += 1) { tabela_handlowa[1,2] = 'obe' tabela_handlowa[1,3] = 'ird' tabela_handlowa[1,4] = 'ane' tabela_handlowa[2,1] = 'import' tabela_handlowa[3,1] = 'eksport' } Pierwszy krok - i = 0, j = 0: GML tabela_handlowa[1,2] = 'obe' tabela_handlowa[1,3] = 'ird' tabela_handlowa[1,4] = 'ane' tabela_handlowa[2,1] = 'import' tabela_handlowa[3,1] = 'eksport' Drugi - i = 0; j = 1: GML tabela_handlowa[1,2] = 'obe' tabela_handlowa[1,3] = 'ird' tabela_handlowa[1,4] = 'ane' tabela_handlowa[2,1] = 'import' tabela_handlowa[3,1] = 'eksport' Szósty - i = 1; j = 0: GML tabela_handlowa[1,2] = 'obe' tabela_handlowa[1,3] = 'ird' tabela_handlowa[1,4] = 'ane' tabela_handlowa[2,1] = 'import' tabela_handlowa[3,1] = 'eksport' Bez względu na wartości i oraz j kod jest zawsze ten sam. Wspomniałem już wcześniej o tym - kod wykonywany jest niezależnie od pętli, ponieważ indeksy tablic to stałe wartości, a nie zmienne.
  2. Platyna, to błąd robisz. Nikt ci przecież jedynki dodać do liczby nie broni :) . Zrozumieć sens tablic? Jeżeli chcesz chociażby wykonywać ciągle te same działania i przypisywać wartość na podstawie takiego samego wzoru. Wtedy zauważasz, że chcesz robić ciągle to samo, jednak musiałbyś powtarzać te linijki dla każdej zmiennej osobno. A tak - po prostu tworzysz pętlę i zwiększasz wartość zmiennej odpowiedzialnej za kolejny indeks (numer) tablicy i przypisujesz nowo powstałemu elementowi wartość. A tu takie przykłady: Błędy: GML x = random( 100 ) - 200; tablica[ x ] = "moja_wartosc"; Indeks nie może być mniejszy niż zero i musi być to liczba całkowita. Poprawnie byłoby x = max( round( random( 100 ) ) - 200, 0 ) GML for( i = 0; i < 5; i += 1; ) { tablica[ 0 ] = 0; tablica[ 1 ] = 0; tablica[ 2 ] = 0; tablica[ 3 ] = 0; tablica[ 4 ] = 0; } Ogólny bezsens - pięć razy tym samym tablicom przypisujemy te same wartości. A przecież chodzi o jak najmniejszą liczbę linijek :P . Zamieniamy te pięć zbędnych linijek na jedną: tablica[ i ] = 0; Kod jest skrócony o cztery linijki! GML tablica[ 1, 2 ] = wartosc; tablica[ 3, 0 ] = wartosc; tablica[ 2, 7 ] = wartosc; Ogólny zbędny chaos występujący u ciebie. Tablice dwuwymiarowe do tego nie służą :) . Dobrze: GML for( i = 0; i < 5; i += 1; ) tablica[ i ] = random( 400 ); Wartość tablicy może być ułamkiem, ale to wartość, a nie indeks :) . GML indeks = 0; while( indeks < 5 ) tablica[ indeks ] = choose( "napis1" , "napis2", "napis3" ); Umieszczamy w pięciu elementach tablicy różne napisy :) . Mam nadzieję, że nieco pomogłem. Boom, podam ci praktyczne zastosowanie. Jak 100 obiektów zastąpić tablicą ;) . Stwórz room 500 x 500 pikseli oraz umieść w nim stworzony wcześniej obiekt, któremu spirte'a dawać nie musisz. Daj mu w Create: GML for( i = 0; i < 10; i += 1; ) for( j = 0; j < 10; j += 1; ) tablica[ i, j ] = choose( c_black, c_white ); // robimy białe i czarne pola (losowo)</span> W evencie Global mouse left pressed: GML i = mouse_x div 50 * 50; j = mouse_y div 50 * 50; // na podstawie pozycji myszki obliczamy, jakie są to indeksy tablicy if ( tablica[ i, j ] == c_black ) tablica[ i, j ] = c_white; else tablica[ i, j ] = c_black; // zmiana</span> A tak wyświetlamy kwadraty na podstawie tablic w evencie Draw: GML for ( i = 0; i < 10; i += 1; ) for( j = 0; j < 10; j += 1; ) { draw_set_color( tablica[ i, j ] ); draw_rectangle( i * 50, j * 50, i * 50 + 50, j * 50 + 50, 0 ); } Może ten przykład ci pomoże zrozumieć tablice :P .
  3. Indeks tablicy w GMie to dowolna liczba całkowita, nie mniejsza niż zero. Oznacza to, że można tworzyć element tablicy o indeksie równym 0. Poprawnie więc by było: GML tabela_handlowa[ 0, 1 ] = 'obe' tabela_handlowa[ 0, 2 ] = 'ird' tabela_handlowa[ 0, 3 ] = 'ane' tabela_handlowa[ 1, 0 ] = 'import' tabela_handlowa[ 2, 0 ] = 'eksport' Dlaczego niby mamy pomijać pierwszy element? I dlaczego mamy wiele razy przypisywać tym samym zmiennym różne wartości, bądź, co gorsza, próbować wyświetlać wartości elementów tablic, które nie istnieją :) ? I ogólnie słaby pomysł z tymi tablicami - kompletnie nieprzemyślane ;) .
×
×
  • Dodaj nową pozycję...