このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 130代目 #57 # [1] 授業単元:C言語プログラミング # [2] 問題文(含コード&リンク):10×10マスの碁盤の内から、scanf命令で # 入力した2値をx,y座標として、 # その座標部分を塗りつぶし四角"■"で表示しなさい。 # それ以外は"□"でマス表示するものとします。 # 両者とも0から9までが入力されるものとします(エラー判定不要)。 # 入力時の問い合わせメッセージは自由に表示させて下さい。 '10×10マスの碁盤の内から、 入力した2値をx,y座標として、 その座標部分を塗りつぶし四角"■"で表示しなさい。 それ以外は"□"でマス表示するものとします。 両者とも0から9までが入力されるものとします(エラー判定不要)。'(_着手された盤面) :- '10×10の盤面に□を埋める'(_盤面), 着手(X,Y), 現在の盤面(_盤面,X,Y,_着手された盤面). '10×10マスの碁盤の内から、 入力した2値をx,y座標として、 その座標部分を塗りつぶし四角"■"で表示しなさい。 それ以外は"□"でマス表示するものとします。 両者とも0から9までが入力されるものとします(エラー判定不要)。'(_). '10×10の盤面に□を埋める'(_盤面) :- findall(L,( 'Lに□を埋める'(L)),_盤面). 'Lに□を埋める'(L) :- between(1,10,N), length(10,L), all(L,'□'). 着手(X,Y) :- '行を得て、それからX_0,Y_0を得る'(X_0,Y_0), X is X_0 + 1, Y is Y_0 + 1,!. '行を得て、それからX_0,Y_0を得る'(X_0,Y_0) :- 行入力(_行), 項目区切り(_行,[' ',','],[X_0,Y_0]). 行入力(_行) :- read_line_to_codes(current_input,_コードならび), atom_codes(_行,_コードならび). 現在の盤面(_盤面,X,Y,_着手された盤面) :- 行列の置換(Y,X,'■',_盤面,_着手された盤面_1), 現在の盤面(_盤面,X,Y,_着手された盤面_1,_着手された盤面). 現在の盤面(_盤面,X,Y,_着手された盤面,_着手された盤面) :- 盤面表示(_着手された盤面). 現在の盤面(_盤面,X,Y,_着手された盤面_1,_着手された盤面) :- 着手して盤面を更新する(_盤面,X,Y,_着手された盤面_1,_着手された盤面). 着手して盤面を更新する(_盤面,X,Y,_着手された盤面_1,_着手された盤面) :- 着手(X2,Y2), 現在の盤面(_着手された盤面_1,X2,Y2,_着手された盤面). 盤面表示(_盤面) :- reverse(_盤面,_原点位置を左下に修正した盤面), 盤面表示の二(_原点位置を左下に修正した盤面),!. 盤面表示の二([]) :- !. 盤面表示の二(LL) :- 表示升行を順に表示する(LL). 表示升行を順に表示する([L|R]) :- 行表示(L), 盤面表示の二(R). 行表示(L) :- atomic_list_concat(L,_表示升列アトム), writef('%t\n',[_表示升列アトム]). all([],_). all([V|R],V) :- all(R,V). 項目区切り(_文字列,_区切り文字列ならび,_区切られた文字列ならび) :- 項目区切り(_文字列,_区切り文字列ならび,_使われている区切り文字ならび,_区切られた文字列ならび). 項目区切り(_文字列,_区切り文字列ならび,_使われている区切り文字ならび,_区切られた文字列ならび) :- 先頭から区切り文字列で区切って行く(_文字列,_区切り文字列ならび,_使われている区切り文字ならび,_区切られた文字列ならび),!. 項目区切り(_文字列,_,[],[_文字列]). 先頭から区切り文字列で区切って行く(_文字列,_区切り文字列ならび,[_区切り文字列|R1],[_前文字列|R2]) :- '区切り文字列で前文字列、後文字列に区切る'(_文字列,_区切り文字列ならび,_前文字列,_区切り文字列,_後文字列), 項目区切り(_後文字列,_区切り文字列ならび,R1,R2). '区切り文字列で前文字列、後文字列に区切る'(_文字列,_区切り文字列ならび,_前文字列,_区切り文字列,_後文字列) :- 副文字列(_文字列,_前文字列,_区切り文字列,_後文字列), member(_区切り文字列,_区切り文字列ならび). 副文字列(_文字列,_前文字列,_副文字列,_後文字列) :- atom_concat(_前文字列,_残り文字列,_文字列), atom_concat(_副文字列,_後文字列,_残り文字列). 文字列ならびの中で数値に変換可能なものは変換する(_文字列ならび,_項目ならび) :- findall(_項目,( 文字列を取り出し数値に変換可能なものは変換する(_文字列ならび,_項目)),_項目ならび). 文字列を取り出し数値に変換可能なものは変換する(_文字列ならび,_項目) :- member(_文字列,_文字列ならび), 数値に変換可能なものは変換する(_文字列,_項目). 数値に変換可能なものは変換する(_文字列,_項目) :- atom_number(_文字列,_項目),!. 数値に変換可能なものは変換する(_文字列,_文字列).