~*KM*~
Mitglied
Weil's besser aussieht, glaub mir
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature may not be available in some browsers.
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*.