java 数组 三角形_Java数组重修,猜数小游戏改进和打印正三角形

数组重修,猜数小游戏

要求:从键盘输入一个数,判断数组是否包含此数,运用随机数

我们可能会这样写

import java.util.Random;

import java.util.Scanner;

import org.junit.Test;

/**

* 数组示例:从键盘输入一个数,判断数组是否包含此数

* @author fei

*/

public class GuessNum {

@Test

public void guessNum() {

Random rand = new Random();// 产生随机数的工具,生成的是伪随机数

int[] sysNums = new int[5];// 准备长度为5的数组

int len = sysNums.length;// 保存数组的长度

for (int i = 0; i < len; i++) {// for循环为数组元素赋值

// 生成一个10以内的数并赋值给数组元素

sysNums[i] = rand.nextInt(10);

}

System.out.println("请输入一个你认为数组中存在的数:(10以内)");

Scanner input = new Scanner(System.in);// 接收用户的输入

int userNum = input.nextInt();

// 遍历数组,判断猜的数字是否存在于数组

for (int temp : sysNums) {

if (userNum == temp) {

System.out.println("恭喜,猜对了!");

break;

} else {

System.out.println("很遗憾,没猜对");

}

}

}// guessNum

}

输出结果:

情况一:猜错

1d234478b6c261425953dd8706c91968.png

情况二:猜对了

6d4b39d57b451f7dd7ef331a60e80ef7.png

我们看到,不管猜对,还是猜错,程序输出好多次提示信息,这不是我们想要的结果。

下面是方法改进后的代码

@Test

public void guessNumPlus() {

Random rand = new Random();

// 定义数组并循环随机赋值

int[] sysNums = new int[5];

int len = sysNums.length;

for (int i = 0; i < len; i++) {

sysNums[i] = rand.nextInt(5);

}

// 提示并接收玩家输入

System.out.println("请输入一个你认为数组中存在的数:(10以内)");

Scanner input = new Scanner(System.in);

int userNum = input.nextInt();

// 循环遍历判断数组是否包含玩家猜的数,并以isRight标记是否猜中

boolean isRight = false;

for (int temp : sysNums) {

if (userNum == temp) {

isRight = true;

break;

}

}

// 根据标记输出相应提示信息

if (isRight) {

System.out.println("恭喜,猜对了!");

} else {

System.out.println("很遗憾,没猜对");

}

}// guessNumPlus

输出结果:

情况一:猜对

be69c92f03697f7fb5aedd7981f3f997.png

情况二:猜错

4461ad550cba172a2d8a356df265ed90.png

终于ok,一切正常,舒服了

当然,还有很多改进的地方,比如给几次机会,加上循环啥的

数组重修,打印三角形

import org.junit.Test;

/**

* i数组示例:打印正三角形

* @author fei

*/

public class PrintTriangle {

@Test

public void printTriangle() {

// 定义一个字符数组

char[] chars = { 'A', 'B', 'C', 'D', 'E', 'F', 'G' };

int len = chars.length;

// 外循环控制行数

for (int i = 1; i <= len; i++) {

for (int j = i; j < len; j++) {

// 输出空格

System.out.print(" ");

}

for (int j = 1; j <= i * 2 - 1; j++) {

System.out.print(chars[i - 1]);

}

System.out.println();

}

}

}

输出结果:

5e7564ab0a85ed36759e48aef820bf43.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
下面是一个简单的Java游戏的图形界面实现代码: ```java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class GuessNumberGUI extends JFrame implements ActionListener { private JTextField inputField; private JLabel outputLabel; private int randomNumber; private int numGuesses; public GuessNumberGUI() { super("数字游戏"); randomNumber = (int) (Math.random() * 100) + 1; numGuesses = 0; JPanel panel = new JPanel(); panel.setLayout(new GridLayout(3, 1)); JLabel promptLabel = new JLabel("输入一个 1 到 100 之间的整数:"); inputField = new JTextField(10); inputField.addActionListener(this); outputLabel = new JLabel("你还没有过。"); outputLabel.setHorizontalAlignment(SwingConstants.CENTER); panel.add(promptLabel); panel.add(inputField); panel.add(outputLabel); setContentPane(panel); pack(); setVisible(true); } public void actionPerformed(ActionEvent e) { int guess; String inputString = inputField.getText().trim(); try { guess = Integer.parseInt(inputString); } catch (NumberFormatException ex) { outputLabel.setText("输入必须是一个整数。"); return; } numGuesses++; if (guess == randomNumber) { outputLabel.setText("恭喜你对了!你一共了 " + numGuesses + " 次。"); inputField.setEnabled(false); } else if (guess < randomNumber) { outputLabel.setText("你小了。你已经了 " + numGuesses + " 次。"); } else { outputLabel.setText("你大了。你已经了 " + numGuesses + " 次。"); } inputField.setText(""); } public static void main(String[] args) { new GuessNumberGUI(); } } ``` 这个程序使用了Java的Swing库来创建一个简单的图形用户界面。程序生成一个 1 到 100 之间的随机数,并要求用户输入一个整数来测这个随机数。每次用户测时,程序会告诉用户他们的数字是太大了还是太小了,直到用户对为止。程序还会记录用户测的次数,并在用户对时显示出来。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值