Tetris Logikaufbau
lima-city → Forum → Programmiersprachen → Java
bauteil
brauch
code
drehen
falle
file
http
problem
programm
quellcode
reihe
schleife
spielerei
stein
swing
system
takt
tip
url
wand
-
Hej leudz,.
Habe mit Java mal ein Tetris programmiert, leider noch ein wenig verbuggt,..
habe die Bauteile als JComponent gemacht,.und hinzugefügt,.
Mittels 4x4 großer Matrix, habe ich diese gezeichnet:
Hier Bsp für ein Würfel,.
brick[0][0]=0;brick[1][0]=0;brick[2][0]=0;brick[3][0]=0; brick[0][1]=0;brick[1][1]=0;brick[2][1]=0;brick[3][1]=0; brick[0][2]=1;brick[1][2]=1;brick[2][2]=0;brick[3][2]=0; brick[0][3]=1;brick[1][3]=1;brick[2][3]=0;brick[3][3]=0;
Wenn jetzt eine reihe gelöscht wird,.werden die 1 auf der Reihe auf 0 gesetztn,.und alle EINSEN oberhalb um eine stelle nach unten verschoben ^^
Man kann sich vllt jetzt nicht viel darunter vorstellen =) i know =)
aber es ist zumindest eine umständliche Variante,.
Will jetzt das ganze neu schreiben,.
und möchte gern wissn wie man das am besten realisiert,..um die Reihen sinnvoll zu eleminiern =)
habe meine Verision mal auf RS geupped,.
http://rapidshare.com/files/340706607/tetris.jar
Known buggs:
1 Reihe funktioniert,.ab 2 gibts probs,.
Drehen in Wand möglich,,
Punkte system fürn Ar***
Drum will ich njetzt das ganze fein säuberlich neu machen =)
Wäre cool wenn mir jemand paar Tipps geben könnte,,.. =)
Grüße
Knoi
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
ich versteh nicht warum du das als umständlich bezeichnest
es ist doch schon die einfachste variante
ich würde es nicht anders machen
du hast ein Feld[x][y]
der fallende stein wandert durch das fällt
bis er aufschlägt
wenn eine reihe gelöscht wird
werden alle oberen nach unten verschoben
und das für jede zerstörte reihe einzeln
am besten fängst du oben an
schleife yEx=0 to maxY wenn explo(yEx)=true schleife y=0 bis yEx-1 schleife x=0 bis maxX schiebe f(x)(yEx-y)=f(x)(yEx-1-y)
der stein der runter fallen kann ist maximal 3x3
aber vor dem drehen musst du halt immer prüfen ob das drehen möglich ist
strukturiert würd ich wohl jeden stein der fallen kann als individuelles objekt betrachten
das würde mehr schreib arbeit bedeuten als eine universal lösung
aber unter umständen besser und auch nicht langsamer in der ausführung
eventuell sogar schneller -
Ok,..also du hast eig meine Theorie bestätigt ^^
Nj,.. habs vorher aber falsch aufgebaut, da ich die Teile mit JComponent realisiert habe =)
das ergab bei der Darstellung probleme =)
Das mit dem Drehen, habe ich als eigenen Objekt realisiert =)
Mit Schreibarbeit ahste recht =) sind bei mir 20 A4 Seiten Quellcode (komplette Programm)
zu deim 3x3 kann ich dir nichtzustimmen,.
da ja eine stange mit 4*1 dabei ist =/
so sinds halt 4x4
Das lustige an dem System ist dass man mit leichtigkeit eigene Bauteile verwenden kann =)
Werd mich nun mal weiter an meiner Neukonstruiktion zu schaffen machen =)
ergebniss wird natürlich geposted =)
Aber wenn ich schon mal dabei bin,..habe den "Takt" mittels Swing-Timer realisiert.
Diese version geht aber dann nicht fürs Handy =/
wie lässt sich dieses anders realisiern, um das für JavaME zu machen?
-
du kannst doch einfach sowas wien time stap nehmen also so benutz ich timer
also system zeit
das müsste n handy doch auch kennen
if Ytime<SysTimeNow+Yspeed then Ytime=now bla mach was ja das end if
blockiert das programm während des swing takts?
also friert es ein wie bei sleep
wenn ja würd ich so oder so davon abraten
weil das programm ansprech bar sein muss
threads sind gar nich nötig
hm grad nochmal in die klasse gekuckt
naja halte die für überflüssige spielerei
is halt nur für events gesteuertes zeug brauchbar
und sowas brauch ich gewöhnlich nich
ich brauch nur die systemzeit als takt ^^
eine riesen lösung für so kleine probleme ^^
ich hasse oop XD
ps:
stimmt bei tetris gibs ja 4x1 er steine
wenn de böcke hast kannste dir ja mal mein columns ankucken
das geht aber nur unter win oder mit emu
Beitrag zuletzt geändert: 30.1.2010 21:23:29 von aero23 -
So,.
hab jetzt mal den Grundaufbau meines programms gemacht =)
Kann jetzt Schon bausteine drehn =) Und beseitigt dass man in die Wand reindrehn kann =)
http://rapidshare.com/files/344214082/Wintetris.rar
Angucken und kritisieren =)
Bin für alle Tipps dankbar.
Steinkollision wird nocht NICHT abgefangen, und ist somit noch kein Spiel =)
EDIT:
Kann bei diversen Styles noch zu Problemen kommen, da noch null-Layout verwendet
Beitrag zuletzt geändert: 1.2.2010 9:04:00 von knoi -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage