首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hang Man中的分数计算:Java代码

Hang Man中的分数计算:Java代码
EN

Stack Overflow用户
提问于 2016-01-11 05:38:06
回答 1查看 70关注 0票数 0

我用Java.But写了一个Hang Man游戏的代码,我写不出合适的代码,也找不到计算用户分数的方法,并在用户端打印出来,用0:stop.Here命令是分数计算规则;

分数的计算方法是单词的字母数减去当前显示的字母数。这里的“表”分数是5-4=1,因为当用户猜测时,已经显示了4个字母。

如果用户猜测不正确,分数为0如果在猜测之前完成了男子的图形,则分数为0

同一用户玩游戏的每一次都是一个会话,同一个词不能被计算机容纳。如果“表”是作为“事物”持有的,那么它就不能在同一会话中被计算机再次持有。

当用户在主菜单中按0时,会话结束。

播放次数、正确猜测次数和用户总分都会显示在屏幕上。

此外,我有一个问题,以防止随机选择的单词数组中的重复

代码语言:javascript
复制
import java.util.Random;
import java.util.Scanner;
public class CEVIK_CAGATAY{
    public static char[] star;
        public static void main (String args[])
        {   
            char game[];
            int category;
            int correct=0;
            Scanner input = new Scanner(System.in);
            Random r = new Random();
            int totalplay=0;
            int totalscore=0;
            String man[] = new String[7];
            man[2] = " --\n o |\n/  |\n   |\n_____\n";
            man[3] = " --\n o |\n/| |\n   |\n_____\n";
            man[4] = " --\n o |\n/|\\|\n   |\n_____\n";
            man[5] = " --\n o |\n/|\\|\n/  |\n_____\n";
            man[6] = " --\n o |\n/|\\|\n/ \\|\n_____\n";
            String arr[]={"serhat","cagatay","begum","emre","berk","ali","veli","istanbul",
            "ankara","mersin","izmir","antalya","new york","samsun","kedi","kopek",
            "kus","ayi","bocek","karinca","manda","masa","pencil","bag","clock","televison","book","glass"};
            int arr1 []={6,7 };


            System.out.println("0 To Stop,1 to Continue");
            category=input.nextInt();



            while(category!=0){


            System.out.println("0 To STop,1 to Continue"); 








        String word = arr[r.nextInt(arr.length)];
            for(int i=0; i<arr.length;i++) {
                if(arr[i]==word){
                    int letterlength=arr1[i];
                }
                //letterlength-existedlength=guessremain;


            }
            int count = word.length();
            char[] CharArr=word.toCharArray(); 
            char[] star = word.toCharArray();
        for(int i=0;i<star.length;i++)
        {
            star[i] = '*';
            System.out.print(star[i]);

        }


        for (int i=1; i<=5; i++)
        {
            System.out.printf ("\nGuess a Letter:");
            char letter= input.next().charAt(0);

            for (int j=0;j<CharArr.length; j++)
            {
                if(letter == star[j])
                {
                    System.out.println("this word already exist");
                }
                else
        {
                    if(letter==CharArr[j])
                    {
                        star[j]=letter;
                        i--;
                        System.out.printf("CORRECT GUESS!\n");
                        correct++;
                    }
                }
            }
            System.out.print(star);
            switch(i+0)
            {
                    case 1: System.err.printf("Strike 1\n");
                    System.out.println(man[2]);
                        break;
                    case 2: System.err.printf("Strike 2\n");
                    System.out.println(man[3]);
                        break;
                    case 3: System.err.printf("Strike 3\n");
                    System.out.println(man[4]);
                    break;
                    case 4: System.err.printf("Strike 4\n");
                    System.out.println(man[5]);
                    break;
                    case 5: System.err.printf("Strike5\n");


                        System.err.printf("You're out!!! The word is Not_Matched\n");
                        System.out.println(man[6]);
                        break;
            }   


            System.out.printf("\n");
            if((new String(word)).equals(new String(star))) 
            {
                System.err.printf("Winner Winner\n");
                break;
            }
        }
        totalplay++;
        totalscore+=correct;
        System.out.println("CONTINUE 1,STOP 0");
        category=input.nextInt();
        if(category==0) {
            System.out.println(totalplay);
            System.out.println(totalscore);
        }

    }

            }


        }
EN

回答 1

Stack Overflow用户

发布于 2016-01-11 06:16:42

去掉以下for循环。除了抛出数组索引越界错误外,它没有任何用途。您的程序在没有它的情况下运行。也要确保实践语言的最佳实践(例如用于命名变量的camelCase )。它使人们更容易理解您的代码。

代码语言:javascript
复制
for(int i=0; i<arr.length;i++) {
    if(arr[i]==word){
        int letterlength=arr1[i];
    }
    //letterlength-existedlength=guessremain;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34711086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档