Pythonで「9桁のそろばん」を作るコードを教えて下さい。

9桁のそろばんを作成するコードは以下のようになります。

class Soroban:
    def __init__(self, num_rods):
        self.num_rods = num_rods
        self.beads = [[0, 0] for _ in range(num_rods)]

    def display(self):
        print("+-" + "-+" * self.num_rods)
        for bead_up, bead_down in self.beads:
            row = "|"
            for i in range(bead_up):
                row += "O"
            for i in range(bead_down):
                row += "o"
            row += "|"
            print(row)
        print("+-" + "-+" * self.num_rods)

    def move_bead(self, rod_index, bead_type, direction):
        if bead_type == "upper":
            if direction == "up":
                if self.beads[rod_index][0] < 1:
                    self.beads[rod_index][0] += 1
            elif direction == "down":
                if self.beads[rod_index][0] > 0:
                    self.beads[rod_index][0] -= 1
        elif bead_type == "lower":
            if direction == "up":
                if self.beads[rod_index][1] < 4:
                    self.beads[rod_index][1] += 1
            elif direction == "down":
                if self.beads[rod_index][1] > 0:
                    self.beads[rod_index][1] -= 1

# 使用例
soroban = Soroban(9)
soroban.display()
soroban.move_bead(0, "upper", "up")
soroban.move_bead(0, "lower", "up")
soroban.move_bead(0, "lower", "up")
soroban.move_bead(0, "lower", "up")
soroban.move_bead(0, "lower", "up")
soroban.display()

このコードは前回の例と同じですが、そろばんの桁数を9桁に変更しています。

使用例では、9桁目のそろばんを操作しています。具体的には、以下の操作を行っています:

  1. 9桁目の上ビーズを1つ上げる
  2. 9桁目の下ビーズを4つ上げる

実行結果は以下のようになります:

+-+-+-+-+-+-+-+-+
|o|o|o|o|o|o|o|o|o|
+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+
|O|oooo|o|o|o|o|o|o|
+-+-+-+-+-+-+-+-+

このように、9桁のそろばんを表現することができます。ビーズの移動は前回と同様に数値を操作することで実現しており、必要に応じて機能を拡張することができます。

error: Alert: Content selection is disabled!!
タイトルとURLをコピーしました