$B>/$7%^%K%"%C%/$JOC(B
$B$3$3$G$O%W%m%0%i%_%s%0%3%s%F%9%H$N%W%m%0%i%`$r:n$k$?$a$K$OI,MW$J$$(B
$B;(3X$H$$$&$+!"$h$j9bEY$J%W%m%0%i%_%s%0$NOC$r$7$F$$$-$^$9!#(B
$BBg3X$KF~$k$H$3$s$J$3$H(B$B$b(B$B3X$S$^$9!#(B
$BFI$_J*$H$7$F5$3Z$KFI$_?J$a$F$b$i$($?$i$H;W$$$^$9!#(B
$B$3$l$^$G$O!"$H$K$+$/%3%s%F%9%H$K;22C$G$-$k%m%\%C%H$,:n$l$l$P$$$$$H$$$&4QE@$+$i!"(B
$B;H$&L?Na$r$+$J$j9J$C$F$$$^$7$?!#(B
$B0JA0(B$B=R$Y$?$h$&$K!"
$BNc$($P!":#$^$G$OJQ?t$O!V@0?t!W$r3JG<$9$k$?$a(B int $B$H$$$&7?$7$+;H$C$F$-$^$;$s$G$7$?!#(B
$B$3$NJQ?t$N7?$O(B 1.0472 ($B&P(Bx60/180) $B$H$+!"(B0.8660 ($B-u(B3/2) $B$J$I$N>.?tE@IU$-$N?t$r07$&$3$H$,$G$-$^$;$s!#(B
$B$=$&$$$C$??t$r3JG<$7$?$$$N$G$"$l$P!"(Bdouble $B$H$+(B float $B$H$+$N(B int
$B$G$J$$JL$N7?$r;H$$$^$9!#(B
$B$^$?$3$3$G$O!"J,$+$j0W$5$rM%@h$7$F(B if $BJ8$H(B for $BJ8$7$+;H$C$F$3$J$+$C$?$N$G$9$,!"(B
$B3X9;$G$O(B while $BJ8$d(B do-while $BJ8$b=,$&$+$b$7$l$^$;$s!#(B
for $BJ8$H(B while $BJ8!"$=$l$K(B do-while $BJ8$O7+$jJV$7=hM}$r
if $BJ8$b(B else-if $B$G=q$-O"$M$k$3$H$G!"$3$N;~$O$3$&!"$3$N;~$O$3$&$H>l9gJ,$1=hM}$,e
$BI=8=<+BN$rJQ$($F$b$+$^$$$^$;$s!#(B
$B$3$3$^$G>R2p$7$F$-$?(B C/C++ $B8@8l$N%W%m%0%i%`$O!"(B
$B$_$J$5$s$,9b9;$G3X$s$G$-$?$b$N$H0oC&$7$J$$$h$&$K!"B?>/8E=-$$!"(B
$B8EE5E*$J5-K!$G=q$$$F$-$^$7$?!#(B
$B$7$+$76aBeE*$J(B C/C++ $B$N5-K!$G=q$$$F$b$+$^$$$^$;$s!#(B
$B0J2<$O%3!<%I(B 12.6 $B$r6aBeE*$J5-K!$r$7$?$b$N$G$9!#(B
$B%3!<%I(B a.1 |
void Loop(void) {
auto isGoalAheadRight = [&]() -> bool {
return (gSurTiles[1] & NEXTFLAG_TILE) || (gSurTiles[8] & NEXTFLAG_TILE);
};
auto isObstacle = [&](int n) -> bool {
return gSurTiles[n] & OBSTACLE_TILE;
};
auto AvoidModeStep = [&]() {
if (!isObstacle(5))
NaviCmd(0, 2);
else if (isObstacle(0))
NaviCmd(0, 1);
else {
NaviCmd(1, 0);
if (isTgtAhead())
AvoidMode = 0;
}
};
auto NormalModeStep = [&]() {
if (isObstacle(0)) {
NaviCmd(0, 1);
AvoidMode = 1;
} else if (isGoalAheadRight())
NaviCmd(0, 1);
else if (isTgtAhead())
NaviCmd(1, 0);
else
NaviCmd(0, 1);
};
// main
if (AvoidMode == 1)
AvoidModeStep();
else
NormalModeStep();
}
|
$B$3$l$r$I$N$h$&$KFI$a$P$$$$$N$+$O2r@b$7$^$;$s!#(B
$B%3%s%T%e!<%?8@8l$OF|!9?J2=$7$F$*$j!"MM!9$J=q$-J}$,=P$F$-$F$$$k$N$@$H$@$146$8$F2<$5$$!#(B
$B$3$N%3%s%F%9%H$K$O!"0J2<$N$h$&$J@)Ls$,$"$j$^$9!#(B
- $B5,Dj0J30$N%X%C%@%U%!%$%k$r%$%s%/%k!<%I$7$F$O$J$i$J$$(B
- $B30It$HDL?.$7$F$O$J$i$J$$(B
- Loop() $B4X?t$O(B 2011 $BG/:"$N(B PC $B$G(B 200msec $B0JFb$K=*N;$7$J$1$l$P$J$i$J$$(B
$B$7$+$7$3$l$i$O$"$/$^$G%3%s%F%9%H$K=P$k$?$a$N%k!<%k$G$9!#(B
$BNc$($P!"N&>e6%5;$N(B 100m $BAv$O?M4V$,6%$&
$BF1MM$K>e5-$N%k!<%k$KH?$7$F$$$?$H$7$F$b(B
$BM7$S$H$7$F$N
$B%3!<%I(B a.2 |
const char DLLNAME[NAMESIZE] = "$B%^%K%e%"%k%m%\%C%H(B";
#include <Windows.h>
#include <mmsystem.h>
#pragma comment(lib, "winmm.lib")
JOYINFOEX joyInfo = {};
bool bAvoid=false;
void Init(int n){
joyInfo.dwSize = sizeof(JOYINFOEX);
joyInfo.dwFlags = JOY_RETURNPOV | JOY_RETURNBUTTONS;
bAvoid=false;
}
void Loop(void) {
if (bAvoid)
goto SKIP;
do{
if (joyGetPosEx(JOYSTICKID1, &joyInfo))
goto SKIP;
} while (joyInfo.dwButtons & 0x0a);
int a, b;
a=b=0;
while(-1) {
if (joyGetPosEx(JOYSTICKID1, &joyInfo))
goto SKIP;
if (joyInfo.dwButtons & 0x04){
bAvoid=true;
goto SKIP;
}
if (joyInfo.dwButtons & 0x0a)
break;
}
if (joyInfo.dwButtons & 0x08)
a=1;
if (joyInfo.dwButtons & 0x10)
b=2;
else if (joyInfo.dwButtons & 0x20)
b=1;
NaviCmd(a,b);
return;
SKIP:
NaviCmd(0,0);
}
|
$B%m%\%C%H$O(B X, Y, B $B5Z$S(B LB, RB $B%\%?%s$GA`=D$7$^$9!#(B
Loop() $B4X?t$O(B Y $B$b$7$/$O(B B $B%\%?%s$r!VN%$7$F$+$i2!$9!WA`:n$K$h$C$FH4$1$^$9!#(B
RB $B$^$?$O(B LR $B%\%?%s$G@{2sJ}8~$r;XDj$7$?$&$($G!"(B
Y $B$^$?$O(B B $B$N%\%?%s$r2!$9$H%m%\%C%H$O0lJbF0$-$^$9!#(B
$B$3$N%W%m%0%i%`$G$O!"(BY $B$^$?$O(B B $B$N%\%?%s$,2!$5$l$k$N$rBT$AB3$1$k$?$a!"(B
200msec $B0JFb$K=hM}$r=*$($k$H$$$&K\Mh$N@)Ls$K0cH?$7$F$$$^$9!#(B
$B$=$N$?$a!"(BGUI $BA`:n$,0l@Z8z$+$J$/$J$j$^$9!#(B
GUI $BA`:n$r$7$?$/$J$C$?$i(B X $B%\%?%s$r2!$7$F!"0J9_$N(B Loop() $B4X?t$O$9$0H4$1$k$h$&$K$7$^$9!#(B
A $B%\%?%s$d==;z%-!<$O?7HG$G$O%7%9%F%`$,;H$C$F$$$^$9!#(B
$B4V0c$C$F2!$9$H!"$=$A$i$,F0$/$+$b$7$l$^$;$s!#(B
$B%3!<%I(B a.2 $B$N>\:Y$J2r@b$O$7$^$;$s$,!"(B
$B%3!<%I
$B%3!<%I(B a.2 $B$N2+?'ItJ,$N%U%l!<%:$K$D$$$F@bL@$7$^$7$g$&!#(B
$B%8%g%$%Q%C%H$N%\%?%s$N>uBV$O!"!V2!$7$F$$$k!W$+!V2!$7$F$$$J$$$+!W$N$I$A$i$+$G$9!#(B
1 $B$H(B 0 $B$G9=@.$5$l$k%G%8%?%k$J>pJs$J$N$G$9!#(B
$B%8%g%$%Q%C%I$K$O(B X, Y, B, LB, LR $B$NB>$K(B A, start, back $B$=$l$K:81&%9%F%#%C%/(B (Lstick, Rstick)
$B$H$$$C$?%\%?%s$,$"$j$^$9!#(B
$B$3$l$i$N%\%?%s$N(B on/off $B>uBV$O$9$Y$F(B 1/0 $B$H$$$&7A$G(B joyInfo.dwButtons $B$K3JG<$5$l$F$$$^$9!#(B
$BBt;3$N(B 1 $B$d(B 0 $B$,$R$H$D$NJQ?t$KF~$C$F$$$k$N$G!"MW$OFs?JK!$G$9!#(B
$B>pJs(B I $B$J$I$G=,$C$?$O$:$G$9!#(B
$B3F%\%?%s$N>uBV(B (1/0) $B$O!"0J2<$N$h$&$JJB$S$GF~$C$F$^$9(B
($B%8%g%$%Q%C%H$K$O>e=R$7$?%\%?%s$NB>$K!"==;z%-!<$H$+(B Rstick, Lstick $B$N79$-!"(BLT, RT $B%\%?%s$J$I$b$"$j!"(B
$B$=$l$i$O(B joyInfo.dwButtons $B0J30$NJ}K!$G
$B%S%C%H(B | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
$B%\%?%s(B |
Rstick | Lstick | start | back | RB | LB | Y | X | B | A |
$B$I$N%\%?%s$b2!$5$l$F$J$$$HFs?JK!$G(B 0000000000$B!"$9$J$o$A(B 0 $B$,$3$NJQ?t$KF~$j$^$9!#(B
X $B%\%?%s$@$1$,2!$5$l$?>l9g!"(B0000000100 $B$,F~$j$^$9!#(B
$B$3$l$O==?JK!$G$O(B 4 $B$KAjEv$7$^$9!#(B
$BJ#?t$N%\%?%s!"Nc$($P(B X $B%\%?%s$H(B Y $B%\%?%s!"$=$l$K(B RB $B%\%?%s$,2!$5$l$?>l9g$O!"$=$l$>$l$KBP1~$7$?(B
$B%S%C%H$,(B 1 $B$K$J$j(B 0000101100 $B$,F~$j$^$9!#(B
$B$3$l$O==?JK!$@$H(B 44 $B$G$9$,!"IaDL$O07$$$d$9$5$N$?$a$K!"(B16 $B?JK!$G(B 2c $B$HI=8=$7$^$9!#(B
$B$5$F$3$3$G(B X $B%\%?%s$,2!$5$l$F$$$k$+$I$&$+$rCN$j$?$$$H$7$^$9!#(B
joyInfo.dwButtons $B$,(B 4 $B$+$I$&$+$r8+$F$b%@%a$G$9!#(B
X $B%\%?%s$@$1$,2!$5$l$F$$$l$P(B 4 $B$K$J$j$^$9$,!"B>$N%\%?%s$b0l=o$K2!$5$l$F$$$k$H!"(B
2c $B$N$h$&$K(B 4 $B$G$O$J$$JL$NCM$K$J$k$+$i$G$9!#(B
2c $B$H$$$&?tCM$NCf$N3:Ev$9$k%S%C%H(B (X $B%\%?%s$J$i(B 2 $B%S%C%HL\(B) $B$,(B 1 $B$+$I$&$+$rD4$Y$J$$$H$$$1$^$;$s!#(B
$B$3$&$$$&;~$KJXMx$J$N$,!"%S%C%HKh$NO@M}@Q(B (and) $B$r
$B%S%C%H(B | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
2c (44) | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
2c & 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | = 4 |
$B$3$N$h$&$KO@M}@Q$O(B 4 $B$G$9!#(B
$B$3$3F@$i$l$?CM$O(B 4$B!"$D$^$j(B 0 $B$G$OL5$$$H$$$&$3$H$,=EMW$G$9!#(B
C $B8@8l$N>r7o<0$O(B 0 $B$+(B 0 $B$G$J$$$+$GH=JL$9$k$N$G!"(Bif (joyInfo.dwButtons & 4)
$B$H=q$/$H(B X $B%\%?%s$,2!$5$l$F$$$l$P(B if $BJ8$NCf$KF~$j$^$9!#(B
Y $B%\%?%s$+(B B $B%\%?%s$+$,2!$5$l$F$$$k$+$I$&$+$rH=CG$7$?$$$H$7$^$9!#(B
$B$b$A$m$s(B if ((joyInfo.dwButtons & 8) || (joyInfo.dwButtons & 2)) $B$H=q$$$F$b$+$^$$$^$;$s(B
($B6u5$$rFI$^$J$$(B Visual Studio $B$,!V=q$-4V0c$$$G$O(B?$B!W$H$7$D$3$/7Y9p$9$k$+$b$7$l$^$;$s$,(B)$B!#(B
$B$7$+$7!"$b$C$H$9$s$J$j=q$/$3$H$b$G$-$^$9!#(B
$BN>J}$r(B 1 $B$K$7$?(B 0000001010$B!"$9$J$o$A==?JK!$G(B 10$B!"(B16 $B?JK!$G(B a $B$H$N(B and $B$r
$B%S%C%H(B | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
$B%\%?%s(B | b9 | b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | b0 |
a (10) | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
and | 0 | 0 | 0 | 0 | 0 | 0 | b3 | 0 | b1 | 0 |
joyInfo.dwButtons & 10 $B$O!"(BY $B$H(B B $B0J30$N%\%?%s$N>uBV$K$+$+$o$i$:!"(BY $B$b(B B $B$b2!$5$l$F$J$$$H(B 0 $B$G$9$,!"(B
Y $B$O2!$5$l$F$$$k(B (B $B$O2!$5$l$F$J$$(B) $B$H(B 8$B!"(BB $B$O2!$5$l$F$$$k(B (Y $B$O2!$5$l$F$J$$(B) $B$H(B 2$B!"(B
B $B$b(B Y $B$b2!$5$l$F$$$k$H(B 10 $B$H(B 0 $B0J30$NCM$rr7oJ8$J$i$P$=$l$,@.N)$7$^$9!#(B
$B$J$*!"(BC $B8@8l$G$O?tCM$r(B 16 $B?JK!$G=q$/;~$OF,$K(B 0x $B$rIU$1$^$9!#(B
$B%3!<%I(B a.2 $B$NCf$K$"$k(B while (joyInfo.dwButtons & 0x0a); $B$O(B while (joyInfo.dwButtons & 10);
$B$HF1$80UL#$@$C$?$N$G$9!#(B
$B>pJs(B I $B$G$OO@M}OB(B (or) $B$H$$$&$N$b=,$&$H;W$$$^$9!#(B
or $B1i;;$b0U30$H?H6a$K$"$k$H$$$&Nc$r0J2<$N%3!<%I$G<($7$^$9!#(B
$B%3!<%I(B a.3 |
#include <Windows.h>
void Init(int n){
MessageBox(NULL, "AAA", "BBB", 0x00);
}
void Loop(void) {
}
|
$B$3$N%3!<%I$r
$B:G8e$N%Q%i%a!<%?$r(B 0x00 $B$G$J$/(B 0x01 $B$K$7$F$_$^$7$g$&!#(B
$B%\%?%s$,(B OK $B$@$1$G$J$/%-%c%s%;%k$b=P$F$-$^$7$?!#(B
$B$G$O
$B%\%?%s$,(B OK $B$@$1$G$9$,!"(B? $B$H$$$&%"%$%3%s$,=P$F$-$^$7$?!#(B
$B$G$O(B ? $B$r=P$7$?$^$^!"%\%?%s$r(B OK $B$H%-%c%s%;%k$K$9$k$K$O$I$&$9$l$P$$$$$G$7$g$&$+!#(B
$B$=$&!"(B0x20 $B$H(B 0x01 $B$NO@M}OB$G$"$k(B 0x21 $B$rEO$;$P$$$$$N$G$9!#(B
$B$3$N$h$&$K!"%S%C%HKh$NO@M}1i;;$O!"0l$D$NJQ?t$KJ#?t$N>pJs$r5M$a9~$`:]$K$h$/;H$o$l$k%W%m%0%i%_%s%0%F%/%K%C%/$G$9!#(B
$B!VAH9~$_!W$H8F$P$l$k%^%$%3%s$r;H$C$?@)8f%W%m%0%i%`$G$h$/;H$o$l$k%$%a!<%8$G$9$,!"(B
$B$3$N$h$&$K%2!<%`$d(B GUI $B%W%m%0%i%`$G$b;H$o$l$^$9!#(B
$BK\%3%s%F%9%H$N%W%m%0%i%`$G$b(B 18 $B6aK5$N%?%$%k$N>uBV$,3JG<$5$l$?(B gSurTiles[] $B$KBP$7$F!"(B
$B$B!"(B
$B>c32J*$+(B (OBSTACLE_TILE)$B!"(B
$BAj8e$GDL$l$J$$$+(B (WAKEBLOCK)$B!"(B
$B2?%?!<%sL\$KDL$C$?$3$H$,$"$k$+(B (FOOTPRINT) $B$H$$$C$?>pJs$r(B
$BCj=P$9$k$?$a$K(B & $B5-9f$rMQ$$$?O@M}1i;;$GCj=P$7$F$^$9!#(B
$B$"$N(B & $B$r;H$C$?1i;;$,2?$r$7$F$$$k$N$+J,$+$i$J$+$C$?$+$b$7$l$^$;$s$,(B
($B$^$"!"$"$"=q$1$P>pJs$,
[$BLa$k(B]