欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實現(xiàn)猜數(shù)字小游戲(Swing版)

 更新時間:2022年06月06日 16:35:01   作者:預(yù)見未來to50  
這篇文章主要介紹了java實現(xiàn)猜數(shù)字小游戲,Swing編程版的猜數(shù)字游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

2008年的時候,在學(xué)習Java how to program第五版的時候,寫過一個猜數(shù)字小游戲,是用Applet寫的;
現(xiàn)在,我要用Swing重寫這個小游戲,同時,加入一些新功能,如:背景顏色(紅色表示偏高,藍色表示偏低)、彈框、字體控制、布局管理器的使用。

運行截屏:

代碼如下:

//Guess a number between 1 and 1000
//Java how to program, 10/e, Exercise 12.14
//by pandenghuang@163.com
/* (Guess-the-Number Game) Write an application that plays “guess the number” as follows:
Your application chooses the number to be guessed by selecting an integer at random in the range
1–1000. The application then displays the following in a label:
I have a number between 1 and 1000. Can you guess my number?
Please enter your first guess.
A JTextField should be used to input the guess. As each guess is input, the background color
should change to either red or blue. Red indicates that the user is getting “warmer,” and blue,
“colder.” A JLabel should display either "Too High" or "Too Low" to help the user zero in. When
the user gets the correct answer, "Correct!" should be displayed, and the JTextField used for
input should be changed to be uneditable. A JButton should be provided to allow the user to play
the game again. When the JButton is clicked, a new random number should be generated and the
input JTextField changed to be editable.
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.BorderLayout;
import static java.awt.BorderLayout.*;
 
public class NumberGuessGame2016 extends JFrame {
int number,random,counter=0;
JLabel welcomeJLabel;
JLabel hintJLabel;
JTextField guessField;
JPanel panel;//顯示不同背景色
 
 
public NumberGuessGame2016() {
  super("猜數(shù)字小游戲游戲");
  setLayout(new BorderLayout());
  
  panel=new JPanel();
  panel.setBackground(Color.WHITE);
 
  welcomeJLabel= new JLabel("游戲規(guī)則:已隨機生成一個1到1000的整數(shù),您能在10次以內(nèi)猜出來嗎?");
  welcomeJLabel.setFont(new Font("Simsun",1,10));
  add(welcomeJLabel,NORTH);
 
  guessField=new JTextField(20);
  guessField.setFont(new Font("Arial",1,10));
  panel.add(guessField);
  add(panel); //默認添加到中間
 
  hintJLabel= new JLabel("");
  add(hintJLabel,SOUTH);
  hintJLabel.setFont(new Font("Simsun",1,10));
   
  TextFieldHandler handler=new TextFieldHandler();
  guessField.addActionListener(handler);
 
  random=(int)(1+1000*Math.random());
  
}
 
private class TextFieldHandler implements ActionListener 
{
  // process textfield events
 
  @Override
  public void actionPerformed (ActionEvent event)
  {
  while(true){
   number=Integer.parseInt(guessField.getText());
   while(number!=random)
   {
     number=Integer.parseInt(guessField.getText());
     if(number>random)
       {
       hintJLabel.setText("猜高了,不要放棄哦↖(^ω^)↗。已試錯"+(++counter)+"次");
       guessField.setText("");
       panel.setBackground(Color.RED);
       }
     else
       {
      hintJLabel.setText("猜低了,請繼續(xù)!已試錯"+(++counter)+"次");
      panel.setBackground(Color.BLUE);
       guessField.setText("");
       }
   }
   //猜中后的用戶提示
   if (counter<10)
    JOptionPane.showMessageDialog(null, "恭喜你,猜中了,難道你知道答案?O(∩_∩)O~");
   else if (counter==10)
    JOptionPane.showMessageDialog(null, "辛苦了,終于猜中了!");
   else
    JOptionPane.showMessageDialog(null, "您終于猜中了╮(╯▽╰)╭,您其實可以做得更好的!");
 
   //開始下一輪猜數(shù)字游戲前的初始化工作
   guessField.setText("");
   random=(int)(1+1000*Math.random());
   counter=0;
   
  }
  }
}
 
public static void main(String[] args)
{ 
  NumberGuessGame2016 f = new NumberGuessGame2016(); // create ListFrame
  f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  f.setSize(400,300); 
  f.setVisible(true); 
}
}

更多有趣的經(jīng)典小游戲?qū)崿F(xiàn)專題,也分享給大家:

C++經(jīng)典小游戲匯總

python經(jīng)典小游戲匯總

python俄羅斯方塊游戲集合

JavaScript經(jīng)典游戲 玩不停

java經(jīng)典小游戲匯總

javascript經(jīng)典小游戲匯總

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • JAVA反射機制實例詳解

    JAVA反射機制實例詳解

    這篇文章主要介紹了JAVA反射機制,以實例形式較為詳細的分析講解了Java反射機制的具體概念、功能與使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Java中的interrupt、interrupted和isInterrupted方法區(qū)別詳解

    Java中的interrupt、interrupted和isInterrupted方法區(qū)別詳解

    這篇文章主要介紹了Java中的interrupt、interrupted和isInterrupted方法區(qū)別詳解,interrupt用于中斷線程,調(diào)用該方法的線程的狀態(tài)將會被設(shè)置為中斷狀態(tài),線程中斷僅僅是設(shè)置線程的中斷狀態(tài)位,并不會停止線程,需要用戶自己去監(jiān)視線程的狀態(tài)并作出處理,需要的朋友可以參考下
    2023-12-12
  • mybatis 自定義實現(xiàn)攔截器插件Interceptor示例

    mybatis 自定義實現(xiàn)攔截器插件Interceptor示例

    這篇文章主要介紹了mybatis 自定義實現(xiàn)攔截器插件Interceptor,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習學(xué)習吧
    2020-10-10
  • 在controller中如何設(shè)置接收參數(shù)的默認值

    在controller中如何設(shè)置接收參數(shù)的默認值

    這篇文章主要介紹了在controller中如何設(shè)置接收參數(shù)的默認值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Javaweb EL自定義函數(shù)開發(fā)及代碼實例

    Javaweb EL自定義函數(shù)開發(fā)及代碼實例

    這篇文章主要介紹了Javaweb EL自定義函數(shù)開發(fā)及代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友可以參考下
    2020-06-06
  • MyBatis實現(xiàn)批量插入數(shù)據(jù),多重forEach循環(huán)

    MyBatis實現(xiàn)批量插入數(shù)據(jù),多重forEach循環(huán)

    這篇文章主要介紹了MyBatis實現(xiàn)批量插入數(shù)據(jù),多重forEach循環(huán)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Java中的String、StringBuilder、StringBuffer三者的區(qū)別詳解

    Java中的String、StringBuilder、StringBuffer三者的區(qū)別詳解

    這篇文章主要介紹了Java中的String、StringBuilder、StringBuffer三者的區(qū)別詳解,就是String,StringBuilder以及StringBuffer這三個類之間有什么區(qū)別呢,自己從網(wǎng)上搜索了一些資料,有所了解了之后在這里整理一下,便于大家觀看,需要的朋友可以參考下
    2023-12-12
  • SpringBoot啟動流程入口參數(shù)創(chuàng)建對象源碼分析

    SpringBoot啟動流程入口參數(shù)創(chuàng)建對象源碼分析

    這篇文章主要為大家介紹了SpringBoot啟動流程入口參數(shù)研究及創(chuàng)建對象源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • Spring中過濾器(Filter)和攔截器(Interceptor)的區(qū)別和聯(lián)系解析

    Spring中過濾器(Filter)和攔截器(Interceptor)的區(qū)別和聯(lián)系解析

    在我們?nèi)粘5拈_發(fā)中,我們經(jīng)常會用到Filter和Interceptor,這篇文章主要介紹了Spring中過濾器(Filter)和攔截器(Interceptor)的區(qū)別和聯(lián)系?,需要的朋友可以參考下
    2022-10-10
  • 打卡每日10道面試題——JVM篇

    打卡每日10道面試題——JVM篇

    總結(jié)了JVM一些經(jīng)典面試題,分享出我自己的解題思路,希望對大家有幫助,有哪里你覺得不正確的話,歡迎指出,后續(xù)有空會更新,希望大家能夠喜歡
    2021-06-06

最新評論