Yapay Zeka Benim İçin JavaScript Kodu Yazdı

“Rüya İçinde Rüya” – Edgar Allen Poe

Yapay Zekanın (ChatGPT gibi AI) bir Storyline tetikleyicisine kopyalayıp yapıştırmamız için JavaScript kodu yazabileceğini düşünüyor musunuz? Bir yapay zeka asistanıyla çalışmaya hazır mısınız? Sizi benimle GPT arazisine seyahat etmeye davet ediyorum. Spesifik olarak, OpenAI ChatGPT’den Articulate Storyline ve JavaScript’i bilen ve JavaScript kodu yazmamıza yardımcı olabilecek (biz JavaScript bilmiyormuş gibi davranırken) ödüllü bir e-Öğrenim geliştiricisi gibi davranmasını isteyeceğiz. [1].

E-Öğrenim İşletme Sorunu

Diyelim ki oyuncuların isimlerini puanlarına göre sıralamak istiyoruz. adlı 10 Storyline metin değişkenimiz var. oyuncu1, oyuncu2, oyuncu3vb. ve puanları, puan1, puan2, puan3, vb. AI ChatGPT’nin (dahili olarak kendisine “Asistan”, btw adını veren) oyuncuları puanlarına göre sıralamak için bize JavaScript kodunu yazmasını istiyoruz, böylece bunu Storyline’daki bir tetikleyiciye kopyalayıp yapıştırabiliriz. Son olarak, sıralanan “ilk beş” oyuncuları ve puanlarını ekranda göstereceğiz.

Kaynak Articulate Storyline dosyasını indirerek ve kendiniz test etmek için Asistanın kodunu kendi tetikleyicinize kopyalayıp yapıştırarak devam edebilirsiniz. Temel bilgileri .story dosyasına ekledim, böylece tetikleyicinin kendisine odaklanabilirsiniz. .story dosyası ayrıca son kodu içeren bir çözüm slaydı içerir, ancak bu makalenin sonuna kadar ona bakmayın. [2]!

Asistanı Hazırlayalım

JavaScript koduna geçmeden önce, Asistan’ın Storyline ve tetikleyicilerini bilip bilmediğini kontrol etmek istedim. Bu yüzden, henüz JavaScript’e ihtiyaç duymayan bir problemle ona meydan okudum: Skora göre en iyi oyuncuyu (beş üzerinden) seçmek istiyorum. Asistan, Storyline’ı nasıl kullanacağını biliyorsa, herhangi bir kodlama yapmadan birden fazla tetikleyici ve koşul kullanarak süreci açıklayabilir.

Yapay Zeka Benim İçin Bir JavaScript Kodu Yazdı

Etkileyici. Asistan, tetikleyicilerin Storyline’da nasıl çalıştığını biliyor. Ne yapılması gerektiği konusunda özel talimatlar verir. AI Assistant’ın sorunu bizim için çözecek JavaScript kodunu yazıp yazamayacağını görelim.

Adımlar mantıklı görünüyor (yine JavaScript bilmiyormuş gibi yapıyoruz). Peki ya kod?

Aşağıdaki kodu Storyline tetikleyicinize kopyalayın ve kursu çalıştırın (Kolaylaştırmak için 20 yerine yalnızca 10 değişken kullandım):

/ 20 skor ve oyuncu değişkeni arasında geçiş yapın

için (var i = 1; ben <= 10; i++) {

var puan = “puan” + i;

var oyuncu = “oyuncu” + i;

// Geçerli puanın 0’dan büyük olup olmadığını kontrol edin

eğer (değerlendir(puan) > 0) {

// Oyuncuyu ve skoru sortedPlayers dizisine ekleyin

sortedPlayers.push({

isim: eval(oyuncu),

puan: değerlendir(puan)

});

}

}

// sortedPlayers dizisini oyuncunun puanına göre azalan düzende sıralayın

sortedPlayers.sort(işlev(a, b) {

dönüş b.score – a.score;

});

// sortedPlayers dizisindeki en iyi 5 oyuncu arasında dolaş

için (var i = 0; i < 5; i++) {

var player = sortedPlayers[i];

// Oyuncu adını ve skoru slaytta görüntülemek için Storyline’ın yerleşik özelliklerini kullanın

oyuncuAdı.metin = oyuncu.adı;

playerScore.text = player.score;

}

Kod Çalışıyor mu?

İşine yaradı mı? Benim için değil. Sorun gidermemiz gerekiyor. Sorunları görmek için Denetçi’yi açın (Chrome’da Ctrl+Shift+I). “Sırala” düğmesine tıkladığımda, tarayıcı bir hata gösteriyor: “oyuncu1 tanımlanmadı.” Bunu nasıl düzelteceğini Asistan’a soralım.

Asistanın yanıtı genel olarak anlamlıdır, ancak açıkça iki şeyi gösterir: a) bir döngünün gerçekte nasıl çalıştığını anlamaz ve b) JavaScript’in Storyline’daki değişkenlere erişmek için GetPlayer()’a ihtiyacı olduğunu anlamaz. JavaScript ve Storyline hakkında gerçekten hiçbir şey bilmeseydik, bu noktada takılıp kalırdık. Ben de “karakterimin dışına çıktım” ve AI Assistant’ın JavaScript kodunu yazmasına biraz yardım ettim.

Asistan bu kritik bilgiyi biliyor gibi görünüyor; sadece görmezden geldi. Ha! Önceki kodunu kritik satırı içerecek şekilde revize etti. Kodun üst kısmının üzerine yazarak kodu tetikleyicinize kopyalayıp yapıştırabilirsiniz.

// oyuncu nesnesini al

var oyuncu = GetPlayer();

// 10 puan ve oyuncu değişkenleri arasında geçiş yapın

için (var i = 1; ben <= 10; i++) {

// “score” + i değişkeninin değerini almak için GetVar() yöntemini kullanın

var puan = player.GetVar(“puan” + i);

// “player” + i değişkeninin değerini almak için GetVar() yöntemini kullanın

var player = player.GetVar(“player” + i);

// Geçerli puanın 0’dan büyük olup olmadığını kontrol edin

eğer (puan > 0) {

// Oyuncuyu ve skoru sortedPlayers dizisine ekleyin

sortedPlayers.push({

isim: oyuncu,

puan: puan

});

}

}

// sortedPlayers dizisini oyuncunun puanına göre azalan düzende sıralayın

sortedPlayers.sort(işlev(a, b) {

dönüş b.score – a.score;

});

// sortedPlayers dizisindeki en iyi 5 oyuncu arasında dolaş

için (var i = 0; i < 5; i++) {

var player = sortedPlayers[i];

// Oyuncu adını ve skoru slaytta görüntülemek için Storyline’ın yerleşik özelliklerini kullanın

oyuncuAdı.metin = oyuncu.adı;

playerScore.text = player.score;

}

Daha Fazla Sorun Giderme

Bu sürümü test ettiğinizde, tarayıcı tarafından başka bir hata mesajı atılır: “sortedPlayers değişkeni tanımlanmadı.” Sizi Asistan’la gidip gelmekten kurtaracağım, ancak birkaç aksaklıktan sonra kodun üstüne şu satırı eklememi söyledi:

var sortedPlayers = [];

Bu satırı tetikleyicinizin en üstüne eklediğinizde, “sortedPlayers” hakkında şikayet etmeyi bırakır. Asistana neden bu önemli satırları içermediğini sorarak devam ettim, çünkü görünüşe göre onlara ihtiyacımız olduğu gerçeğinden sonra farkındaydı. Cevap bir tür özürdü, ama aynı zamanda daha net olmadığım için beni suçlamaktı. Devam edelim! Alttaki son birkaç kod satırına baktığımda, Asistan’ın ne düşündüğü hakkında hiçbir fikrim yoktu… bu yüzden ondan açıklamasını istedim.

Ve burada, herhangi bir gerçek kural uygulamadan bunun ne kadarının gerçekliği tamamen “taklit ettiğini” merak etmeye başladığım yer burasıdır. AI Asistanı, aşağıdakileri okumak için JavaScript kodunu hızla revize etti ve yazdı:

AI JavaScript Kodu Yazdı - Sorun Giderme

Programlamanın yabani otlarına girmeden, gerçeği “taklit etmek” ile ne demek istediğimi açıklayayım.

“Oyuncu” Değişkeniyle İlgili Sorun

Gözden geçirilmiş kod hala çalışmıyor. Önemli bir kusuru var. Neden? Çünkü önceden tanımlanmış bir “player” değişkeniniz var (biz buna global değişken diyoruz), Storyline nesnesini temsil ediyor. Kısacası, orijinal “player” değişkeni, Storyline değişkenlerini almak ve ayarlamak için kullandığımız değişkendir. Bu işe yarıyor. Böylece başlangıçta player.GetVar() ve player.SetVar() işlevleri iyi çalışıyor. Yine “player” değişkeni Storyline nesnesini temsil eder.

…en alttaki koda ulaşana kadar. Neden? Çünkü “var player = sortedPlayers[i]” satırı orijinal player değişkenini yeniden tanımlar. Yani bu noktaya kadar “player” GetVar() ve SetVar() işlevlerine sahipken, Asistanımız yine aynı değişken adını (“player”) kullanmış ve sıralanmış olarak ayarlamıştır. oyuncular. O anda orijinal “player” değişkenini kaybettik. Ve böylece, bu yeni “player”ın bir “adı” ve bir “skoru” var ama artık SetVar() veya GetVar() yok. Artık tamamen farklı değişken türü.

Şimdi, bu, baştan savma bir insan programcının kodundaki (ben onu işe almayacağım) bir “yazım hatası” olabilir. Bu yüzden Asistan ile kontrol etmek istedim. “Player” değişken adını tekrar kullanamayacağını anlıyor mu?

Rüya İçinde Rüya

Benim görmek istediğim, Asistan’ın özensiz çalışmayı fark edip etmeyeceği ve “player” değişkenini “current_player” gibi başka bir şeyle yeniden adlandırıp adlandırmayacağıydı. Öyle oldu. Biraz. Ve bu büyük bir sorun çünkü Asistan’dan aldığımız şey gerçek değil. Süper gerçekçi bir rüya gibi. Gerçek gibi davranan ve yürüyen ama olmayan bir rüya içinde bir rüya. Burada ve oradaki bazı alternatif gerçekleri görmezden geldiğiniz sürece, çoğunlukla doğru olan gerçeklik kalıplarıdır. Ördek gibi yürüyen ve konuşan ördek olmayan biri gibi.

Yapay Zeka JavaScript Kodu Yazdı - Dream Within Dream

Açıklama sağlam. Kontrol etmek. Yeniden adlandırma konusunda benimle aynı fikirde. Oyuncu değişkenini “curent_player” olarak yeniden adlandırdı. Ancak yine Asistan yeni bir sorun ortaya çıkardığını anlamıyor. “player.SetVar”ı “player.SetVar” olarak tutmalıydı. Tüm “player” sözcüklerini “current_player” olarak yeniden adlandırdığınızda, “current_player” SetVar işlevine sahip olmadığı için kod tekrar bozulur. JavaScript ve Storyline’ı gerçekten anladıysa, bana vermesi gereken kod bu:

// sortedPlayers dizisindeki en iyi 5 oyuncu arasında dolaş

için (var i = 0; i < 5; i++) {

var current_player = sortedPlayers[i];

// Bir Storyline değişkeninin değerini ayarlamak için SetVar() yöntemini kullanın

player.SetVar(“playerName”, current_player.name);

player.SetVar(“playerScore”, current_player.score);

}

Nihai Problem

Şimdi, bu kodla ilgili kavramsal bir sorun da var. İstediğimiz gibi ilk beş isim ve skor arasında döngü yapıyor. Ancak, döngüde “playerName” ve “playerScore” gibi aynı Storyline değişkenlerini ayarlamaya devam ettiği için bunların üzerine yazmaya devam eder. Ekranda yalnızca beşinci değeri “playerName” ve “playerScore” öğelerini görüntülerseniz görürsünüz. Neden? Çünkü “oyuncuAdı”nı en iyi oyuncunun adına ayarlar ve ardından aynı “oyuncuAdı”nı ikinci, üçüncü, dördüncü ve beşinci oyuncunun adına ayarlar. Oldukça hızlıdır, dolayısıyla yalnızca son değeri, yani beşinciyi gözlemlersiniz.

En iyi beş oyuncuyu ve en yüksek puanları korumak için bu değerleri farklı Storyline değişkenlerinde saklamanız gerekir. bu yüzden yarattım topPlayer1, topPlayer2vb. ve topScore1, topScore2, vb. örnek .story dosyasında. JavaScript biliyorsanız, düzeltmeyi deneyebilirsiniz. Çözümü, örnek dosyadaki “Çözüm” slaytında bulabilirsiniz.

Çözüm

Genel olarak, ChatGPT inanılmaz miktarda bilgiyi hatırlar. Storyline’ın nasıl kullanılacağını rastgele açıklayabilmesi ve görünüşe göre JavaScript kodunu kolaylıkla yazabilmesi, geleceğe bir bakış. Ancak bu gelecek şimdilik bir hayal. Kesinlikle gerçekçi, ama yine de bir rüya. Detaylara çok dikkat ettiğinizde rüya içinde rüyada olduğunuzu anlarsınız. Asistanın hayal dünyası. Her gördüğünüze inanmayın ama hazırlanın, çünkü L&D’de çalışma şekliniz ve işlerinizi halletme şekliniz aynı olmayacak…

Kuzgun’dan alıntı: “Bir daha asla.”

Kaynaklar:

[1] https://chat.openai.com/chat

[2] Kaynak dosyası

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.