Eszköztár
63 Kezdőlap - Webszerkesztés - JavaScript - Mintázat
ujdomainek.hu

Mintázat

Zsonglőrködés a kifejezésekkel

Feladat

A programozás során rendszeresen előfordul, hogy bizonyos cél -leginkább látvány - eléréséhez már-már "zsonglőrködni" kell a matematikai, illetve aritmetikai kifejezésekkel. Ez azt jelenti, hogy egy, vagy néhány változót (pl. ciklusváltozót) felhasználva olyan új értékeket állítsunk elő, melyek lehetővé teszik alakzatok, színátmenetek, majd később mozgások, szimulációk ábrázolását. E jelenlegi feladat éppen ezt hivatott érzékeltetni, illetve gyakoroltatni.

Az alábbiakban két oszlopban különféle ábrák láthatóak, pontokból kirakva. Az első ábrát a következő kódrészlet alkotja meg:

	<style>

	    table.matrix tr td
	    {
		width            : 8px   ;
		height           : 8px   ;
	    }

	    div.pont
	    {
		width            : 8px   ;
		height           : 8px   ;
		border-radius    : 50%   ;
		background-color : #66A  ;
	    }

	</style>

	<script>

	    document.write("<table class='matrix' cellpadding=0>")
	    for( i=0 ; i<=15 ; i++ )
	    {
		document.write("<tr>")
		for( j=0 ; j<=15 ; j++ )
		{
		    document.write("<td>")
		    if(1)
		    {
			document.write("<div class='pont'></div>")
		    }
		    document.write("</td>")
		}
		document.write("</tr>")
	    }
	    document.write("</table>")

	</script>
	

Az Ön feladata, hogy a kódrészlet - piros kiemeléssel jelzett - feltételének változtatásával készítse el a többi egyszínű ábrát megvalósító programot is. Ehhez új sorokat semelyik esetben nem szükséges beszúrnia a programba.

A jobb oldali, színes ábrák az egyszínű változat továbbgondolásai. Színezéssel hozza létre az így kialakítható látványt is. Ebben az esetben a - barna színnel jelölt - legbelső kapcsos zárójel tartalmát kell bővítenie, akár új változók bevezetésével is.

1. Négyzet 16x16 pontból:
2. Háromszög 16x16 pontból:
3. Pöttyös:
4. Zászló:
5. Felnégyelve:
6. Kereszt:
7. Rombusz:
8. Csokornyakkendő:
9. Négyzetek a négyzetben:
10. Fenyőfa:
előző oldal random oldal következő oldal


Eddig 6 hozzászólás van a témához:

2020-12-17 10:14 Fruzsina A 16x16-os négyzet (1. ábra) a megadott kóddal valóban remekül működik. Azonban már a 2. ábrán lévő háromszöget sem tudtam megoldani a pirossal kiemelt if(1) érték változtatásával. Szükségem volna még egy kis segítségre.. Előre is nagyon szépen köszönöm! Fruzsina

2020-12-17 21:48 Admin if( i>=j )

:)

2021-04-20 15:37 Andi A színes négyzetek közül egyhez kaphatnák segítséget? Mert egész egyszerűen nem boldogulok a színkódokkal a for cikluson belül.
Köszönettel
Andi

2021-05-01 10:51 Admin Kedves Andi,

a színezéshez a Színtábla című feladatban található segítség.


2022-01-08 18:38 B.Zsolt Az egyszínű verzióból végre sikerült mindet megcsinálnom (a 2 utolsó elég sokára sikeredett, de csak meglettek azok is). :)

Az egymásba ágyazott négyzetek mintázat csak ilyen bonyolultan állítható elő vagy van rá egyszerűbb, rövidebb megoldás is?!
Nekem ezt sikerült kitalálnom hozzá:
(y >= ... && y < = ... && !(x%2)) || (y >= ... && ... < = x && y%2) ||
(x >= ... && x < = ... && !(y%2)) || (x >= ... && ... < = y && x%2)

És uez lenne a kérdésem a fenyővel (karifa) kapcsolatban is.
Ahhoz ilyet találtam ki:
((0 >= 2*... - ... && x < = ...) || (0 < = ... - 2*... && x >= ...)) && y < = ... || Math.abs(...) < 1 // az utolsó a fatörzset rajzolja ki

2022-01-08 18:56 B.Zsolt Közben rájöttem, hogy a karácsonyfa fatörzs részéhez tudok egyszerűbb (rövid) modulo-s megoldást is, amit a zászlónál használtam; a faágas részéhez pedig elég lenne egy csonkagúlát kirajzoltatni 1 lépésben, ha az úgy lehetséges.




Új hozzászólás:
E-mail cím:


Erre a címre küldjük ki a hozzászólás jóvá- hagyásához szükséges linket. Az e-mail címet sehol nem tesszük közzé.

Név:


Ez a név fog megjelenni az Ön hozzászólásai mellett.

Mennyi tizenkettő + hat?
Számjegyekkel írja be!



Ez a robotok beírása elleni védelem miatt szükséges ellenőrzés.


© infojegyzet.hu, 2019. november