Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Che Guevara


 Thema: Gehirnsalat ( wir unter uns )
« erste « vorherige 1 ... 447 448 449 450 [451] 452 453 454 455 ... 6582 nächste » letzte »
erste ungelesene Seite | letzter Beitrag 
Zensiert

AUP Zensiert 28.11.2007
Arr, der Ostdeutsche ist vor mir :O

Kris
21.04.2007 16:11:54  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
v!pe

Phoenix
Ich will endlich meinen CB.
21.04.2007 16:12:49  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SirSiggi

SirSiggi
Zumal man als Putzfrau wenigstens immer saubere Lösungen implementieren würde. peinlich/erstaunt
21.04.2007 16:13:13  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Zensiert

AUP Zensiert 28.11.2007
Solaris 10 ist angekommen :x

Kris
21.04.2007 16:13:22  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
 
Zitat von Zensiert

Arr, der Ostdeutsche ist vor mir :O

Kris




2 sogar :x
21.04.2007 16:14:15  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SirSiggi

SirSiggi
Naja, Rügen ist Norddeutsch und Norddeutsch ist nicht Ostdeutsch. Breites Grinsen
21.04.2007 16:15:07  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Doch doch, auch ich komme aus dunkeldeutschland.

Geboren sogar in Cottbus.


COTTBUS!
21.04.2007 16:16:28  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Zensiert

AUP Zensiert 28.11.2007
Mein Beileid.

Kris
21.04.2007 16:17:08  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SirSiggi

SirSiggi
Du bist ja schon fast Pole. Erschrocken

np: Sodom - Ausgebombt
21.04.2007 16:17:52  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Preuße :x
21.04.2007 16:18:47  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SirSiggi

SirSiggi
POLE!

Verdammt, Katzenohren sind verdammt Interessant. Das sieht immer aus wie so ne Radarschüssel die sich um 360° dreht.

np: Sodom - Baptism of Fire
21.04.2007 16:20:20  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
cms

AUP cms 14.11.2012
Pole, eindeutig: Tigga klaut Threadtitel!
21.04.2007 16:51:26  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Achse-des-boesen

Leet
 
Zitat von TriggerTG

Preuße :x

Yeah \o/
21.04.2007 16:52:42  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Polen ist doch sooo gesehen auch deutschland

chrrrr chr chr chrrr
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 21.04.2007 16:58]
21.04.2007 16:58:07  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SirSiggi

SirSiggi
verschmitzt lachen
Bzw. wärs noch wenn uns nicht so ein blöder Österreicher einen Strich durch die Rechnung gemacht hätte. mit den Augen rollend
21.04.2007 17:01:33  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
cms

AUP cms 14.11.2012
Richtig, wir sollten endlich unsere Jungs aus dem Ausland zurückholen und die Ostgebiete zurückerober!
21.04.2007 17:08:13  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
hmmm, ich hab grad ne denkblokade.

Bin grad noch an meinem Reversi. Da ist ein Bug beim schlagen (umdrehen feindlicher steine) drin.

Also ich hab das Spielbrett als zweidimensionales array:

 
PHP:
type reversi =     record 
                        table : array[1..8,1..8] of slot;
                        lastTurn : char;
                    end;



aber der code ist eigentlich wurscht wenn ich so nachdenke.

ich hab folgendes spielfeld:

das startbrett sieht so aus:

 
PHP:
  a b c d e f g h
-+-+-+-+-+-+-+-+-+
1| | | | | | | | |
-+-+-+-+-+-+-+-+-+
2| | | | | | | | |
-+-+-+-+-+-+-+-+-+
3| | | | | | | | |
-+-+-+-+-+-+-+-+-+
4| | | |O|O| | | |
-+-+-+-+-+-+-+-+-+
5| | | |X|X| | | |
-+-+-+-+-+-+-+-+-+
6| | | | | | | | |
-+-+-+-+-+-+-+-+-+
7| | | | | | | | |
-+-+-+-+-+-+-+-+-+
8| | | | | | | | |
-+-+-+-+-+-+-+-+-+
X --> Spieler Rot
O --> Spieler Gruen


wenn ich X auf D3 setze wird korrekt das eingeschlossene O umgedreht.

 
PHP:
System: X 4 1
  a b c d e f g h
-+-+-+-+-+-+-+-+-+
1| | | | | | | | |
-+-+-+-+-+-+-+-+-+
2| | | | | | | | |
-+-+-+-+-+-+-+-+-+
3| | | |X| | | | |
-+-+-+-+-+-+-+-+-+
4| | | |X|O| | | |
-+-+-+-+-+-+-+-+-+
5| | | |X|X| | | |
-+-+-+-+-+-+-+-+-+
6| | | | | | | | |
-+-+-+-+-+-+-+-+-+
7| | | | | | | | |
-+-+-+-+-+-+-+-+-+
8| | | | | | | | |
-+-+-+-+-+-+-+-+-+
Spieler Gruen (o) ist am Zug!


Neue Situation:

 
PHP:
System: X 3 2
  a b c d e f g h
-+-+-+-+-+-+-+-+-+
1| | | | | | | | |
-+-+-+-+-+-+-+-+-+
2| | | | | | | | |
-+-+-+-+-+-+-+-+-+
3| | | | | | | | |
-+-+-+-+-+-+-+-+-+
4| | |X|O|O| | | |
-+-+-+-+-+-+-+-+-+
5| | | |X|X| | | |
-+-+-+-+-+-+-+-+-+
6| | | | | | | | |
-+-+-+-+-+-+-+-+-+
7| | | | | | | | |
-+-+-+-+-+-+-+-+-+
8| | | | | | | | |
-+-+-+-+-+-+-+-+-+
Spieler Gruen (o) ist am Zug!


Das X auf C4 hätte er nicht setzen dürfen, da kein stein eingeschlossen wird.


Also kurz gesagt, meine Funktion um zu checken, ob gegnerische spielsteine eingeschlossen sind funktioniert nicht korrekt.

Ich weiß auch genau, dass es so nicht 100%ig gehen kann, mir fällt aber keine richtige möglichkeit ein.

Vielleicht hat ja jemand ne idee wie man das iterativ gut lösen könnte (PASCAL)

// Sind Gegnersteine eingeschlossen, so dass welche geschlagen werden können? 
	// Direction: "+x" | "-x" | "+y" |
 "-y"  | "+x+y" | "-x-y" | "-x+y" | "+x-y" um nach rechts, links, oben, unten, diagonal rechts oben, diagonal links unten,
 diagalonal links oben, diagonal rechts unten, zu suchen
	function isEnemyIncluded(r : reversi; t : turn; direction : string) : boolean;
	var i,j : integer;
		{s : char;}
	begin
		isEnemyIncluded := false;
		
		// s ist der jeweilige Gegnerchar
		{s := inverseChar(t.c);}
		
		// Horizontal
		if direction = '+x' then begin
			i := t.x+1;
			while (i <= 8) {and (r.table[i, t.y] = s)} do begin
				if (r.table[i, t.y] = t.c) then isEnemyIncluded := true;
				i := i+1
			end
		end else if direction = '-x' then begin
			i := t.x-1;
			while (i > 0) {and (r.table[i, t.y] = s)} do begin
				if (r.table[i, t.y] = t.c) then isEnemyIncluded := true;
				i := i-1
			end
		// Vertikal
		end else if direction = '+y' then begin
			i := t.y+1;
			while (i <= 8) {and (r.table[t.x, i] = s)} do begin
				if (r.table[t.x, i] = t.c) then isEnemyIncluded := true;
				i := i+1
			end			
		end else if direction = '-y' then begin
			i := t.y-1;
			while (i > 0) {and (r.table[t.x, i] = s)} do begin
				if (r.table[t.x, i] = t.c) then isEnemyIncluded := true;
				i := i-1
			end
		// Diagonal
		end else if direction = '+x+y' then begin
			i := t.x+1;
			j := t.y+1;
			while (i <= 8) and (j <= 8) {and (r.table[i,j] = s)} do begin
				if (r.table[i,j] = t.c) then isEnemyIncluded := true;
				i := i+1;
				j := j+1
			end
		end else if direction = '-x-y' then begin
			i := t.x-1;
			j := t.y-1;
			while (i > 0) and (j > 0) {and (r.table[i,j] = s)} do begin
				if (r.table[i,j] = t.c) then isEnemyIncluded := true;
				i := i-1;
				j := j-1
			end
		end else if direction = '+x-y' then begin
			i := t.x+1;
			j := t.y-1;
			while (i <= 8) and (j > 0) {and (r.table[i,j] = s)} do begin
				if (r.table[i,j] = t.c) then isEnemyIncluded := true;
				i := i+1;
				j := j-1
			end
		end else if direction = '-x+y' then begin
			i := t.x-1;
			j := t.y+1;
			while (i > 0) and (j <= 8) {and (r.table[i,j] = s)} do begin
				if (r.table[i,j] = t.c) then isEnemyIncluded := true;
				i := i-1;
				j := j+1
			end	
		
		end		
	end;



Der Komplette Source-Code:
http://trac.triggertg.de/reversi/browser

Die Kompilierte datei ist auch drin
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von TriggerTG am 21.04.2007 17:31]
21.04.2007 17:27:00  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
äh also nochmal ganz kurz gesagt:

ich will in nem 8x8 array das als inhalt entweder 'r', 'g' oder '' enthält gucken, ob ein gewisses r (koordinaten gegeben) in irgendeine richtung direkt und ohne leere felder eins oder mehrere g's einschliesst
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 21.04.2007 17:36]
21.04.2007 17:33:14  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
FoxHunter

foxhunter2
tuts da nicht sowas wie coord[x+1]="g", coord[x-1]="g" etc`?
21.04.2007 17:45:37  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
ne muss er ja das komplette spielfeld horizontal, vertikal und diagonal durchlaufen.

das tut er ja eigentlich.


Also nochmal gedanken zusammenfassen:

ich hab vom Spielzug die X und Y koordinaten.

da laufe ich beispielsweise mit ner whileschleife nach rechts los


while (gegnerspielstein) do begin
x+1
if (eigener spielstein) funktion = true
end


aber auf den eigenen spielstein trifft er ja glaub ich nicht, da die whileschleife nur fremde spielsteine abklappert o.O
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von TriggerTG am 21.04.2007 17:54]
21.04.2007 17:51:04  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
rABBI

Arctic
for dx:=-1 to +1 do
 for dy:=-1 to +1 do
  if check_direction(feld,x,y,dx,dy) then er_darf_das:=true; 
 end
end


und die funktion check_direction sieht ungefähr so aus:

function check_direction(feld,start_x,start_y,dx,dy):boolean;
 farbe:=feld[x,y];
 kriterium:=gegenteil[farbe];
 x:=start_x+dx;
 y:=start_y+dy;
 check_direction:=false;
 repeat
  x:=x+dx;
  y:=y+dy;
  if ((not (x in [1..8]))or(not(y in [1..8]))) then break;  
  if feld[x,y]=" " then break;
  if feld[x,y]=kriterium then begin check_direction:=true; break; end;
 until false;
end


so ungefähr sollte es ganz gut gehen.

€: [m] eingefügt. klar soweit? das entkoppelt den prüfvorgang, der mit dx und dy in eine beliebige richtung gelenkt wird. pascal ist eben ein bisschen hässlich, aber man lern ordentlich zu modularisieren, weil es sonst unmachbar wird. esseidenn man hat ein faible für if-partys mit 800 gästen. :-\
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von rABBI am 21.04.2007 18:03]
21.04.2007 18:00:06  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
ahhhhhhhhhhhhhh das ist ein sehr guter ansatz. Danke!

e\ mir ist nämlich auch keine gute lösung eingefallen, das gescheit abzukapseln
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 21.04.2007 18:05]
21.04.2007 18:05:13  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Renga

renga
Schalalala lalalalalala!
Gibts hier eigentlich keine Fußball Fans?
21.04.2007 18:29:55  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SirSiggi

SirSiggi
Ich denke Peacemaker hat sich hier schonmal freiwillig dieser Unterschicht zugeordnet.
21.04.2007 18:31:06  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Renga

renga
 
Zitat von SirSiggi

Unterschicht



mit den Augen rollend
21.04.2007 18:34:44  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Renga

renga
Das regt mich doch grad schon wieder auf.
Hausaufgaben, Arbeiten und Lektuere lesen.
Und alles moeglichst noch am Wochenende.
21.04.2007 18:40:54  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
[DK]Peacemaker

[dk]peacemaker
Ich bin stolzer Alemannia-Fan, seit 4 Jahren Aber kein Stadion-Gänger. Nur bisher zwei Spiele gesehen, eins war Borussia MG gegen irgendwen (damals 0:0) und Aachen gegen Nürnberg in der zweiten Liga. Jenes Spiel wurde annuliert und als Geisterspiel ausgetragen, da Fans Gegenstände auf das Spielfeld geworfen haben.
21.04.2007 18:41:35  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Renga

renga
Bin auch kein wirklicher Stadiongaenger, nur wenn ich mal Zeit habe oder Karten geschenk bekomme bzw. angeboten von Freunden.
Trotzdem seit gut 9 Jahren Stuttgart Fan.
21.04.2007 18:44:08  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Nochmals vielen Dank an Rabbi, sein Ansatz hat mich letztenendlich auf das richtige Ergebnis gebracht:

 
PHP:
// Sind Gegnersteine eingeschlossen, so dass welche geschlagen werden können? 
    function isEnemyIncluded(r : reversi; t : turn) : boolean;
    var dX,dY : integer;
    begin
        isEnemyIncluded := false;
        writeln('Debugging: isEnemyIncluded (X/Y/Bool)');
        for dX := -1 to +1 do begin
            for dY := -1 to +1 do begin
                if checkDirection(r, t, dX, dY) then isEnemyIncluded := true; 
                writeln(dX, ':', dY, ' : ', checkDirection(r, t, dX, dY));
            end
        end
    end;
    
    // Hilfsfunktion für isEnemyIncluded: Bestimmte richtung (dx/dy) auf eingeschlossene Gegner überprüfen
    function checkDirection(r : reversi; t : turn; dX,dY : integer) : boolean;
    var s : char;
        x,y : integer;
        mayBeTrue : boolean;
    begin
        // s ist der jeweilige Gegnerchar
        s := inverseChar(t.c);
        
        x := t.x + dX;
        y := t.y + dY;

        checkDirection := false;
        mayBeTrue := false;

        repeat
            if (not(x in [1..8]) or not(y in [1..8])) then break;  
            
            if (r.table[x, y] = ' ') then break;
            
            if (r.table[x,y] = s) then mayBeTrue := true; 
            
            if mayBeTrue and (r.table[x,y] = t.c) then begin 
                checkDirection := true;
                break
            end;
            
            x := x + dx;
            y := y + dy;
            
         until checkDirection = true;
    
    end;





 
Code:
Spieler Rot (x) ist am Zug!
 >> Eingabe: xc3
Debugging: isEnemyIncluded (X/Y/Bool)
-1:-1 : FALSE
-1:0 : FALSE
-1:1 : FALSE
0:-1 : FALSE
0:0 : FALSE
0:1 : FALSE
1:-1 : FALSE
1:0 : FALSE
1:1 : TRUE
g
jetzt erfolgt das schlagen
System: X 3 2
  a b c d e f g h
-+-+-+-+-+-+-+-+-+
1| | | | | | | | |
-+-+-+-+-+-+-+-+-+
2| | | | | | | | |
-+-+-+-+-+-+-+-+-+
3| | |X| | | | | |
-+-+-+-+-+-+-+-+-+
4| | | |O|O| | | |
-+-+-+-+-+-+-+-+-+
5| | | |X|X| | | |
-+-+-+-+-+-+-+-+-+
6| | | | | | | | |
-+-+-+-+-+-+-+-+-+
7| | | | | | | | |
-+-+-+-+-+-+-+-+-+
8| | | | | | | | |
-+-+-+-+-+-+-+-+-+
Spieler Gruen (o) ist am Zug!
 >> Eingabe: oc4
Debugging: isEnemyIncluded (X/Y/Bool)
-1:-1 : FALSE
-1:0 : FALSE
-1:1 : FALSE
0:-1 : FALSE
0:0 : FALSE
0:1 : FALSE
1:-1 : FALSE
1:0 : FALSE
1:1 : FALSE
System: e 3 2
  a b c d e f g h
-+-+-+-+-+-+-+-+-+
1| | | | | | | | |
-+-+-+-+-+-+-+-+-+
2| | | | | | | | |
-+-+-+-+-+-+-+-+-+
3| | |X| | | | | |
-+-+-+-+-+-+-+-+-+
4| | | |O|O| | | |
-+-+-+-+-+-+-+-+-+
5| | | |X|X| | | |
-+-+-+-+-+-+-+-+-+
6| | | | | | | | |
-+-+-+-+-+-+-+-+-+
7| | | | | | | | |
-+-+-+-+-+-+-+-+-+
8| | | | | | | | |
-+-+-+-+-+-+-+-+-+
Spieler Gruen (o) ist am Zug!
 >> Eingabe: ogh
System: e 3 2
  a b c d e f g h
-+-+-+-+-+-+-+-+-+
1| | | | | | | | |
-+-+-+-+-+-+-+-+-+
2| | | | | | | | |
-+-+-+-+-+-+-+-+-+
3| | |X| | | | | |
-+-+-+-+-+-+-+-+-+
4| | | |O|O| | | |
-+-+-+-+-+-+-+-+-+
5| | | |X|X| | | |
-+-+-+-+-+-+-+-+-+
6| | | | | | | | |
-+-+-+-+-+-+-+-+-+
7| | | | | | | | |
-+-+-+-+-+-+-+-+-+
8| | | | | | | | |
-+-+-+-+-+-+-+-+-+
Spieler Gruen (o) ist am Zug!
 >> Eingabe: ob2
Debugging: isEnemyIncluded (X/Y/Bool)
-1:-1 : FALSE
-1:0 : FALSE
-1:1 : FALSE
0:-1 : FALSE
0:0 : FALSE
0:1 : FALSE
1:-1 : FALSE
1:0 : FALSE
1:1 : TRUE
r
jetzt erfolgt das schlagen
System: O 3 3
  a b c d e f g h
-+-+-+-+-+-+-+-+-+
1| | | | | | | | |
-+-+-+-+-+-+-+-+-+
2| |O| | | | | | |
-+-+-+-+-+-+-+-+-+
3| | |X| | | | | |
-+-+-+-+-+-+-+-+-+
4| | | |O|O| | | |
-+-+-+-+-+-+-+-+-+
5| | | |X|X| | | |
-+-+-+-+-+-+-+-+-+
6| | | | | | | | |
-+-+-+-+-+-+-+-+-+
7| | | | | | | | |
-+-+-+-+-+-+-+-+-+
8| | | | | | | | |
-+-+-+-+-+-+-+-+-+
Spieler Rot (x) ist am Zug!
 >> Eingabe:

21.04.2007 19:06:33  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
rABBI

Arctic
INSERT OR REPLACE INTO dumpdb.user_overview (SELECT * FROM user_overview);


was zur hölle ist an diesem sqlquery falsch? und da hier behauptet wurde, die fehlermeldungen seien hilfreich: "near "SELECT": syntax error"

tigga, gern geschehen.
21.04.2007 19:08:53  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: Gehirnsalat ( wir unter uns )
« erste « vorherige 1 ... 447 448 449 450 [451] 452 453 454 455 ... 6582 nächste » letzte »

mods.de - Forum » Webdesign & Coding » 

Hop to:  

Thread-Tags:
Mod-Aktionen:
23.08.2018 12:40:15 TriggerTG hat den Thread-Titel geändert (davor: "Wiederbelebungssalat")
09.03.2017 08:55:19 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")
21.05.2014 16:08:26 Redh3ad hat den Thread-Titel geändert (davor: "Hochzeitssalat")
10.05.2014 09:43:28 Redh3ad hat den Thread-Titel geändert (davor: "Gehirnsalat")
19.10.2013 21:43:03 [DK]Peacemaker hat diesen Thread repariert.
04.10.2013 20:11:45 TriggerTG hat den Thread-Titel geändert (davor: "Damiferkel-Salat")
29.08.2013 19:59:27 [DK]Peacemaker hat den Thread-Titel geändert (davor: "HerpDerpSalat")
19.08.2013 10:04:19 TriggerTG hat den Thread-Titel geändert (davor: "SirSiggiSalat")
13.08.2013 18:43:13 TriggerTG hat den Thread-Titel geändert (davor: "Kamelwochensalat")
05.08.2013 09:47:37 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")
24.06.2013 16:30:39 TriggerTG hat den Thread-Titel geändert (davor: "cmssalat")
20.06.2013 12:58:35 TriggerTG hat den Thread-Titel geändert (davor: "Krissalat")
13.06.2013 10:59:25 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")
08.06.2013 11:28:06 TriggerTG hat den Thread-Titel geändert (davor: "rABBIntensalat")
03.06.2013 09:56:52 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")

| tech | impressum