Chat-GPT

Jag pluggar kinesiska och har hittills lärt mig drygt femtio ord. För att testa mig själv skrev jag ner orden på ett papper med kolumner för svenska, pinjin och kinesiska tecken. Genom att hålla över till exempel de två kinesiska kolumnerna, försökte jag för varje svenskt ord på en mini-whiteboard skriva de kinesiska (se bilden ovan). När jag tyckte att jag felfritt kunde komma ihåg alla, provade jag att slumpvis välja ord ur listan, men det resulterade i rätt många fel och att jag inte ens kom ihåg vissa av dem. Att alltid ta dem i samma ordning underlättade sannolikt. Så jag tänkte göra en en super-minivariant av flashcards med hjälp av php och ladda upp det på min webbplats, för att ha listan tillgänglig. Men då jag inte är särskilt bevandrad i php, bad jag Chat-GPT göra scriptet åt mig. Frågan jag ställde var:

Give me a PHP-script that randomly select words from a list one by one until all are taken and then start all over.

Svaret kom snabbt, förstås, och efter några rundor med begäran om extra funktionalitet fick jag ett script jag var nöjd med. Trots att jag frågade den andra saker där emellan, minns den min ursprungliga fråga. Jag behövde bara skriva …

In the php-script, I want the button to be on the top.

… så fixade den det. Måste säga att jag var rätt imponerad över hur rätt allt blev så jag frågade:

How do you generate code based on a prompt?

Så här svarade den:

I generate code based on a prompt by understanding the requirements and breaking them down into logical steps. Here's how the process typically works:

1. **Understand the Problem**
When given a prompt, I first analyze it to understand what kind of functionality is needed, such as what the input is, what the desired output is, and any specific constraints or preferences.

2. **Recognize Patterns**
Many programming tasks follow common patterns (like loops, conditionals, or specific algorithms), and I use my knowledge to match the problem to those patterns. For example:
- If the prompt involves iterating through a list, I know to use loops.
- If it involves conditional logic, I’ll apply `if-else` statements.

3. **Apply Syntax & Structure**
Based on the language specified (e.g., PHP, Python, JavaScript), I use the correct syntax for loops, functions, data structures, etc. I also take care of good coding practices, such as modularization (breaking code into functions), error handling, and clarity.

4. **Handle Specific Details**
If the prompt requires a specific feature, such as UI elements or interactions, I incorporate the correct HTML, CSS, or JavaScript for web development or specific functions for other programming contexts.

5. **Refinement**
As I generate code, I ensure that it's logically sound and efficient, incorporating necessary optimizations and improvements. I also make sure it handles edge cases or errors where possible.

Example
When you asked for a PHP script that randomly selects words, I broke down your request into tasks:
- Track selected words using a session.
- Randomly pick an unselected word.
- Reset and start again when the list is exhausted.
- Display and format the output correctly.

This process ensures I create functional and efficient code tailored to your needs!

Nu är ju inte detta världens svåraste uppgift, men jag hade inte kunnat gjort det bättre själv (vilket i och för sig inte säger så mycket) och framförallt ha svårt att motivera mig för sätta mig in i PHP bara för detta. Det här inlägget är också i någon mån en illustration till det hjälpmedel jag gissar chatgpt blivit i den professionella mjukvarutvecklingen. Den är som en kompilator. Prova scriptet här!

Men hur blev php-scriptet då? Jo så här:

<?php
session_start();

// Define the list of words
$words = array("ett", "två", "två st", "tre", "fyra", "fem", "sex", "sju", "åtta", "nio", "tio", "hundra", "jag/mig", "du/dig", "han/honom", "hon/henne", "plural suffix pronomen", "frågeord uppföljning", "den här", "den där", "vem", "vilken", "med/och", "frågepartikel", "genetivpartikel","hur många", "vad", "innevarande", "subst-suffix son", "att vara", "att befinna sig", "ha/finnas", "kunna", "vilja/önska", "stycke/bit", "volym(böcker)", "mun", "år(ålder)!", "myntenhet", "bra", "stor", "liten", "gammal", "mitten", "fåtal/några", "gynsam", "igen", "också", "nej/inte", "nej/inte (ha)", "alla", "många/flera", "mycket", "älska", "tycka om", "glad/lycklig");

$totalWords = count($words); // Total number of words in the list

// Initialize the session to track shown words and the counter if not set
if (!isset($_SESSION['shown_words'])) {
    $_SESSION['shown_words'] = [];
    $_SESSION['word_counter'] = 1; // Word counter for each word shown
}

// Pick the next word
if (count($_SESSION['shown_words']) < count($words)) {
    // Find the next word that hasn't been shown
    do {
        $randomWord = $words[array_rand($words)];
    } while (in_array($randomWord, $_SESSION['shown_words']));

    // Add the word to the list of shown words
    $_SESSION['shown_words'][] = $randomWord;

    // Check if it's the last word in the list
    if (count($_SESSION['shown_words']) == count($words)) {
        $lastWordWarning = "<p style='color: red;'>Warning: You have reached the last word in the list!</p>";
    } else {
        $lastWordWarning = "";
    }
} else {
    // If all words have been shown, reset the session and start again
    $_SESSION['shown_words'] = [];
    $_SESSION['word_counter'] = 1; // Reset word counter for the new round
    $randomWord = $words[array_rand($words)];
    $_SESSION['shown_words'][] = $randomWord;
    $lastWordWarning = "";
}

// Display the word and increment the global counter
$currentCount = $_SESSION['word_counter']++;
?>

<!-- Button at the top -->
<form method="POST">
    <button type="submit">Next Word</button>
    <span>Total words: <?php echo $totalWords; ?></span> <!-- Display total words next to the button -->
</form>

<?php
// Show last word warning if applicable
echo $lastWordWarning;

echo "<h2>$currentCount: \"$randomWord\"</h2>";

// Show the list of all words printed so far in one line, comma-separated
echo "<h3>Words shown so far:</h3>";
echo implode(', ', $_SESSION['shown_words']);
?>

Leave a Reply

Your email address will not be published. Required fields are marked *