字母java 不往下执行掉游戏java代码

网站已改版,请使用新地址访问:
Demo05 简单的猜字母游戏,可以尝试一 循环,一些java包的方法运用 Game Program
238万源代码下载-
&文件名称: Demo05
& & & & &&]
&&所属分类:
&&开发工具: Java
&&文件大小: 1 KB
&&上传时间:
&&下载次数: 0
&&提 供 者:
&详细说明:简单的猜字母游戏,可以尝试一下,简单的循环,一些java包的方法运用-Simple guessing game alphabet
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&Demo05.java
&输入关键字,在本站238万海量源码库中尽情搜索:package day06;
import java.util.S
public class HomeWork {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String string = "GuessingGame";
System.out.println(string+"欢迎尝试猜字谜游戏!满分500分,最低分为0分!");
System.out.println(string+"请输入游戏级别(5,7,9)");
int n = scanner.nextInt();
int count = 0;
System.out.println(string+"游戏开始,请输入你所猜的"+n+"个字母的序列:(exit - 退出)");
char[] chs = generate(n);
System.out.println(chs);
while(true){
String s = scanner.next().trim().toUpperCase();
char[] input = s.toCharArray();
int[] result = check(chs, input);
int score = 500-count*10;
if(s.equals("EXIT")){
System.out.println("欢迎再次挑战!");
if(score&=0){
if(result[1] == chs.length){
System.out.println("恭喜你!猜对了!你的得分是:"+score);
System.out.println(string+"你猜对"+result[0]+"个字符,其中"+result[1]+"个字符的位置正确!(总次数="+count+",exit - 退出!");
// 声明一个方法,用于生成随机不同字符数组,n控制生成字符的个数
public static char[] generate(int n){
char[] chs = new char[n];
char[] letters = { '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.i++){
//letters下标
//生成随机下标
index = (int) (Math.random()*letters.length);
}while(flags[index]);//为true,则以存在,再次循环,取得不同的字符
chs[i] = letters[index];//给生成的新的数组赋值
flags[index] =//设置为false,说明这个位置已经有数据了
//声明一个方法,比较随机生成的数组和用户输入的数组,返回int数组,里面保存了对比后字符对的个数和位置对的个数
public static int[] check(char[] chs,char[] input){
int[] result = new int[2];
for(int i=0;i&chs.i++){
for(int k=0;k&input.k++){
if(chs[i] == input[k]){
result[0]++;//记录字符对的个数
result[1]++;//记录位置对的个数
阅读(...) 评论()在一个窗体上随机掉落字母,通过键盘输入,敲对后消除并且累计积分,否则扣除一定积分。
具体内容:
画一个窗体&&》产生随机字母&&》接受键盘输入&&》显示分数
package chapter01;
import java.awt.*;
import java.awt.event.KeyE
import java.awt.event.KeyL
import java.awt.event.WindowA
import java.awt.event.WindowE
public class MyChar {
public static void main(String[] args) {
Frame w = new Frame() ;
w.setSize(300 , 400) ;
MyPanel mp = new MyPanel() ;
w.add(mp) ;
Thread t = new Thread(mp) ;
t.start() ;
w.addKeyListener(mp) ;
mp.addKeyListener(mp) ;
w.show() ;
//响应程序关闭按钮
w.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e)
System.exit(0);
class MyPanel extends Panel implements Runnable , KeyListener{
int x[] = new int[10] ;
int y[] = new int[10] ;
char c[] = new char[10] ;
int score = 1000 ;
MyPanel() {
for (int i = 0; i & 10; i++) {
x[i] = (int)(Math.random()*300) ;
y[i] = (int)(Math.random()*300) ;
c[i] = (char)(Math.random()*26+97) ;
public void paint(Graphics g){
for(int i = 0 ; i & 10 ; i ++){
g.drawString(new Character(c[i]).toString(), x[i] , y[i]) ;
//显示成绩
g.setColor(Color.RED) ;
g.drawString("你的成绩是:"+score, 5, 15) ;
public void run() {
while(true){
for (int i = 0; i & 10; i++) {
if(y[i]&400){
y[i] = 0 ;
x[i] = (int)(Math.random()*300) ;
c[i] = (char)(Math.random()*26+97) ;
score -= 100 ;
Thread.sleep(30) ;
}catch(Exception e)
e.printStackTrace();
repaint() ;
public void keyPressed(KeyEvent arg0) {
char keyC = arg0.getKeyChar() ;
int nowY = -1 ;
int nowIndex = -1 ;
for(int i = 0 ; i & 10 ; i ++){
if(keyC==c[i] && y[i]&nowY){
nowY = y[i] ;
nowIndex =
if(nowIndex!=-1){
y[nowIndex] = 0 ;
x[nowIndex] = (int)(Math.random()*300) ;
c[nowIndex] = (char)(Math.random()*26+97) ;
score += 10 ;
score -= 100 ;
public void keyReleased(KeyEvent arg0) {
// TODO Auto-generated method stub
public void keyTyped(KeyEvent arg0) {
// TODO Auto-generated method stub
}运行截图:
注意事项:
&(1)用的是最初的窗体类Frame,因为想比较一下和Jframe的区别,好吧,效果很明显
(2)里面用到了JAVA Frame 响应窗口关闭事件,响应了监听事件。如果是JFrame& 只需要加一句话:&setDefaultCloseOperation
(3)随机产生字母,考虑到了ASCII(97a-123z),具体方法是(char)(Math.random()*26+27)
(4)画字符的时候用到了drawString方法,但是它的第一个参数是字符串,怎么办呢,之前是用字符数组存储起来的,解决办法是new Character(c[i]).toString()
(5)如果字符落到屏幕下方,需要随机产生字母,并且位置还不能和以前一样,所以加了一个判断if(y[i]&400){y[i]=0;x[i]=(int)(Math.random()*300;)}用来生成随机位置
(6)有一个逻辑上需要考虑的点,那就是输入匹配的字母需要是最靠下的,用到了两个变量nowy和nowIndex,在字符数组中查找时先找到y值最大的数,然后记录下它的下标,再然后是重画
这是java入门的第一个小程序,关于基础语法和写代码的逻辑都有了更深一层的认识,特别是敲20遍之后,真的是头脑异常兴奋。
记得刚开始接触编程的时候,是c语言入门的,讲课的老师是一位上了年龄的老师,听的第一节课真的是枯燥无味,当时就想,天呐,编程难道就是这样的吗?!
后来又学的C++,讲课的女老师也只是在课堂上堆砌知识点,当时还没有真正入门。
后来有幸在图书馆看到了达内集团王洋老师写的《java就该这样学》,对于他推崇的构建主义学习法甚是震撼,颠覆了之前的学习观念,在跟着他实现一个又一个小的游戏或项目的时候,真心感觉到了编程逻辑之美。
阅读(...) 评论()POJ 3752 字母旋转游戏 [解题报告] Java
POJ 3752 字母旋转游戏 [解题报告] Java
, , 围观1790次
字母旋转游戏
问题描述 :
给定两个整数M,N,生成一个M*N的矩阵,矩阵中元素取值为A至Z的26个字母中的一个,A在左上角,其余各数按顺时针方向旋转前进,依次递增放置,当超过26时又从A开始填充。例如,当M=5,N=8时,矩阵中的内容如下:
M为行数,N为列数,其中M,N都为大于0的整数。
分行输出相应的结果
import java.io.BufferedInputS
import java.util.S
* @author NC
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(new BufferedInputStream(System.in));
if (scan.hasNext()) {
int m = scan.nextInt();
int n = scan.nextInt();
int num = m *
int[][] letter = new int[m][n];
for (int i = 0; i & letter. i++) {
for (int j = 0; j & letter[i]. j++) {
letter[i][j] = -1;
int i = 0, j = 0;
int count = 0;
if (m != 1 && n != 1) {
while (true) {
if (letter[i][j] != -1) {
for (int k = 0; k & k++) {
letter[i][j + k] =
j = j + n - 1;
if (m != 1) {
for (int k = 1; k & m - 1; k++) {
letter[i + k][j] =
i = i + m - 1;
for (int k = 0, c = 0; c & k--, c++) {
letter[i][j + k] =
j = j - n + 1;
for (int k = -1, c = 1; c & m - 1; c++, k--) {
letter[i + k][j] =
i = i - m + 2;//这里不一样
j = j + 1;
m = m - 2;
n = n - 2;
} else if (m == 1 && n == 1) {
letter[0][0] = 0;
} else if (m == 1) {
for (int k = 0; k & k++) {
letter[0][k] =
for (int k = 0; k & k++) {
letter[k][0] =
for (int k = 0; k & letter. k++) {
for (int v = 0; v & letter[k]. v++) {
char ch = (char) (letter[k][v] % 26 + 'A');
System.out.print(&
System.out.println();
您可能还会对这些文章感兴趣!

我要回帖

更多关于 java string 去掉字母 的文章

 

随机推荐