{

      "name": "bluechip",

      "ptime": 10,

      "pquant": 1,

      "ingredient": {

            "greenchip": 20,

            "redchip": 2

      },

      "group": "middle",

      "child layer": {

            "greenchip": {

                  "name": "greenchip",

                  "ptime": 0.5,

                  "pquant": 1,

                  "ingredient": {

                        "coppercable": 3,

                        "ironplate": 1

                  },

                  "group": "middle",

                  "child layer": {

                        "coppercable": {

                              "name": "coppercable",

                              "ptime": 0.5,

                              "pquant": 2,

                              "ingredient": {

                                    "copperplate": 1

                              },

                              "group": "middle",

                              "child layer": {

                                    "copperplate": {

                                          "name": "copperplate",

                                          "ptime": 1.6,

                                          "pquant": 1,

                                          "ingredient": {

                                                "rawcopper": 1

                                          },

                                          "group": "firstp",

                                          "child layer": {

                                                "rawcopper": {

                                                      "name": "rawcopper",

                                                      "ptime": 1,

                                                      "pquant": 0.5,

                                                      "ingredient": [],

                                                      "group": "raw"

                                                }

                                          }

                                    }

                              }

                        },

                        "ironplate": {

                              "name": "ironplate",

                              "ptime": 1.6,

                              "pquant": 1,

                              "ingredient": {

                                    "rawiron": 1

                              },

                              "group": "firstp",

                              "child layer": {

                                    "rawiron": {

                                          "name": "rawiron",

                                          "ptime": 1,

                                          "pquant": 0.5,

                                          "ingredient": [],

                                          "group": "raw"

                                    }

                              }

                        }

                  }

            },

            "redchip": {

                  "name": "redchip",

                  "ptime": 6,

                  "pquant": 1,

                  "ingredient": {

                        "greenchip": 2,

                        "coppercable": 4

                  },

                  "group": "middle",

                  "child layer": {

                        "greenchip": {

                              "name": "greenchip",

                              "ptime": 0.5,

                              "pquant": 1,

                              "ingredient": {

                                    "coppercable": 3,

                                    "ironplate": 1

                              },

                              "group": "middle",

                              "child layer": {

                                    "coppercable": {

                                          "name": "coppercable",

                                          "ptime": 0.5,

                                          "pquant": 2,

                                          "ingredient": {

                                                "copperplate": 1

                                          },

                                          "group": "middle",

                                          "child layer": {

                                                "copperplate": {

                                                      "name": "copperplate",

                                                      "ptime": 1.6,

                                                      "pquant": 1,

                                                      "ingredient": {

                                                            "rawcopper": 1

                                                      },

                                                      "group": "firstp",

                                                      "child layer": {

                                                            "rawcopper": {

                                                                  "name": "rawcopper",

                                                                  "ptime": 1,

                                                                  "pquant": 0.5,

                                                                  "ingredient": [],

                                                                  "group": "raw"

                                                            }

                                                      }

                                                }

                                          }

                                    },

                                    "ironplate": {

                                          "name": "ironplate",

                                          "ptime": 1.6,

                                          "pquant": 1,

                                          "ingredient": {

                                                "rawiron": 1

                                          },

                                          "group": "firstp",

                                          "child layer": {

                                                "rawiron": {

                                                      "name": "rawiron",

                                                      "ptime": 1,

                                                      "pquant": 0.5,

                                                      "ingredient": [],

                                                      "group": "raw"

                                                }

                                          }

                                    }

                              }

                        },

                        "coppercable": {

                              "name": "coppercable",

                              "ptime": 0.5,

                              "pquant": 2,

                              "ingredient": {

                                    "copperplate": 1

                              },

                              "group": "middle",

                              "child layer": {

                                    "copperplate": {

                                          "name": "copperplate",

                                          "ptime": 1.6,

                                          "pquant": 1,

                                          "ingredient": {

                                                "rawcopper": 1

                                          },

                                          "group": "firstp",

                                          "child layer": {

                                                "rawcopper": {

                                                      "name": "rawcopper",

                                                      "ptime": 1,

                                                      "pquant": 0.5,

                                                      "ingredient": [],

                                                      "group": "raw"

                                                }

                                          }

                                    }

                              }

                        }

                  }

            }

      }

}


Process finished with exit code 0


아이템 의존성 추적기 파이썬 딕셔너리 이용해서 구현해봄. 데이터들은 코드 돌아가나 확인해보려고 넣은거라 정확하지 않음.

옛날에 vb.net 깔짝거릴때 주워들었던 재귀함수가 생각나서 머리 쥐어짜내가지고 겨우겨우 구현 성공.

당연히 에러 뜰 줄 알았던 코드가 한 방에 작동해서 좀 얼떨떨함.

반복문으로 이리저리 상태 저장하는 변수 만들고 개지랄하다가 재귀함수로 하니까 그냥 돼버리네



팩토리오 계산기 다른사람 코드 안 보고 구현하는게 목표임.

이게 팩토리오보다 재밌다 ㅋㅋ



코딩 기법들 찾아보면 쉽게 구현할수도 있을 것 같은데 그럼 재미없을듯해서 꾸역꾸역 머리 쥐어짜내면서 만들어볼거임