java----猜字符小游戏

刚学了方法,做了个小项目,猜字符小游戏,这里和大家分享一下。
我们通过要达到的效果来分析:

            1首先命令行窗口提示用户进入猜字符游戏,并显示“猜吧”
            2然后用户输入一个五位数的字符串(不能重复),接着系统进行判断
            3如果字符串为"EXIT"则退出游戏
            4如果没猜对则提示猜对的字符的个数和猜对位置的个数
            5如果猜对则给出分数,并退出游戏
            6分数的话是一个字符一百分,猜错一次扣十分。
我们来分析:
这个游戏需要用到哪些数据:
    1.char[] ch 用来接收系统产生的随机字符
    2.char[] input 用来接收用户输入的字符
    3.int score 用来接收分数
    4.int count 用来接收猜错次数
    5.int[] result 用来存放猜对个数和猜对位置个数
 定义方法:
   1. public static char[] generate(){//用来生成随机字符数组
                            char[] ch = new char[5];
                            ...
                            return ch;
        }
    2.public static int[] check(char[] ch,char[] input){//用来检查猜中几个和猜中位置情况
                            int[] result = new int[ch.length];
                            ...
                            return result;
    }

    代码如下:

   1. public static char[] generate(){
                            char[] letter = new char[26];//用来存放A-Z的字符
                            for(int i =0;i<letter.length;i++){
                                        letter[i]=(char)(i+65);//将字母对应编码强制转换为字符并存放在数组中
                            }
                            int index = 0;
                            boolean[] flag = new boolean[letter.length];//用来标记已经选过的字符
                            char[] ch = new char[5];
                            while(index<ch.length){
                                             int i = (int)(Math.random()*letter.length);
                                             if(flag[i]){//排除已经选过的字符
                                                     contiune;
                                             }
                                             ch[index]=letter[i];
                                             index++;
                                             flag[i]=true;
                            }
                            return ch;
        }

        2.public static in[] check(char[] ch,char[] input){
                                int[] result = new int[2];
                                for(int i= 0;i<ch.length;i++){
                                            for(int j=0;j<input.length;j++){
                                                        if(ch[i]==input[j]){
                                                                result[0]++;//猜中字符的个数
                                                                if(i==j){
                                                                        result[1]++;//猜中位置的个数
                                                                        break;//如果位置判断相同则不用扫描后面的字符了
                                                                }
                                                        }
                                            }
                                }
                                return result;
             }

             接下来开始写main函数
             public static void main(String[] agrs){
                                 char[] ch = generate();
                                 Scanner sc =new Sacnner(System.in);
                                 int count =0;
                                 int score =0;
                                 System.out.println("欢迎来到猜字符游戏");
                                 while(true){
                                                System.out.println("猜吧")
                                                String str = sc.nextInt().touppercase();//把输入的字符串转换为大写
                                                if(str.equal("EXIT")){
                                                            System.out.println("退出");
                                                            break;
                                                }
                                                char input = str.toCharArrays();//字符串转换为字符数组
                                                int result = check(ch,input);
                                                if(result[1]==ch.length){
                                                        score = 100*ch.length-10*count;
                                                        System.out.println("猜对了,得分:"+score)
                                                        break;
                                                }
                                                else{
                                                            System.out.println("猜对字符个数为"+result[0]+"猜对字符位置个数为"+result[1]);
                                                            count++;
                                                }
                                 }
             }

             这个游戏还可以加些小功能,比如通过改变猜测的字符串的长度来改变游戏难度,或者通过分数来限制游戏猜测次数等等,这里就不多写了,大家可以尝试下。

原文地址:http://blog.51cto.com/10972685/2070021

时间: 2024-11-04 16:55:08

java----猜字符小游戏的相关文章

day05-java-(方法,猜字符小游戏)

day05-java-(方法,猜字符小游戏) 1.方法:  1)用于封装一段特定的逻辑功能  2)方法应尽可能的独立,只干一件事  3)方法可以被反复的调用多次  4)避免代码重复,有利于代码的维护,有利于团队的协作开发 2.方法的定义:    修饰词 返回值类型 方法名(参数列表){      方法体    } 3.方法的调用:  1)无返回值: 方法名(有参传参);   2)有返回值: 数据类型 变量 = 方法名(有参传参);              方法名(有参传参);------不建议

三、猜字符小游戏

有猜字母游戏,其游戏规则为:程序随机产生5个按照一定顺序排列的字符作为猜测的结果,由玩家来猜测此字符串.玩家可以猜测多次,每猜测一次,则由系统提示结果.如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出:如果没有猜对,则提示猜测的结果,如猜对了几个字符,以及猜对了几个字符的位置等信息,并提示玩家游戏继续. 本案例要求使用交互的方式实现此游戏:由玩家在控制台输入所猜测的字符串,如果所猜测的字符串与结果并不完全相同,则在界面输出比较后的结果,并提醒玩家继续猜测.交互过程如图-7所示: 图-7可

猜字符小游戏

1 package MonkeyGuess; 2 import java.util.Scanner; 3 public class Guess { 4 5 public static void main(String[] args) { 6 Scanner scan = new Scanner(System.in); 7 char[] arr; 8 arr = array(); 9 System.out.println(arr);//作弊 10 int[] inp;//声明一个数组 11 int

猜字母小游戏

/** 猜字母小游戏  需求如下: 程序随机产生5个按照一定顺序排列的字符作为猜测的结果(5个字符不允许重复),由玩家来猜测此字符串. 玩家可以猜测多次(不区分大小写),每猜测一次,则由系统提示结果. (猜测过程中输入非英文字符或超过5个字符会要求重新输入正确字符). 如果猜测的完全正确,则游戏结束,计算玩家的游戏得分并输出: 如果没有猜对,则提示猜测的结果,例如 猜对了几个字符,以及猜对了几个字符的位置等信息,并提示玩家游戏继续. 如果玩家在控制台录入 exit(不区分大小写),则游戏中止,程

Java 初学 第一弹--编译并运行书上的简单程序(猜数字小游戏)

(博主原创) 首先说明一下,博主是大一上学期结束寒假时自己看的Java,然后我看的是Head First Java的中文版,因为大一学了c,所以里面的一些基本思想还是了解的,在看这本书时就浏览了一下(就是那种光看没有自己动手去敲代码的),然后看到书上的一个猜数字小游戏,就想手动敲一下,熟悉熟悉Java的语法,但是真正去做时,发现比看起来要困难一些. 首先是Java在建立一个源码文件之前要先建一个package,然后我用的Eclipse写的Java(感觉和pycharm风格差不多),再新建一个文件

需求:有一个猜数字小游戏,请写一个程序实现在测试类中只能使用5次,超过5次提示:游戏试玩结束,请付费。

package cn.idcast4; import java.io.FileNotFoundException;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.Reader;import java.io.Writer;import java.util.Properties; /* * 需求:有一个猜数字小游戏,请写一个程序实现在测试类中只能使用5次, *

个人项目-猜数字小游戏

一      题目简介 猜数字小游戏 二     源码的github链接 链接: https://github.com/gaoshuhua/master 三     所设计的模块测试用例.测试结果截图 import static org.junit.Assert.*; import org.junit.Test; public class GameTest { @Test public void test() { fail("Not yet implemented"); } } 四  

简单的猜数字小游戏

/** 简单的猜数字小游戏 要求如下: 用户输入想猜测数字的范围,输入1000则是0~1000之内的数字,程序就会内置一个 1 到 1000 之间的数字作为猜测的结果,由用户猜测此数字,用户每猜测一次,由系统提示猜测结果:大了.小了或者猜对了:直到用户猜对结果,则提示游戏结束.用户可以提前退出游戏,即,游戏过程中,如果用户录入数字0则游戏终止.加入新功能: 记次猜测次数功能,提示游戏开始时间,计猜测总用时功能,提示游戏结束时间 思路:1.用户输入电脑生成的数值取值范围,接收并判断是否是合理数值?

c语言:编写猜数字小游戏。

编写猜数字小游戏. 程序: #include<stdio.h> #include<time.h> void menu() { printf("***欢迎来挑战猜数字游戏***\n"); printf("*****请选择开始或退出*****\n"); printf("******1.start 0.exit******\n"); } void game() { int num = 0; srand((unsigned)tim