このディレクトリの索引

http://pc12.2ch.net/test/read.cgi/tech/1232627790/932
# 【 課題 】ボウリングのスコアを付けるプログラムを作成せよ。
#             各投球ごとの倒れたピン数を入力し、スコア一覧を出力。 
# 【 形態 】1. Javaアプリケーション(main()で開始) 
# 【 GUI  】4. 制限なし 
# 【 期限 】本日、7/10 15:00 
# 【 Ver  】Eclipse Version: 3.4.2 
# 【 補足 】1つのメソッド10行以内、引数・戻り値を持つ
#             メソッド最低3つ作成のこと。 

ボーリングスコア(_ピンの倒れた数ならび,_得点表) :-
    数値レングス変換(_ピンの倒れた数ならび,L1),
    ボーリングの得点(L1,[],L2),
    数値レングス変換(_得点表,L2).

ボーリングの得点([],_,[]).
ボーリングの得点([[_,_,_,_,_,_,_,_,_,_],B,C],Y,[[[_,_,_,_,_,_,_,_,_,_]+B+C,Y2]]) :-
    append([_,_,_,_,_,_,_,_,_,_],B,C,Y1),
    append(Y,Y1,Y2).
ボーリングの得点([[_,_,_,_,_,_,_,_,_,_],B,C|R],Y,[[[_,_,_,_,_,_,_,_,_,_],Y2]|R2]) :-
    append([_,_,_,_,_,_,_,_,_,_],B,C,Y1),
    append(Y,Y1,Y2),
    ボーリングの得点([B,C|R],Y2,R2).

ボーリングの得点([A,B,C|R],Y,[[A+B,Y2]|R2]) :-
    append(A,B,[_,_,_,_,_,_,_,_,_,_]),
    append([_,_,_,_,_,_,_,_,_,_],C,Y1),
    append(Y,Y1,Y2),
    ボーリングの得点([C|R],Y2,R2).

ボーリングの得点([A,B|R],Y,[[A+B,Y2]|R2]) :-
    append(A,B,Y1),
    append(Y,Y1,Y2),
    ボーリングの得点(R,Y2,R2).

数値レングス変換([],[]) :- !.
数値レングス変換([[M1+M2+M3,N]|R1],[[La+Lb+Lc,L2]|R2]) :-
    length(La,M1),
    length(Lb,M2),
    length(Lc,M3),
    length(L2,N),
    数値レングス変換(R1,R2),!.
数値レングス変換([[M1+M2,N]|R1],[[La+Lb,L2]|R2]) :-
    length(La,M1),
    length(Lb,M2),
    length(L2,N),
    数値レングス変換(R1,R2),!.
数値レングス変換([[M,N]|R1],[[La,L2]|R2]) :-
    length(La,M),
    length(L2,N),
    数値レングス変換(R1,R2),!.
数値レングス変換([N|R1],[L|R2]) :-
    not(list(N)),
    length(L,N),
    数値レングス変換(R1,R2),!.