最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

天天滚动:用 ChatGPT 来完成笔试题

来源:博客园


(资料图片)

收到了一个公司的面试邀约,需要完成一个程序题,恰好 ChatGPT 正火,就尝试生成了一下,结果让我自愧不如,实在是觉得短时间内无法超越,索性上传github发送给了对方,非常庆幸7天回复期内没有收到任何的回复,没有通过也没有被怼。

网上搜索了一下,这道题解答挺多的,但是ChatGPT的做法还是让人眼前一亮,欣喜今后不用写代码同时,找孩子一起玩了一下自己ctrl+c、ctrl+v的游戏,发现问题还是有一些,比如最终的胜者的判断错误,如果只剩一根牙签应该宣布获胜方。

我们一起看看 ChatGPT 完成的这个题目...

题目

将15根牙签,分成三行,每行自上而下(其实方向不限)分别是3、5、7根, 安排两个玩家,每人可以在一轮内,在任意行拿任意根牙签,但不能跨行,拿最后一根牙签的人即为输家。

分析

实现

用 ChatGPT 分别生成了C#、Javascript 的代码,基本思路是一样的。

  • 使用数组来存储行及对应的牙签数量;
  • 定义循环,模拟玩家进行游戏,模拟玩家录入行号 和 每行录入的牙签数量,验证行号是否正确,录入的牙签数量是否超出剩余,更新行内剩余的牙签数量;
  • 每行数量是否为0,结束游戏和显示赢家。

成品

https://github.com/smallidea/toothpicks-game开发工具:vscode,语言:C#、Javascript说明:

  • 改进:如果牙签总数为0,或者只剩下1根牙签,结束游戏和显示最终赢家
  • 分别使用 Javascript、C# 写完了代码,时间关系Type Script代码没有写,其实基本逻辑是一样的
    • C# 采用命令行的标准输入、输出的方式进行交互
    • JS 使用弹窗的形式进行交互,输出 F12 见 console
  • Jupyter Notebook 的方式有点折腾,后续再做

调试效果

C#

cd csharpdotnet run

Javascript

进入 js 文件夹,打开 test.htm 文件

关键词: 结束游戏 进行游戏 自上而下