鱼C论坛

 找回密码
 立即注册
查看: 1543|回复: 8

[已解决]求助 谢谢!!

[复制链接]
发表于 2020-8-31 17:23:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
设计一个名为 Robot 的类来表示机器人。机器人在整数2D网格中具有名称和元组位置(x,y)。

机器人的初始化程序使用名称作为参数,以及一个可选的起始位置,该起始位置是元组(x,y),默认为(0,0)。

机器人具有move_to(self,x_position,y_position)方法来设置其在网格中的当前位置,还具有 up(self,displacement)和 right(self,displacement)方法,以将机器人移动给定位移(可以是负数)分别在y或x中。它还需要一种支持以下所示格式的机器人打印的方法。

Test       
robot1 = Robot("Marvin")
print(robot1)
robot1.move_to(5, 11)
print(robot1)
robot1.move_to(1, 2)
print(robot1)
robot1.up(3)
robot1.right(-4)
print(robot1)

result
Marvin is at (0, 0)
Marvin is at (5, 11)
Marvin is at (1, 2)
Marvin is at (-3, 5)
最佳答案
2020-8-31 17:59:08
MIQIWEI 发表于 2020-8-31 17:42
emmmmmmmm我就是不会做  所以才问的
# -*- coding: utf-8 -*-

class Robot(object):
    def __init__(self, name, position=(0, 0)):
        self.name = name
        self.x_pos = position[0]
        self.y_pos = position[1]

    def move_to(self, x_position, y_position):
        self.x_pos = x_position
        self.y_pos = y_position

    def up(self, displacement):
        self.y_pos += displacement
  
    def right(self, displacement):
        self.x_pos += displacement

    def __str__(self):
        return '%s is at (%d, %d)' % (self.name, self.x_pos, self.y_pos)

手机写的,不知道有没有错漏?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-31 17:26:13 | 显示全部楼层
所以你的问题是什么,哪一步卡住了?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 17:35:37 From FishC Mobile | 显示全部楼层
我猜是老师布置的作业,题目就差手把手教你写了,不要太懒
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-31 17:42:44 | 显示全部楼层
hrp 发表于 2020-8-31 17:35
我猜是老师布置的作业,题目就差手把手教你写了,不要太懒

emmmmmmmm我就是不会做  所以才问的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 17:48:11 From FishC Mobile | 显示全部楼层
MIQIWEI 发表于 2020-8-31 17:42
emmmmmmmm我就是不会做  所以才问的

等等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 17:59:08 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
MIQIWEI 发表于 2020-8-31 17:42
emmmmmmmm我就是不会做  所以才问的
# -*- coding: utf-8 -*-

class Robot(object):
    def __init__(self, name, position=(0, 0)):
        self.name = name
        self.x_pos = position[0]
        self.y_pos = position[1]

    def move_to(self, x_position, y_position):
        self.x_pos = x_position
        self.y_pos = y_position

    def up(self, displacement):
        self.y_pos += displacement
  
    def right(self, displacement):
        self.x_pos += displacement

    def __str__(self):
        return '%s is at (%d, %d)' % (self.name, self.x_pos, self.y_pos)

手机写的,不知道有没有错漏?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 18:01:43 | 显示全部楼层
class Robot():
    def __init__(self, name, x_position=0, y_position=0):
        self.name = name
        self.x = x_position
        self.y = y_position
        print(f'{self.name} is at ({self.x}, {self.y})')

    def move_to(self, x_position, y_position):
        self.x += x_position
        self.y += y_position
        self.x, self.y = self.rangexy(self.x, self.y)

        print(f'{self.name} is at ({self.x}, {self.y})')

    def up(self, displacement):
        self.y += displacement
        self.x, self.y = self.rangexy(self.x, self.y)
        print(f'{self.name} is at ({self.x}, {self.y})')

    def right(self, displacement):
        self.x += displacement
        self.x, self.y = self.rangexy(self.x, self.y)
        print(f'{self.name} is at ({self.x}, {self.y})')

    def rangexy(self, x, y):
        if -5 <= x <= 5:
            x = x
        elif x > 5:
            x = x - 5
        elif x < -5:
            x = x + 5

        if -11 <= y <= 11:
            y = y
        elif y > 11:
            y = y - 11
        elif y < -11:
            y = y + 11

        return x, y


robot1 = Robot('Marvin')
print(robot1)
robot1.move_to(5, 11)
print(robot1)
robot1.move_to(1, 2)
print(robot1)
robot1.up(3)
robot1.right(-4)
print(robot1)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-31 19:19:57 | 显示全部楼层
hrp 发表于 2020-8-31 17:59
手机写的,不知道有没有错漏?

谢谢!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-31 19:21:01 From FishC Mobile | 显示全部楼层
卧槽。这什么段位。看都看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-19 02:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表