Skocz do zawartości

while..


Rekomendowane odpowiedzi

Cze... Mam problem z petla While i nie wiem oco chodzi... tutaj macie kod...

 

GML
while (tab_gdzie[_x,_y]=false)

{

_x=round(1-random(10));

_y=round(1-random(10));

}

tab_gdzie[_x,_y]=false;

 

 

 

 

pisze ze mam negative array index ;/ .. a tablice tworze w petli :

GML
for (i=0; i<=9; i+=1)

{

for (j=0; j<=9;j+=1)

{

tab_gdzie[i,j]=true;

}

}

 

 

 

 

 

ktos pomoze ? a jak pozmieniam tego randoma to program sie zawiesza..;/ chyba petla dziala w nieskonczonosc ;/

Odnośnik do komentarza
Udostępnij na innych stronach

tam nic nie ma wiecej;p

 

 

 

 

 

 

 

GML
for (i=1; string_length(zdanie); i+=1)

{

tab_z=string_char_at(zdanie,i);

while (tab_gdzie[_x,_y]=false)

{

_x=abs(round(1-random(10)));

_y=abs(round(1-random(10)));

}

tab_gdzie[_x,_y]=false;

tab_1[_x,_y]=tab_z;

 

}

for (i=1; string_length(zdanie); i+=1)

{

tab_litera=0;

}

 

 

 

 

mi chodzilo o to zeby litery zdania porozsypywalo po tablicy tab_1 ;/

Odnośnik do komentarza
Udostępnij na innych stronach

tab_gdzie jest true cala bo sie tworzy w create ...

 

 

 

 

petla MA WYszukac wolne komorki w tablicy i ustawic je na zajete a w te miejsce w tablicy z lterami wpisac odpowiednia litere..

 

 

 

 

potrzebna mi tablica bo mam tablice 10x10 i litery sie losuja czyli mam 100 komorek.. potem ma w petli w losowe miejsca powstawiac litery ze zdania ... Bo potem bd robil ze ma sie kliknac pokolei w litery zeby ulozyc te zdanie.. iitp..

Odnośnik do komentarza
Udostępnij na innych stronach

GML
zdanie = "123456789 ";

_dlugosc = string_length(zdanie);

 

for (i=0; i<_dlugosc; i+=1)

{

chars=string_char_at(zdanie,i);

}

 

for (i=0; i<=9; i+=1)

{

for (j=0; j<=9; j+=1)

{

tab_gdzie[i,j]=chars[abs(round(random(_dlugosc)-1))];

}

}

I masz rozmieszczenie w tablicy ;)

Odnośnik do komentarza
Udostępnij na innych stronach

Wlosowywanie liter z tekstu do kolejnych komórek tablicy 10x10.

GML
text = 'Ala ma kota a kot ma ale!';

for( i = 0; i < 10; i+= 1 )

for( j = 0; j < 10; j+= 1 )

chars[i,j] = string_char_at( text, random_range( 1, string_length( text ) ) );

?
Odnośnik do komentarza
Udostępnij na innych stronach

GML
litery="abcdefghijklmnoprstuwxyz";

zdanie = "QWERTYUIOP ";

_dlugosc = string_length(zdanie);

_temp=0;

 

for (i=0; i<_dlugosc; i+=1)

{

chars=string_char_at(zdanie,i);

}

 

for (i=0; i<=9; i+=1)

{

for (j=0; j<=9; j+=1)

{

_temp=random(10);

if (_temp > 5)

{

tab_gdzie[i,j]=string_char_at(litery,abs(random_range(0,23)));

}

else

{

tab_gdzie[i,j]=chars[abs(round(random(_dlugosc)-1))];

}

}

 

}

I masz pewna losowość ;)

 

EDIT: SHIT ;/ Do dupy rozwiazanie bo może wszystkich liter ze zdania nie podać ;P

Odnośnik do komentarza
Udostępnij na innych stronach

Znaki w stringu indeksuje się od 1. Jeśli random_range jest od 0 do 23 to nie ma potrzeby dawać abs, to już będą dodatnie liczby. No i po co Ci mieszać coś co jest wymieszane? Nie ma potrzeby używania random kilka razy dla większej losowości.

Odnośnik do komentarza
Udostępnij na innych stronach

...

 

Tablica musi być tej samej wielkości co długość tekstu, żeby zadziałało. Ewentualnie można dać jakiś ogranicznik (tzy. zmienną przechowującą długość danego stringa) i operować na tablicy. Może być jednowymiarowa, dodawanie drugiego wymiaru tylko utrudni sprawę.

Odnośnik do komentarza
Udostępnij na innych stronach

GML
text = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec iaculis egestas dui iaculis volutpat.';

 

for( i = 0; i < 10; i += 1 )

for( j = 0; j < 10; j += 1 )

chars[i,j] = '';

 

n = 0;

while( n < string_length( text ) ) {

i = round( random( 9 ) );

j = round( random( 9 ) );

if( chars[i,j] == '' ) {

chars[i,j] = string_char_at( text, n + 1 );

n += 1;

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

GML
text = 'Lorem ipsum dolor sit amet.';

 

for( i = 0; i < 10; i += 1 )

for( j = 0; j < 10; j += 1 )

chars[i,j] = '';

 

for( n = 1; n <= string_length( text ); n += 1 ) {

do {

i = round( random( 9 ) );

j = round( random( 9 ) );

}

until( chars[i,j] == '' )

 

chars[i,j] = string_char_at( text, n );

}

 

for( i = 0; i < 10; i+= 1 ) {

for( j = 0; j < 10; j+= 1 ) {

if( chars[i,j] == '' ) {

chars[i,j] = chr( random_range( ord( 'A' ), ord( 'Z' ) ) );

}

}

}

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...