---
# System prepended metadata

title: 2020Rush

---

# 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つだけあることを確認しながら、箱を正しく配置する必要があります。：１行が2視野ある。

## 方向性
- 数列に優先順位をつける
- それぞれの数字に関連性があるので、一番影響力が大きいものを決める
- まずは手探りでパターンを探る。その際に行と列の数を減らして考える

## ロジック
**考えられる全パターンにマッチしているかを調べる。**

1. Kuroda:引数を受け取ってー次元配列（CommandView）に格納（１以上４以下の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）を返す
    - 一致していれば、５に進む ※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]
    - 入り方: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を作る際に、列で重複が存在するかを確認
    - 存在していれば０, 存在していなければ１を返す
    - Made　by Doi
- int ft_check_row（int i）
    - Boxを作る際に、列で重複が存在するかを確認
    - 存在していれば０, 存在していなければ１を返す
    - 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の配列を作成するためのカウント)を初期値０に戻す 
    - Made　by 凹
- int	check_view(int *CommandView)
    - CommandViewとg_PossViewを比較（一致の場合はリターン値＝１、不一致の場合はリターン値＝０）
    - Made　by 凹

# ファイル
- main.c
    - includ <MakeView
    - コマンドライン引数の受け取り
    - ft_checkViewの実行（ここに書く余地があるかは別として読み出している）
    - エラーおよび結果の出力
- globalvar.c　：グローバル変数をここで宣言
    - g_box: Boxの高さが格納された[4][4]のint二次元配列   
    - g_is_done：MakeBox＆MakeView作成ループを回すかどうか指定する。1にしたら終了
- 
# Memo
- 

## 考察Memo
- 視点数が４の場合
・１２３４の並び（確定）
・逆側の視点数は１（確定）
・エラーは逆側が２、３、４

- 視点数が１の場合
・４が１番目（確定）
・エラーは逆側が１
・逆側の視点数は２、３、４のどれか

- 視点数が３の場合
・４が３、４番目のどこか
・３が２、３番目のどこか
・２が１、２番目のどこか
・１が１、２、３番目のどこか
・エラーは逆側が４、３
・逆側の視点数は１、２のどれか

- 視点数が２の場合
・４が２、３、４番目のどこか
・３が１、２、３、４番目のどこか
・２が１、２、３、４番目のどこか
・１が１、２、３、４番目のどこか
・エラーは逆側が４
・逆側の視点数は１、２、３のどれか

- スプレットシート
