欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java 实现一个简单的猜字符小游戏

程序员文章站 2022-05-03 12:49:15
...

用java的一些基础知识来实现一个简单的猜字母的小游戏,就在控制台玩玩,目得也是为了熟悉熟悉java的基础知识。

首先系统随机产生5个字母,然后我们认为输入5个字母,输入的字母和系统随机产生的字母做比较,只有当5个字母顺序完全正确才算猜对。总分为500分,猜错一次扣10分,输入“exit”退出游戏。

代码如下:

package com.test.basics;

import java.util.Scanner;

public class GuessGame {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		char[] chs = generator();
		StringBuffer rand = new StringBuffer();
		for(char ch:chs) {
			rand.append(ch);
		}
		System.out.println("随机产生的字符为:"+rand.toString());//作弊,否则不好猜啊
		int count = 0;
		while(true) {
			System.out.println("请输入五个字母:");
			String str = scan.nextLine().toUpperCase();//获取输入的字符串,并将其转化为全大写
			if(str.equals("EXIT")) {
				System.out.println("欢迎下次再来!");
				break;
			}
			char[] input = str.toCharArray();
			int[] result = check(chs, input);
			if(result[0]==input.length) {
				int score = 100*input.length-10*count;
				System.out.println("恭喜你,猜对了,得分为"+score);
				break;
			}else {
				count++;
				System.out.println("本次位置对的字母个数为:"+result[0]+";字母正确的个数为:"+result[1]);
			}
			
		}
	}
	
	//产生随机字符的方法
	public static char[] generator() {
		char[] chs = new char[5];
		char[] letters = new char[]{ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
		           				'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
		        				'W', 'X', 'Y', 'Z' };
		boolean[] flags = new boolean[letters.length];
		for(int i=0;i<chs.length;i++) {
			int index;
			do {
				index = (int)(Math.random()*letters.length);
			}while(flags[index]==true);
			chs[i] = letters[index];
			flags[index] = true;
		}
		return chs;
	}
	
	//随机字符和输入的字符对比的结果
	public static int[] check(char[] chs,char[] input) {
		int[] result = new int[2];//result[0]表示位置猜对了,result[1]表示字符猜对了
		for(int i=0;i<chs.length;i++) {
			for(int j=0;j<input.length;j++) {
				if(chs[i]==input[j]) {
					result[1]++;
					if(i==j) {
						result[0]++;
					}
					break;
				}
			}
		}
		return result;
	}
	
}

相关标签: java基础知识