ºô¯¸¤º®e
¬ÛÃö³sµ²¨ä¥L³sµ²¨Ï¥ÎªÌPowered By |
AI-code ¤¤¨Ï¥Î FreePascal ªº¤èªkµêÀÀ¾÷±ñ¤H¨¬²y¤ñÁɩұĥΪº¤ñÁɨt²Î AI-Code ¤¤, ¥Ø«e¥u¤ä´©¨ä¥»¨ªº¹Ï§Îµ{¦¡¤¶±¤ÎC++¨âºØ½sµ{¤èªk¡C ¹ï©ó³¡¥÷¨S¦³¾Ç C ªº¾Ç¥Í¥i¯à·|³y¦¨¤@©wªº§xÃø¡C¦Ó¥»¤H¸g¤ÀªR¸Ó¨t²Î«á, µoın§â¥¦ÂX®i¨Ï¥Î¨ä¥L»y¨¥, ¹ê¦b¥ç¤£¬OÃø¹ê, ¥H¤U¬O§Ú±N¥¦ÂX®i¨Ï¥Î FreePascal ªº¨Ò¤l, ¤j®a¥i¥H°Ñ¦Ò°Ñ¦Ò¡C FreePascal ÂX®i²³æ¨Ó»¡, °µªk¬O¥Î FreePascal ¨Ó«Ø¥ß¤@Ó object ÀÉ, ¦Ó¥Dnªºµ{¦¡³£¦b³o object Àɤº, ³oÓ±¡ªp¤U, §ÚÌÁÙ¬O»Ýn¤@Ó C++ ªºÀÉ®×, ¸ÓÀɮװߤ@ªº§@¥Î¥u¬O©I¥s Pascal ªºµ{¦¡, ¹ê»Ú¤W¥u¬OÓ´ß¡C¥H¤U¬O¨t²Îªº§ï¸Ë¤Î FreePascal µ{¦¡ªº½s¼g¤èªk¡C ½s͍t²Îªº¥[¤u¬°¤F¨Ï¾ãÓ½s͹Lµ{¥i¥H¸û¦Û°Ê¤Æ, §Ú³s FreePascal ªº½sͳ¡¥÷³£¥[¶iì¨Óªº¨t²Î¤º,
³o¶µ¤u§@¥u»Ýn×§ï¤@Ó bat ÀÉ´N¥i¥H, ³oÓÀɬO ¥H¤U¬O¸g×§ï«áªº echo ¥¿¦b½sĶ %1\%2.c set GCC=%cd%\..\..\gcc set path=%path%;%GCC%\bin rem ¥H¤U½Ð´«¤W§A¹q¸£¤º ppc386 (©Î fpc) ªº°õ¦æ¸ô®| set FPC=C:\pp\bin\win32\ppc386 set ROBOEXP_ROOT=%cd%\..\..\..\.. set SOURCE_PATH=%1 cd .\.. set AIRCJ=runtime set SOURCE_FILE=%1\%2.c rem ---------------------------------- rem Àˬd¬O§_¦³ pascal ªºÀɮצí¦b if not exist %1\%2.pas goto compliegcc set SOURCE_FILE=%SOURCE_FILE% %2.o copy /y %1\%2.pas . FPC %2.pas set errorl=%errorlevel% del %2.pas if not %errorl%==0 goto error rem ---------------------------------- :compilegcc g++ -shared -o %1\%2.dll -I"%ROBOEXP_ROOT%\Robots\RCJ\Include" -I%1 -I"%AIRCJ%\c\include" -I"%AIRCJ%\c\src\roboexp\virtual" %SOURCE_FILE% %AIRCJ%\c\src\roboexp\virtual\*.c "%AIRCJ%\c\lib\airobot_c.a" if not %errorlevel%==0 goto error echo ½sͦ¨¥\ goto end :error echo ½s͹Lµ{¥X²{¿ù»~ ½ÐÀˬdµ{¦¡ :end ½s¼gµ{¦¡½s¼gµ{¦¡³£¥÷³£n½s¼g¨âÓµ{¦¡, ¤@Ó¬OªÅ´ßªº C++ µ{¦¡, ³oÓµ{¦¡¥i¥H¥Î¾÷±ñ¤H§Ö¨®ªº¨t²Î¨Ó²£¥Í, ¨ä¤º®e¦p¤U¡C¥¦°ß¤@ªº§@¥Î´N¬O¥Î©I¥s§A¥Î Pascal ¼gªºµ{¦¡, ¨ä¤¤ RobotMain ´N¬O§A¦b Pascal ¤º©Ò½s¼gªº¥D¨ç¼Æ, ·íµM§A¥i¥H¨Ï¥Î¨ä¥L¥ô¦ó¦W¦r³£¥i¥H¡C extern "C" void RobotMain(); int main(void) { RobotMain(); } ²Ä¤GÓµ{¦¡´N¬O FreePascal µ{¦¡¡C³oùØ, §Ú¥H¨t²Î즳´£¨Ñªº shooter §@¬°¨Ò¤l, ±N¥¦¼g¦¨ Pascal, ¨Ñ¤j®a°Ñ¦Ò¡C unit shooter; interface procedure RobotMain; cdecl; implementation function GetAttack: longint; cdecl; external; function GetCourtWidth: double; cdecl; external; function GetCourtHeight: double; cdecl; external; procedure SetKickBallTo(x, y: double); cdecl; external; procedure Robot; cdecl; var goalx, goaly, width, height: double; attack: longint; begin attack := GetAttack; width := GetCourtWidth; height := GetCourtHeight; goaly := height/2; if (attack > 0) then goalx := width else goalx := 0; while (true) do begin SetKickBallTo(goalx, goaly); end; end; begin end. ½s¼g³oÓµ{¦¡®Énª`·N¥H¤U
½s¼g Pascal µ{¦¡®É§A»Ýn¦Û¦æ¨Ï¥Î¨ä¥L¤å¦r½s¿è¾¹ (¦p: vim), ¦ý½s¼g§¹¤§«á§A´N¥i¥H¥Î¨t²Îªº¾÷±ñ¤H§Ö¨®ª½±µ¶i¦æ½sͤu§@¡C |