1 つの可能性は、クラスを作成し、Coordinate
すべての可能な座標ペアを表現することです。
class Coordinate(models.Model):
x = models.IntegerField()
y = models.IntegerField()
board = models.ForeignKey(Board)
hit = models.BooleanField(default=False)
ship = models.ForeignKey(Ship, null=True) # assumes you have Ship objects somewhere
board
次のように場所をヒットできます(がオブジェクトであると仮定しBoard
ます):
x = 2
y = 3
location = board.coordinate_set.filter(x=x, y=y)
if location.ship != None:
# hit a ship! Do something with location.ship object
# either way, save that it was hit
location.hit = True
location.save()
これは大きなグリッドでは効率的ではありませんが、この場合、ボードごとに 100 の座標しかないため、合理的で直感的である可能性があります。