# 2020Rush ## 自己紹介 - DoiKosuke: ReactとPythonはわかるが、Cは初心者。土日は基本9時-21時でいる予定。Rushは優先度高いし稼げるので皆さん頑張りましょう!C02。 - Kubo-san: Rubyまん。Cは初心者。C02。 - Kuroda - san:SQLだけ。C03。 ## チーム方針 - 消えないでください。つらくても返信してください! ## ステップ - アルゴリズム作成 - 例外処理を含めず、コンパイル可能なプログラム作成 - 例外処理を含めた、コンパイル可能なプログラム作成 - Norm対処 ## 分担 - アルゴリズム作成 - 例外処理を含めず、コンパイル可能なプログラム作成 - 例外処理を含めた、コンパイル可能なプログラム作成 - Kuroda-san:Norm対処 ## タイムスケジュール - 12;00, - 14:00 - 16:00 - 18:00 : あつまって話す。 - Sat 20:00; アルゴリズム完成 - Sun 10:00; 例外処理を含めず、コンパイル可能なプログラム作成 - Sun 14:00; 例外処理のプロブラムを作成 - Sun 16:00; Normデバッグ開始 - Sun 20:00 ;提出 ## 疑問点 - [Done]箱の高さの行列が許されているのか?: だめ - [Done]回答が複数ある場合の対処法(• 一番初めにあらわれた解決策を表示してください。): 一つだけ - [Done] 各視野(2行、2列)ごとに、値が与えられます。あなたのプログラムは、各行と列に各サイズの箱が1つだけあることを確認しながら、箱を正しく配置する必要があります。:1行が2視野ある。 ## 方向性 - 数列に優先順位をつける - それぞれの数字に関連性があるので、一番影響力が大きいものを決める - まずは手探りでパターンを探る。その際に行と列の数を減らして考える ## ロジック **考えられる全パターンにマッチしているかを調べる。** 1. Kuroda:引数を受け取ってー次元配列(CommandView)に格納(1以上4以下のint型以外は省く) 2. Doi:g_Boxのg_count回目の組み合わせを作成 3. Kubo:2で求めたg_Boxから視点の組み合わせ(g_PossView)を作成 4. Kubo;視点データ(g_PossView)と引数データ(CommandView)の一致を調べる(1次元配列) - 一致していなければ、2に戻る(g_count+1回目) ※return(0)を返す - 一致していれば、5に進む ※return(1)を返す 6. Kuroda;一致していれば格納(g_Box) 7. Kuroda;表示(g_Box) https://docs.google.com/spreadsheets/d/16wfsybxphdCktx02sF8-JzGxm2e5sLufOx3ZPGXwWh8/edit#gid=1924985407 # 名前を一致させる ## Grobal変数 - int g_box[4][4] - int g_is_done ## 配列 - 引数の視点の配列:CommandView[16] - 以下の順番で入る - "col1up col2up col3up col4up col1down col2down col3down col4down row1left row2leftrow3left row4left row1right row2right row3right row4right" - Boxの組み合わせ;g_Box[4][4] - 入り方:https://docs.google.com/spreadsheets/d/16wfsybxphdCktx02sF8-JzGxm2e5sLufOx3ZPGXwWh8/edit#gid=1697177499 - 考えられる視点:g_PossView[16] - 以下の順番で入る - "col1up col2up col3up col4up col1down col2down col3down col4down row1left row2leftrow3left row4left row1right row2right row3right row4right" ## 関数 - エラー表示:void ft_error(); - [エラーの場合は、"Error"と改行を表示してください。] - 文字表示:void ft_puchar(char c); - Boxの組み合わせを生成する;void *ft_makebox(int i); - i; 何回目か? - Boxから視点を得る;int *ft_getview(int *array); - ### 使用した関数 - int ft_check_row(int i, int j) - Boxを作る際に、i行目j列目の要素がi行目で重複しているか確認 - 存在していれば0, 存在していなければ1を返す - Made by DOI - int ft_check_row(int i) - Boxを作る際に、列で重複が存在するかを確認 - 存在していれば0, 存在していなければ1を返す - Made by Doi - int ft_check_row(int i) - Boxを作る際に、列で重複が存在するかを確認 - 存在していれば0, 存在していなければ1を返す - Made by Doi - void make_colup(void) - 渡されたBoxから、上の視点数を作成する(col1up col2up col3up col4up) - Made by 凹 - void make_coldown(void) - 渡されたBoxから、下の視点数を作成する(col1down col2down col3down col4down) - Made by 凹 - void make_rowleft(void) - 渡されたBoxから、左の視点数を作成する(row1left row2leftrow3left row4left) - Made by 凹 - void make_rowright(void) - 渡されたBoxから、右の視点数を作成する(row1right row2right row3right row4right) - Made by 凹 - - void ft_getview(void) - make_colup、make_coldown、make_rowleft、make_rowrightを一つにまとめた関数 - g_i_for_mv(g_PossViewの配列を作成するためのカウント)を初期値0に戻す - Made by 凹 - int check_view(int *CommandView) - CommandViewとg_PossViewを比較(一致の場合はリターン値=1、不一致の場合はリターン値=0) - Made by 凹 # ファイル - main.c - includ <MakeView - コマンドライン引数の受け取り - ft_checkViewの実行(ここに書く余地があるかは別として読み出している) - エラーおよび結果の出力 - globalvar.c :グローバル変数をここで宣言 - g_box: Boxの高さが格納された[4][4]のint二次元配列 - g_is_done:MakeBox&MakeView作成ループを回すかどうか指定する。1にしたら終了 - # Memo - ## 考察Memo - 視点数が4の場合 ・1234の並び(確定) ・逆側の視点数は1(確定) ・エラーは逆側が2、3、4 - 視点数が1の場合 ・4が1番目(確定) ・エラーは逆側が1 ・逆側の視点数は2、3、4のどれか - 視点数が3の場合 ・4が3、4番目のどこか ・3が2、3番目のどこか ・2が1、2番目のどこか ・1が1、2、3番目のどこか ・エラーは逆側が4、3 ・逆側の視点数は1、2のどれか - 視点数が2の場合 ・4が2、3、4番目のどこか ・3が1、2、3、4番目のどこか ・2が1、2、3、4番目のどこか ・1が1、2、3、4番目のどこか ・エラーは逆側が4 ・逆側の視点数は1、2、3のどれか - スプレットシート