1. 程式人生 > >Java原始碼-猜數字小遊戲(Swing程式設計版)

Java原始碼-猜數字小遊戲(Swing程式設計版)

//Guess a number between 1 and 1000
//Java how to program, 10/e, Exercise 12.14
//by [email protected]
/* (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("猜數字小遊戲遊戲");
   setLayout(new BorderLayout());
   
   panel=new JPanel();
   panel.setBackground(Color.WHITE);
  
   welcomeJLabel= new JLabel("遊戲規則:已隨機生成一個1到1000的整數,您能在10次以內猜出來嗎?");
   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("猜低了,請繼續!已試錯"+(++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, "您終於猜中了╮(╯▽╰)╭,您其實可以做得更好的!");
 	
      //開始下一輪猜數字遊戲前的初始化工作
      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); 
}
}

相關推薦

Java原始碼-數字遊戲Swing程式設計

//Guess a number between 1 and 1000 //Java how to program, 10/e, Exercise 12.14 //by [email protected] /* (Guess-the-Number Game) Write an application

Time in the Subway: 數字遊戲GuessNum--Java程式碼實現

/* 需求:開發一個猜數字的小遊戲; * 描述:系統產生一個1-100之間的隨機數(含0和100),請猜出這個數字是多少。 * 1.產生隨機數 * 2.接收鍵盤輸入數字

數字遊戲精簡

    無論是工作還是平時的生活中,少不了聚會喝酒,那麼一些趣味小遊戲便經常出場了,今天我們要聊的是一個大家肯定玩過簡單得不能再簡單又出場率很高的小遊戲——猜數字,還記得上次同學聚會就是靠它下了一箱酒!     好了,先簡單介紹下游戲規則:由莊家想出1-100之間的任意一個

數字遊戲0-100

馬濤 *April 18th .2009 * */import java.util.*;public class GuessFigure{ public static void main(String[] args) {  table:  for(int i =0;true;i++)  {   //用來記錄

Java控制檯數字遊戲

import java.util.*; /** *控制檯猜數字小遊戲,系統自動生成範圍為1-100的數字 *@version 1.0 2018-01-04 *@author jie1024(wechat:wxxueba) */ public class Guess

python遊戲迴圈and判斷

import random x=random.randint(0,100) z=1 for i in range(19): y=int(input("請輸入你猜的數字:")) z=z+1 if y==x: if z<=5:

Java實現貪吃蛇遊戲附完整原始碼

今天我就從零開始來完成這個小遊戲,完成的方式也是一步一步的新增功能這樣的方式來實現。 第一步完成的功能:寫一個介面 大家見到的貪吃蛇小遊戲,介面肯定是少不了的。因此,第一步就是寫一個小介面。 實現程式碼如下: 第二步完成的功能:在介面上畫成一格一格的 我們見過的貪吃蛇遊戲

java數字遊戲

Java猜數字小遊戲 初學java就可以做一些簡單的小遊戲,像猜數字,人人對戰五子棋,飛機大戰等等 今天說的是猜數字的小遊戲: 計算機隨機取一個值作為答案,然後你需要輸入你猜的數字,輸的小了會提示你猜小了,輸的大了會提示你猜大了。這個遊戲就一個考察點——迴圈的利用。 package

數字遊戲+折半查詢法二分法+三次密碼輸入+字母大小寫轉換

猜數字小遊戲: #include<stdio.h> #include<time.h> #include<stdlib.h> /* 猜數字小遊戲 */ int menu() { printf("**********1.開始遊戲**********\n

使用Java寫一個數字遊戲

import java.util.Random; import java.util.Scanner; public class num_game { public static void main(String[] args) { // Random r = new Random(); // i

頁面html/jsp數字遊戲

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isELIgnored="false"%> <!DOCTYPE html PUBLIC

Python基礎入門-實現數字遊戲

結束 選擇 提示 int pri 返回 重新開始 系統默認 pan 今天呢,我們來通過前面學過的一些知識點來完成一個猜數字大小的遊戲程序設計。那麽呢,一般人寫代碼直接上來就幹,沒有分析,這樣的做法是沒有產出的,除非你是大牛,今天呢,我會把我學習編程的思路分享給大家,我的思路

數字遊戲

trie num ber strong mes for malle tro 猜數字小遊戲 1.最簡易性 #Author:liubin game_of_number=11 guess_number=int(input("guess number:")) if guess_n

python3 數字遊戲1.0

print ( "----------這是一個猜數遊戲----------" ) temp = input( "請輸入一個數字:" )guess = int(temp) if guess == 6:print( "恭喜你猜對了!" )print("哈哈,猜中了也沒有獎勵!")else:print("對不起,你

python學習第一週 數字遊戲

資源下載:點我下載 說明點: num.isdigit() #判斷使用者輸入的內容是否是數字 random.randint(0-100) #從0-100中獲取一個隨機數 int(num) #將獲取的字串num轉為int型別 #!/usr/bin/python3 #-*- co

程式--<數字遊戲>--for - while

方式一: while迴圈語句 import random num = random.randint(0,100) # randint函式,隨機生成0-100之間的數字 print(num) # 如果不知道隨機數,猜之前可以先列印隨機數 i=0

初識python-數字遊戲

#猜數字遊戲 import random number = random.randint(0,100)#設定數字為100以內 count=0 while count<5: #設定遊戲次數 count = count + 1 guess =

python入門篇:開發一個簡單的數字遊戲

python是史上最簡潔的語言!(其實就是一個文字遊戲) 今天太晚了,我把程式碼貼出來還有事情忙(其實是想偷個懶,不想打字,反正我有註釋) 看我的文章千萬不要著急,慢慢看完,看到最後。 ****************************** #coding=utf-8 name =

學以致用——Java原始碼——機票預定程式Airline Reservation

記得2008年這個程式沒有完成,十年後的今天補上。改進如下: 1. 分拆出預定頭等艙和預定經濟艙兩個方法,程式邏輯更加簡單清晰 2. 消除了原來程式的bug  這個程式是在原來的applet版本上修改而成的(大改)。程式設計途中遭遇了思路理不清的問題。然後,拿出筆記本畫了個

用js實現數字遊戲

用js實現簡易的猜數字小遊戲<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body>