このディレクトリの索引


途中計時(100,ボルト,20,2.89).
途中計時(100,ボルト,40,4.64).
途中計時(100,ボルト,60,6.31).
途中計時(100,ボルト,80,7.92).
途中計時(100,ボルト,100,9.58).

途中計時(100,ゲイ,20,2.92).
途中計時(100,ゲイ,40,4.70).
途中計時(100,ゲイ,60,6.39).
途中計時(100,ゲイ,80,8.02).
途中計時(100,ゲイ,100,9.71).

途中計時(100,パウエル,20,2.91).
途中計時(100,パウエル,40,4.71).
途中計時(100,パウエル,60,6.42).
途中計時(100,パウエル,80,8.10).
途中計時(100,パウエル,100,9.84).

途中計時(100,塚原,20,2.98).
途中計時(100,塚原,40,4.86).
途中計時(100,塚原,60,6.67).
途中計時(100,塚原,80,8.44).
途中計時(100,塚原,100,10.25).


ラップタイム(_種目,_選手,_前区間,_通過地点,_ラップタイム) :-
途中計時(_種目,_選手,_通過地点,_通過計時),
findall([_通過地点1,_途中計時1],通過地点計時(_種目,_選手,_通過地点,_通過地点1,_途中計時1),_通過地点計時ならび),
二つの通過地点の計時からラップタイムを得る(_通過地点計時ならび,_通過計時,_前区間,_ラップタイム).


通過地点計時(_種目,_選手,_通過地点,_通過地点1,_通過計時1) :-
途中計時(_種目,_選手,_通過地点1,_通過計時1),
_通過地点1 < _通過地点.


二つの通過地点の計時からラップタイムを得る(_通過地点計時ならび,_通過計時,_前区間,_ラップタイム) :-
ラップタイム(_通過地点計時ならび,_前区間,_前区間通過計時),
_ラップタイム is _通過計時 - _前区間通過計時.


ラップタイム([],0,0) :- !.
ラップタイム(_通過地点計時ならび,_前区間,_前区間通過計時) :-
前区間が指定されている場合その通過時からのラップタイム(_通過地点計時ならび,_前区間,_前区間通過計時).
ラップタイム(_通過地点計時ならび,_前区間,_前区間通過計時) :-
前区間が指定されていない場合は直前の通過時からのラップタイム(_通過地点計時ならび,_前区間,_前区間通過計時).


前区間が指定されている場合その通過時からのラップタイム(_通過地点計時ならび,_前区間,_前区間通過計時) :-
atomic(_前区間),
member([_前区間,_前区間通過計時],_通過地点計時ならび).


前区間が指定されていない場合は直前の通過時からのラップタイム(_通過地点計時ならび,_前区間,_前区間通過計時) :-
var(_前区間),
last(_通過地点計時ならび,[_前区間,_前区間通過計時]).