|
地板
發(fā)表于 2023-4-10 18:32:20
|
只看該作者
嘿嘿,這部分其實(shí)可以用Cursor率先體驗(yàn)一下,Cursor就是調(diào)用的是Copilot的接口(也是GPT-4)模型的。
用了一段時(shí)間了,實(shí)際體驗(yàn)是簡(jiǎn)單的那種一搜索一大片的代碼寫(xiě)起來(lái)沒(méi)什么問(wèn)題,但是稍微復(fù)雜點(diǎn)的代碼,就需要改了,而且很多細(xì)節(jié)問(wèn)題拐不過(guò)彎來(lái),比如我想用一維數(shù)組當(dāng)二維矩陣來(lái)用,他就寫(xiě)一些亂七八糟的玩意出來(lái)了。
為了貼合這個(gè)阿斗,我特意捏了一個(gè)簡(jiǎn)單的游戲引擎出來(lái),并為它量身捏了一款腦癱版類(lèi)c語(yǔ)compiler,好讓它幫我打工寫(xiě)游戲。但是,稍微要?jiǎng)狱c(diǎn)腦子的代碼(根本不能叫復(fù)雜,稍微比easy難一丟丟的問(wèn)題)基本9成需要自己改過(guò),比如我讓他幫我寫(xiě)一個(gè)迷宮生成算法:
GitHub 推出 Copilot X(集合 GPT-4),可自動(dòng)補(bǔ)全代碼和 ...-1.jpg (17.14 KB, 下載次數(shù): 238)
下載附件
2023-4-12 09:07 上傳
然后它幫我寫(xiě)了一段:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define ROW 20
#define COL 20
int map[ROW][COL];
void printMaze() {
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
if (map[j] == 1) {
printf(&#34;■ &#34;);
} else {
printf(&#34;□ &#34;);
}
}
printf(&#34;\n&#34;);
}
}
void generateMaze() {
srand((unsigned)time(NULL));
for (int i = 0; i < ROW; i++) {
for (int j = 0; j < COL; j++) {
if (i == 0 || j == 0 || i == ROW - 1 || j == COL - 1) {
map[j] = 1;
} else if (rand() % 3 == 0) {
map[j] = 1;
} else {
map[j] = 0;
}
}
}
map[0][0] = 0;
map[ROW - 1][COL - 1] = 0;
}
int main() {
generateMaze();
printMaze();
return 0;
}
可是入口和出口,都不是連通的
GitHub 推出 Copilot X(集合 GPT-4),可自動(dòng)補(bǔ)全代碼和 ...-2.jpg (38.7 KB, 下載次數(shù): 243)
下載附件
2023-4-12 09:07 上傳
我嘗試讓他修復(fù)這個(gè)bug,顯然這個(gè)為難它了,嘗試各種提示也不管用,不講碼德,拿一些根本不頂用的代碼來(lái)騙,來(lái)忽悠我.
GitHub 推出 Copilot X(集合 GPT-4),可自動(dòng)補(bǔ)全代碼和 ...-3.jpg (60.26 KB, 下載次數(shù): 265)
下載附件
2023-4-12 09:07 上傳
GitHub 推出 Copilot X(集合 GPT-4),可自動(dòng)補(bǔ)全代碼和 ...-4.jpg (83.95 KB, 下載次數(shù): 253)
下載附件
2023-4-12 09:07 上傳
還是不連通的,實(shí)際上一眼也看出來(lái)他在忽悠了
沒(méi)辦法,我只好在這個(gè)代碼的基礎(chǔ)上做點(diǎn)微調(diào)(感覺(jué)90%的工作其實(shí)還是我干的),包括固定了隨機(jī)數(shù)種子,然后用類(lèi)似煉丹的方式變換種子終于搞出了一個(gè)至少能通關(guān)的地圖了
GitHub 推出 Copilot X(集合 GPT-4),可自動(dòng)補(bǔ)全代碼和 ...-5.jpg (16.5 KB, 下載次數(shù): 213)
下載附件
2023-4-12 09:07 上傳
附上代碼
#name &#34;main&#34;
#include &#34;stdlib.h&#34;
export void GameOnTrigger(string id)
{
}
export void GameOnDie()
{
sleep(3000);
defeat();
}
export void GameOnFood(string id)
{
setspeed(0);
sleep(1000);
victory();
}
void drawmap(int x,int y)
{
drawrect(x*20,y*20,20,20,1,1,1,1);
}
#define ROW 40
#define COL 40
export void GameInitialize(int width,int height)
{
int i,j;
createplayer(8,8,10);
createfood(800-8,800-8,1,1,0,0,16,&#34;food&#34;);
setlayer(0);
clearmap(1,0,0,0);
rand();
rand();
rand();
rand();
rand();
rand();
rand();
rand();
rand();
rand();
//就這段ai寫(xiě)的
for (i = 0; i < ROW; i++) {
for (j = 0; j < COL; j++) {
if (rand() % 3 != 0)
{
drawmap(i,j);
}
}
}
drawmap(0,0);
drawmap(ROW - 1,COL - 1);
//到這里
wait(3000);
}
export void GameRun(int elapsed)
{
}還有幾個(gè)AI輔助創(chuàng)作的,也差不多,體驗(yàn)就是,有用,但感覺(jué)也沒(méi)多有用(營(yíng)銷(xiāo)號(hào)就不要整天吹什么取代了,光貼個(gè)生成代碼的截圖搞的跟真的一樣,有本事你點(diǎn)下編譯啊~)
GitHub 推出 Copilot X(集合 GPT-4),可自動(dòng)補(bǔ)全代碼和 ...-6.jpg (18.69 KB, 下載次數(shù): 235)
下載附件
2023-4-12 09:07 上傳
附上代碼
#name &#34;main&#34;
#include &#34;stdlib.h&#34;
int ate = 0;
export void GameOnTrigger(string id)
{
}
export void GameOnDie()
{
sleep(3000);
defeat();
}
export void GameOnFood(string id)
{
ate++;
if (ate==4)
{
setspeed(0);
sleep(1000);
victory();
}
}
export void thread1()
{
float angle1;
float angle2;
float angle3;
float angle4;
float angle5;
while (1)
{
sleep(150);
setlayer(1);
clearmap(0,1,1,1);
drawcircle(400,400,400,16,1,0,0,0);
drawcircle(400,400,300,16,1,0,0,0);
drawcircle(400,400,200,16,1,0,0,0);
drawcircle(400,400,100,16,1,0,0,0);
drawcircle(400,400,50,16,1,0,0,0);
angle1=angle1+3;
angle2=angle2+6;
angle3=angle3+9;
angle4=angle4+12;
angle5=angle5+15;
//就這段ai寫(xiě)的
drawsolidcircle(400+cos(angle1/180.0*3.14159)*400,400+sin(angle1/180.0*3.14159)*400,32,1,1,1,1);
drawsolidcircle(400+cos(angle2/180.0*3.14159)*300,400+sin(angle2/180.0*3.14159)*300,32,1,1,1,1);
drawsolidcircle(400+cos(angle3/180.0*3.14159)*200,400+sin(angle3/180.0*3.14159)*200,32,1,1,1,1);
drawsolidcircle(400+cos(angle4/180.0*3.14159)*100,400+sin(angle4/180.0*3.14159)*100,32,1,1,1,1);
drawsolidcircle(400+cos(angle5/180.0*3.14159)*50,400+sin(angle5/180.0*3.14159)*50,32,1,1,1,1);
//////
}
}
export void GameInitialize(int width,int height)
{
createplayer(400,400,16);
createfood(16,16,1,1,0,0,16,&#34;food&#34;);
createfood(800-16,16,1,1,0,0,16,&#34;food&#34;);
createfood(16,800-16,1,1,0,0,16,&#34;food&#34;);
createfood(800-16,800-16,1,1,0,0,16,&#34;food&#34;);
createthread(&#34;thread1&#34;,1);
wait(3000);
}
export void GameRun(int elapsed)
{
} |
|