chatGPT-简单玩玩-可以不用自己写代码罗

461 阅读2分钟

chatGPT是人工智能API,据说牛逼的不行,还能写代码

1. 我不信了, 来试试

终端执行 (网络需要翻墙)

curl -d "search=用swift实现反转链表" "http://gpt.kube.moguit.cn/text"

😺,wonequ,居然就真的给我输出了swift版本的反转链表, 居然还写好了代码备注, 这程序员的自我修养是相当的可以

curl -d "search=用swift实现反转链表" "http://gpt.kube.moguit.cn/text"

swift

// 定义链表节点
class ListNode {
    var val: Int
    var next: ListNode?
    init(_ val: Int) {
        self.val = val
        self.next = nil
    }
}

// 实现反转链表
func reverseList(_ head: ListNode?) -> ListNode? {
    var prev: ListNode?
    var curr = head
    while curr != nil {
        let next = curr?.next
        curr?.next = prev
        prev = curr
        curr = next
    }
    return prev
}

2. 再来一个试试

curl -d "search=用swift实现堆排序" "http://gpt.kube.moguit.cn/text"
// 堆排序
func heapSort(_ array: [Int]) -> [Int] {
    // 构建大顶堆
    var tempArray = array
    let n = array.count
    for i in stride(from: (n / 2 - 1), through: 0, by: -1) {
        _heapify(&tempArray, n, i)
    }

    // 堆排序
    for i in stride(from: n - 1, through: 0, by: -1) {
        tempArray.swapAt(0, i)
        _heapify(&tempArray, i, 0)
    }
    return tempArray
}

// 构建大顶堆
func _heapify(_ array: inout [Int], _ n: Int, _ i: Int) {
    var largest = i
    let left = 2 * i + 1
    let right = 2 * i + 2
    if left < n && array[left] > array[largest] {
        largest = left
    }
    
    if right < n && array[right] > array[largest] {
        largest = right
    }
    
    if largest != i {
        array.swapAt(i, largest)
        _heapify(&array, n, largest)
    }
}

3. 我想偷懒,让他帮我开发需求可以不,来试试让他帮我写

用swift实现股票行情图

curl -d "search=用swift实现股票行情图" "http://gpt.kube.moguit.cn/text"
class StockChartView: UIView {
    // 显示股票行情的容器
    let stockContainer = UIView()
    
    // 股票信息
    var stockData: [Float]?
    
    // 画笔
    let linePath = UIBezierPath()
    
    override init(frame: CGRect) {
        super.init(frame: frame)
        setupUI()
    }
    
    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        setupUI()
    }
    
    func setupUI() {
        // 添加容器
        addSubview(stockContainer)
        stockContainer.frame = CGRect(x: 0, y: 0, width: frame.width, height: frame.height)
        
        // 添加股票行情图
        let shapeLayer = CAShapeLayer()
        shapeLayer.fillColor = UIColor.clear.cgColor
        shapeLayer.strokeColor = UIColor.blue.cgColor
        shapeLayer.lineWidth = 1.5
        shapeLayer.lineCap = CAShapeLayerLineCap.round
        shapeLayer.lineJoin = CAShapeLayerLineJoin.round
        stockContainer.layer.addSublayer(shapeLayer)
    }
    
    func drawChart() {
        guard let stockData = stockData else { return }
        
        // 画笔起点
        linePath.move(to: CGPoint(x: 0, y: stockContainer.frame.height))
        
        for (index, item) in stockData.enumerated() {
            let x = CGFloat(index) * (stockContainer.frame.width / CGFloat(stockData.count - 1))
            let y = stockContainer.frame.height - CGFloat(item) * stockContainer.frame.height
            linePath.addLine(to: CGPoint(x: x, y: y))
        }
        
        // 画笔终点
        linePath.addLine(to: CGPoint(x: stockContainer.frame.width, y: stockContainer.frame.height))
        
        // 更新路径
        if let subLayers = stockContainer.layer.sublayers,
            let shapeLayer = subLayers[0] as? CAShapeLayer {
            shapeLayer.path = linePath.cgPath
        }
    }
}

卧槽呢,代码居然还真出来了,还居然弄好了入参stockData 会不会瞎写的呢? 我要试试运行效果

这chatGPT程序员真有修养, 服

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        let stockView = StockChartView.init(frame: CGRect.init(x: 0, y: 200, width: UIScreen.main.bounds.width, height: 200));
        stockView.backgroundColor = UIColor.lightGray;
        /// 股票曲线参数
        stockView.stockData = [0.1,0.15,0.16,0.18,0.2,0.18,0.17,0.16,0.2,0.22,0.23,0.25,0.26,0.27,0.3,0.4,0.39,0.38,0.37,0.35,0.33,0.30,0.32,0.3,0.25,0.24,0.22,0.21]
        stockView.drawChart();
        self.view.addSubview(stockView);
        // Do any additional setup after loading the view.
    }
}

simulator_screenshot_A4E9048E-24BE-433D-B952-D5AE6CE70D1E.png