黑马程序员技术交流社区

标题: 模拟版金山打字通程序 [打印本页]

作者: 何亚辉    时间: 2016-5-21 00:36
标题: 模拟版金山打字通程序
本帖最后由 何亚辉 于 2016-5-22 14:45 编辑

import java.util.Scanner;
class TypeLetter {
        static int end =0;
        static int time =0;
        public static void main(String[] args) {
                System.out.println("欢迎来到玉梅打字游戏");
                System.out.println("请选择");
                System.out.println("1. 英文字母");
                System.out.println("2, 中文汉字");
                Scanner sc = new Scanner(System.in);
                int a =sc.nextInt();
                boolean b = true;
                int typeNumber=1;
                char[] getType = new char[30];
char[] standard = {'黎','玉','梅','我','爱','你','永','远','一','生','不','变','天','长','地','久','有','时','尽','此','恨','延','绵','无','绝','期'};
                if (a==1) {
                        standard=new char[]{'A','B','C','D','E','F','G','H','I','J','K','L','M','N','U','V','W','X','Y','O','P','Q','R','S','T','Z'};
                }
                int wrongNumber=0;
                String s;
                Time t = new Time();
                new Thread(t).start();
               
        A:        while (true) {
                if (b) {
                        while (true) {       
                                if (typeNumber%31==0) {
                                        System.out.println("\n"+"请输入上面的字母");
                                        b=false;
                                        continue A;
                                }
                                getType[typeNumber %31-1]= standard[(int)(standard.length*Math.random())];
                                System.out.print(getType[typeNumber %31 -1]);
                                try {
                                        Thread.sleep(100);
                                }
                                catch (Exception e) {
                                }       
                                typeNumber++;
                        }
                }
                if (!b)  {
                        Scanner s0 = new Scanner(System.in);
                        s= s0.nextLine();
                       
                        System.out.println();
                               
                        if (s.length()==30&&typeNumber<63) {       
                                for (int i=0;i<=29 ;i++ ) {
                                        if (!(s.charAt(i)==(getType))) {
                                                wrongNumber++;
                                        }
                                }
                                b=true;
                                s="";
                                typeNumber++;
                                if (typeNumber==63) {
                                if (wrongNumber >=5) {
                                        System.out.println("您一共输入错误"+wrongNumber +"个字母, 太差了");
                                }else if (wrongNumber==0) {
                                System.out.println("你太厉害了,一个都没错哦");
                                }else {
                                System.out.println("您一共输入错误"+wrongNumber +"个字母, 还需努力");
                                }
                                end=1;
                                break;
                        }
                                continue A;
                        }       
                }
                }       
        }
}

class Time extends TypeLetter implements Runnable {
       
        public void run(){
        while (true) {
                if (end ==1) {
                        System.out.println("您一共用时"+time +"秒");
                        return;
                }
                try {
                        Thread.sleep(1000);
                        time++;
                }
                catch (Exception e) {
                }
        }
        }
}


作者: 何亚辉    时间: 2016-5-21 00:40
这是一个很简单的程序,   练习打字,,,打完字之后会统计你打错多少个字,,,,,
作者: a499543100    时间: 2016-5-21 03:38
好长的代码
作者: hycold    时间: 2016-5-21 04:33
路过学习
作者: tuan2016    时间: 2016-5-21 08:06
感谢分享,辛苦
作者: Mr.Wu    时间: 2016-5-21 08:06
很牛呀,想必花了一些时间。
作者: pal_xie    时间: 2016-5-21 22:20
哈哈  楼主会玩....
作者: 何亚辉    时间: 2016-5-22 14:46
Mr.Wu 发表于 2016-5-21 08:06
很牛呀,想必花了一些时间。

没有,这个逻辑恨简单的,,   我现在又加了一点功能,可以选择键入中文或者英文,,然后最后会告诉你,你花了多少时间
作者: 何亚辉    时间: 2016-5-22 14:49
pal_xie 发表于 2016-5-21 22:20
哈哈  楼主会玩....

嘿嘿, 就是 自己在金山练字的时候感觉好像这个程序不是很难写,所以就试一下..   
作者: 王子鹏    时间: 2016-5-22 17:20
厉害!   ~~~
作者: 石头stone    时间: 2016-5-22 17:29
哎呦,不错哟
作者: 何亚辉    时间: 2016-5-22 19:11
石头stone 发表于 2016-5-22 17:29
哎呦,不错哟

谢谢
作者: huburt    时间: 2016-5-22 19:16
感觉是秀恩爱的!
作者: Heimazdt    时间: 2016-5-22 19:26
666666我刚学基础 感觉看着有点费劲啊啊啊啊!!!!!
作者: 骄阳登峰    时间: 2016-5-22 20:51
不错,这么多代码?
作者: Aaron9527    时间: 2016-5-22 21:34
TypeLetter.java:50: 错误: 不可比较的类型: char和char[]
                                         if (!(s.charAt(i)==(getType))) {
                                                          ^
1 个错误
作者: 何亚辉    时间: 2016-5-23 00:14
Aaron9527 发表于 2016-5-22 21:34
TypeLetter.java:50: 错误: 不可比较的类型: char和char[]
                                         if ( ...

很奇怪,我的代码getType后面明明是有个【i】的,   传上来的时候就没了
作者: Aaron9527    时间: 2016-5-24 23:21
何亚辉 发表于 2016-5-23 00:14
很奇怪,我的代码getType后面明明是有个【i】的,   传上来的时候就没了

知道啦 谢谢楼楼~很棒噢




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2