ChatGPT は Java を使用して推測ゲームを作成します

目次

ChatGPTを使って書いたコードは以下の通り

        既存の問題

改善された Java コード


        プログラミングを学ぶ学生の多くは、当てっこゲームという言葉を聞いたことがあると思います. 学習サイクルの放課後の宿題にこのトピックがあると思います. ちょうど今、ChatGPTが燃えているときに、私もこのコードを書いてみました.残念ながら、そのコードにはバグがあり、数を推測する機能をうまく実現できていません。

ChatGPTを使って書いたコードは以下の通り

import java.util.Random;
import java.util.Scanner;

public class GuessNumberGame {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();
        int numberToGuess = random.nextInt(100) + 1;
        int numberOfTries = 0;
        boolean win = false;

        System.out.println("欢迎来到猜数字游戏!");

        while (!win) {
            System.out.print("请输入一个 1 到 100 之间的整数:");
            int guess = scanner.nextInt();
            numberOfTries++;

            if (guess == numberToGuess) {
                System.out.println("恭喜你,猜对了!");
                System.out.println("你猜了 " + numberOfTries + " 次。");
                win = true;
            } else if (guess < numberToGuess) {
                System.out.println("猜的数字太小了,请再试一次。");
                System.out.println("范围是 " + (guess + 1) + " 到 100。");
            } else {
                System.out.println("猜的数字太大了,请再试一次。");
                System.out.println("范围是 1 到 " + (guess - 1) + "。");
            }
        }

        scanner.close();
    }
}

这个程序首先生成一个 1 到 100 之间的随机整数,然后提示用户输入一个整数并进行比较,直到用户猜对为止。程序还会记录用户猜的次数并在猜对后输出。如果用户猜错了,程序会提示用户当前猜测的数字不在正确的范围内,并提示正确的范围。

        既存の問題

        デバッグ後、彼のプロンプトの範囲はそれほど正確ではなく、対応する例外処理メカニズムがないことがわかりました。

改善された Java コード

package mySourceCode;

import java.util.Scanner;

public class guessNumber {
    public static void main(String[] args) {

        guessNumbers();
    }

    /**
     * 猜数游戏
     */
    public static void guessNumbers() {
        Scanner scan = new Scanner(System.in);
        System.out.println("数字范围:[1,100]");
        System.out.println("请输入你的猜测:");
        int max = 0;
        int min = 101;
        try {
            int inPut = scan.nextInt();
            int ints = (int) (Math.random() * 100 + 1);// [1,100]

            int counts = 0;
            while (inPut != ints) {
                counts++;
                if (inPut > ints) {
                    System.out.println("\t大了,已尝试:" + counts + " 次");
                    if (max != 0) {
                        max = Math.min(max, inPut);
                    } else {
                        max = inPut;
                    }
                    if (min == 101) {
                        System.out.println("\t范围:(0 , " + max + ")");
                    } else {
                        System.out.println("\t范围:(" + min + " , " + max + ")");
                    }
                } else {
                    System.out.println("\t小了,已尝试:" + counts + " 次");
                    if (min != 101) {
                        min = Math.max(min, inPut);
                    } else {
                        min = inPut;
                    }
                    if (max == 0) {
                        System.out.println("\t范围:(" + min + " , 100)");
                    } else {
                        System.out.println("\t范围:(" + min + " , " + max + ")");
                    }
                }
                inPut = scan.nextInt();// 实现持续输入,直到正确为止
            }
            System.out.println("\t对了,共尝试:" + (counts + 1) + " 次");
        } catch (Exception es) {
            System.out.println(es.getMessage());
        }
    }

}

 

        以上のことからわかるように、ChatGPT は確かにコードを書くことができますが、基本的な例外処理や境界条件の考慮はできません.同時に、バグがある可能性があり、人間が書いたコードとは明確なギャップがあります.

おすすめ

転載: blog.csdn.net/qq_57163366/article/details/130057420