~*KM*~
Mitglied
Weil's besser aussieht, glaub mir 
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
type fengvector=class
function bewerte(x,y:integer;phi:real):integer;virtual;
private
relx,rely:real;
end;
var object:array[0..objectpix-1] of fengvector;
var bestx,besty:integer;bestphi:real;
bestwert:integer;
raumpixel:array[-minumumx..maximumx,-minimumy..maximumy] of fengvector;
procedure TryObjekt(x,y:integer;phi:real);
var i:integer;
wert:integer;
begin
wert:=0;
for i:=0 to objectpix-1 do
begin
with objectpix[i] do
begin
inc(wert,objectpix[i].bewerte(x,y,phi);
end;
end;
if wert>bestwert then
begin
bestx:=x;
besty:=y;
bestphi:=phi;
end;
end;
var x,y:integer;phi:real;
procedure tryroom;
begin
for x:=minimumx to maximumx do
begin
for y:=minimumy to maximumy do
begin
for phi:=0 to 360*winkelunterteilungen do
begin
TryObjekt(x,y,phi/winkelunterteilungen);
end;
end;
end;
end;
~*KM*~ schrieb:so, ich sag dir jetzt was, entweder du glaubst dran oder nicht,
das ist deine Sache, jetzt darfste dir jedenfalls jemand anderen suchen, der dir hilft -.-
Regelwerk schrieb:Eigentlich sollte es möglich sein, ein Programm zu schreiben welches nach einer Reihe von Regeln die Möglichkeiten bewertet.
Koordinatensystem x,y
Rotationswinkel des Objekts phi
Ansatz :
Code:type fengvector=class function bewerte(x,y:integer;phi:real):integer;virtual; private relx,rely:real; end; var object:array[0..objectpix-1] of fengvector; var bestx,besty:integer;bestphi:real; bestwert:integer; raumpixel:array[-minumumx..maximumx,-minimumy..maximumy] of fengvector; procedure TryObjekt(x,y:integer;phi:real); var i:integer; wert:integer; begin wert:=0; for i:=0 to objectpix-1 do begin with objectpix[i] do begin inc(wert,objectpix[i].bewerte(x,y,phi); end; end; if wert>bestwert then begin bestx:=x; besty:=y; bestphi:=phi; end; end; var x,y:integer;phi:real; procedure tryroom; begin for x:=minimumx to maximumx do begin for y:=minimumy to maximumy do begin for phi:=0 to 360*winkelunterteilungen do begin TryObjekt(x,y,phi/winkelunterteilungen); end; end; end; end;
Diese Variante würde den Raum in diskrete Raumpunkte unterteilen, denen man dann auch noch Beleuchtungsfaktoren (Sonne etc) hinzufügen kann.
Die Klasse fengvector ist ein Objektvektor, dem Eigenschaften zugewiesen werden können bezüglich der Umgebung. So kann der FengVektor des "Bettkopfes" eine Virtuelle Methode enthalten, die testet, ob sich dort auch ne Wand befindet wie gewünscht. (Dafür sind sicherlich mehr private Daten notwendig)
Also so ein Programm wäre schon realisierbar, das ist hier nur ein 30 sekunden hinschreib Ansatz *G*.