具体如下:
连连看的小源码
package Lianliankan
import javax.swing.*
import java.awt.*
import java.awt.event.*
public class lianliankan implements ActionListener
{
JFrame mainFrame//主面板
Container thisContainer
JPanel centerPanel,southPanel,northPanel//子面板
JButton diamondsButton[][] = new JButton[6][5]//游戏按钮数组
JButton exitButton,resetButton,newlyButton//退出,重列,重新开始按钮
JLabel fractionLable=new JLabel("0")//分数标签
JButton firstButton,secondButton//
分别记录两次62616964757a686964616fe59b9ee7ad9431333335326239被选中的按钮
int grid[][] = new int[8][7]//储存游戏按钮位置
static boolean pressInformation=false//判断是否有按钮被选中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV//游戏按钮的位置坐标
int i,j,k,n//消除方法控制
代码(code)是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。
对于字符和Unicode数据的位模式的定义,此模式代表特定字母、数字或符号(例如 0x20 代表一个空格,而 0x74 代表字符“t”)。一些数据类型每个字符使用一个字节;每个字节可以具有 256 个不同的位模式中的一个模式。
在计算机中,字符由不同的位模式(ON 或 OFF)表示。每个字节有 8 位,这 8 位可以有 256 种不同的 ON 和 OFF 组合模式。对于使用 1 个字节存储每个字符的程序,通过给每个位模式指派字符可表示最多 256 个不同的字符。2 个字节有 16 位,这 16 位可以有 65,536 种唯一的 ON 和 OFF 组合模式。使用 2 个字节表示每个字符的程序可表示最多 65,536 个字符。
单字节代码页是字符定义,这些字符映射到每个字节可能有的 256 种位模式中的每一种。代码页定义大小写字符、数字、符号以及 !、@、#、% 等特殊字符的位模式。每种欧洲语言(如德语和西班牙语)都有各自的单字节代码页。
虽然用于表示 A 到 Z 拉丁字母表字符的位模式在所有的代码页中都相同,但用于表示重音字符(如"é"和"á")的位模式在不同的代码页中却不同。如果在运行不同代码页的计算机间交换数据,必须将所有字符数据由发送计算机的代码页转换为接收计算机的代码页。如果源数据中的扩展字符在接收计算机的代码页中未定义,那么数据将丢失。
如果某个数据库为来自许多不同国家的客户端提供服务,则很难为该数据库选择这样一种代码页,使其包括所有客户端计算机所需的全部扩展字符。而且,在代码页间不停地转换需要花费大量的处理时间。
import java.awt.Dimensionimport java.awt.Graphics
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JPanel
public class Painter extends JFrame{
/**
*
*/
private static final long serialVersionUID = 8160427604782702376L
CanvasPanel canvas = new CanvasPanel()
public Painter() {
super("Star")
this.add(canvas)
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)
this.pack()
this.setResizable(false)
this.setLocationRelativeTo(null)
this.setVisible(true)
}
public static void main(String[] args) {
new Painter()
}
}
class CanvasPanel extends JPanel implements ActionListener{
/**
*
*/
private static final long serialVersionUID = -4642528854538741028L
private JButton[] btn = new JButton[4]
private String[] btn_name = {"+", "-", "R", "L"}
private int center_x = 200, center_y = 200, radius = 100, degree = 0
public CanvasPanel() {
this.setPreferredSize(new Dimension(400, 500))
this.setLayout(null)
for(int i = 0i <4i++) {
btn[i] = new JButton(btn_name[i])
btn[i].setBounds(160 + i * 60, 425, 50, 50)
btn[i].addActionListener(this)
this.add(btn[i])
}
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g)
for(int i = 0i <5i++) {
g.drawLine( (int) (center_x + radius * Math.sin(Math.toRadians(degree + 72 * i))),
(int) (center_y - radius * Math.cos(Math.toRadians(degree + 72 * i))),
(int) (center_x + radius * Math.sin(Math.toRadians(degree + 72 * i + 144))),
(int) (center_y - radius * Math.cos(Math.toRadians(degree + 72 * i + 144))))
}
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if(e.getActionCommand() == "+") {
if(radius <200)
radius += 2
repaint()
} else if(e.getActionCommand() == "-") {
if(radius >0)
radius -= 2
repaint()
} else if(e.getActionCommand() == "R") {
degree = (degree + 2) % 360
repaint()
} else if(e.getActionCommand() == "L") {
degree = (degree - 2) % 360
repaint()
}
}
}
package reduceimport java.applet.Applet
import java.applet.AudioClip
import java.awt.Dimension
import java.awt.Font
import java.awt.Toolkit
import javax.sound.sampled.AudioFileFormat
import javax.sound.sampled.AudioSystem
import javax.swing.JFrame
import javax.swing.JPanel
import java.awt.Rectangle
import javax.swing.BorderFactory
import javax.swing.JButton
import javax.swing.JOptionPane
import javax.swing.JSlider
import javax.swing.JLabel
import javax.swing.SwingUtilities
import javax.swing.UIManager
import javax.swing.event.ChangeEvent
import javax.swing.event.ChangeListener
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.awt.event.KeyAdapter
import java.awt.event.KeyEvent
import java.io.File
import java.util.Vector
public class Frame extends JFrame implements Runnable {
JPanel contentPane
JPanel jPanel1 = new JPanel()
JButton jButton1 = new JButton()
JSlider jSlider1 = new JSlider()
JLabel jLabel1 = new JLabel()
JButton jButton2 = new JButton()
JLabel jLabel2 = new JLabel()
int count = 1, rapidity = 80// count 当前进行的个数, rapidity 游标的位置
int zhengque = 0, cuowu = 0
int rush[] = { 10 ,20 ,30 }//游戏每关的个数 可以自由添加.列 { 10 ,20 ,30 ,40,50}
int rush_count = 0 //记录关数
char list[] = { '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', '1', '2', '3', '4', '5', '6', '7', '8', '9' } //随机出现的数字 可以自由添加
Vector number = new Vector()
String paiduan = "true"
AudioClip Musci_anjian, Music_shibai, Music_chenggong
public Frame() {
try {
setDefaultCloseOperation(EXIT_ON_CLOSE)
//-----------------声音文件---------------------
Musci_anjian = Applet.newAudioClip(new File("sounds//anjian.wav")
.toURL())
Music_shibai = Applet.newAudioClip(new File("sounds//shibai.wav")
.toURL())
Music_chenggong = Applet.newAudioClip(new File(
"sounds//chenggong.wav").toURL())
//---------------------------------------
jbInit()
} catch (Exception exception) {
exception.printStackTrace()
}
}
/**
* Component initialization.
*
* @throws java.lang.Exception
*/
private void jbInit() throws Exception {
contentPane = (JPanel) getContentPane()
contentPane.setLayout(null)
setSize(new Dimension(588, 530))
setTitle("Frame Title")
jPanel1.setBorder(BorderFactory.createEtchedBorder())
jPanel1.setBounds(new Rectangle(4, 4, 573, 419))
jPanel1.setLayout(null)
jButton1.setBounds(new Rectangle(277, 442, 89, 31))
jButton1.setText("开始")
jButton1.addActionListener(new Frame1_jButton1_actionAdapter(this))
jSlider1.setBounds(new Rectangle(83, 448, 164, 21))
jSlider1.setMaximum(100)
jSlider1.setMinimum(1)
jSlider1.setValue(50)
jLabel1.setText("速度")
jLabel1.setBounds(new Rectangle(35, 451, 39, 18))
jButton2.setBounds(new Rectangle(408, 442, 89, 31))
jButton2.setText("结束")
jButton2.addActionListener(new Frame1_jButton2_actionAdapter(this))
jLabel2.setText("第一关:100个")
jLabel2.setBounds(new Rectangle(414, 473, 171, 21))
contentPane.add(jPanel1)
contentPane.add(jButton2)
contentPane.add(jButton1)
contentPane.add(jSlider1)
contentPane.add(jLabel1)
contentPane.add(jLabel2)
this.addKeyListener(new MyListener())
jButton1.addKeyListener(new MyListener())
jSlider1.addKeyListener(new MyListener())
jSlider1.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
rapidity = jSlider1.getValue()
}
})
}
public void run() {
number.clear()
zhengque = 0
cuowu = 0
paiduan = "true"
while (count <= rush[rush_count]) {
try {
Thread t = new Thread(new Tthread())
t.start()
count += 1
Thread.sleep(1000 + (int) (Math.random() * 2000))// 生产下组停顿时间
// 最快1快.最慢2秒
} catch (InterruptedException e) {
e.printStackTrace()
}
}
while (true) { // 等待最后一个字符消失
if (number.size() == 0) {
break
}
}
if (zhengque == 0) { // 为了以后相除..如果全部正确或者错误就会出现错误. 所以..
zhengque = 1
}
if (cuowu == 0) {
cuowu = 1
}
if (paiduan.equals("true")) { // 判断是否是自然结束
if (zhengque / cuowu >= 2) {
JOptionPane.showMessageDialog(null, "恭喜你过关了")
rush_count += 1// 自动加1关
if (rush_count <rush.length) {
if (rapidity >10) { // 当速度大于10的时候在-5提加速度.怕速度太快
rapidity -= 5// 速度自动减10毫秒
jSlider1.setValue(rapidity)// 选择位置
}
Thread t = new Thread(this)
t.start()
} else {
JOptionPane.showMessageDialog(null, "牛B...你通关了..")
rush_count = 0
count = 0
}
} else {
JOptionPane.showMessageDialog(null, "请再接再励")
rush_count = 0
count = 0
}
} else {
rush_count = 0
count = 0
}
}
public void jButton1_actionPerformed(ActionEvent e) {
Thread t = new Thread(this)
t.start()
}
public void jButton2_actionPerformed(ActionEvent e) {
count = rush[rush_count] + 1
paiduan = "flase"
}
class Tthread implements Runnable {
public void run() {
boolean fo = true
int Y = 0, X = 0
JLabel show = new JLabel()
show.setFont(new java.awt.Font("宋体", Font.PLAIN, 33))
jPanel1.add(show)
X = 10 + (int) (Math.random() * 400)
String parameter = list[(int) (Math.random() * list.length)] + ""
Bean bean = new Bean()
bean.setParameter(parameter)
bean.setShow(show)
number.add(bean)
show.setText(parameter)
while (fo) {
// ---------------------数字下移--------------------
show.setBounds(new Rectangle(X, Y += 2, 33, 33))
try {
Thread.sleep(rapidity)
} catch (InterruptedException e) {
e.printStackTrace()
}
if (Y >= 419) {
fo = false
for (int i = number.size() - 1i >= 0i--) {
Bean bn = ((Bean) number.get(i))
if (parameter.equalsIgnoreCase(bn.getParameter())) {
cuowu += 1
jLabel2.setText("正确:" + zhengque + "个,错误:" + cuowu
+ "个")
number.removeElementAt(i)
Music_shibai.play()
break
}
}
}
}
}
}
class MyListener extends KeyAdapter {
public void keyPressed(KeyEvent e) {
String uu = e.getKeyChar() + ""
for (int i = 0i <number.size()i++) {
Bean bean = ((Bean) number.get(i))
if (uu.equalsIgnoreCase(bean.getParameter())) {
zhengque += 1
number.removeElementAt(i)
bean.getShow().setVisible(false)
jLabel2.setText("正确:" + zhengque + "个,错误:" + cuowu + "个")
Music_chenggong.play()
break
}
}
Musci_anjian.play()
}
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName())
} catch (Exception exception) {
exception.printStackTrace()
}
Frame frame = new Frame()
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize()
Dimension frameSize = frame.getSize()
if (frameSize.height >screenSize.height) {
frameSize.height = screenSize.height
}
if (frameSize.width >screenSize.width) {
frameSize.width = screenSize.width
}
frame.setLocation((screenSize.width - frameSize.width) / 2,
(screenSize.height - frameSize.height) / 2)
frame.setVisible(true)
}
}
class Frame1_jButton2_actionAdapter implements ActionListener {
private Frame adaptee
Frame1_jButton2_actionAdapter(Frame adaptee) {
this.adaptee = adaptee
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton2_actionPerformed(e)
}
}
class Frame1_jButton1_actionAdapter implements ActionListener {
private Frame adaptee
Frame1_jButton1_actionAdapter(Frame adaptee) {
this.adaptee = adaptee
}
public void actionPerformed(ActionEvent e) {
adaptee.jButton1_actionPerformed(e)
}
}
class Bean {
String parameter = null
JLabel show = null
public JLabel getShow() {
return show
}
public void setShow(JLabel show) {
this.show = show
}
public String getParameter() {
return parameter
}
public void setParameter(String parameter) {
this.parameter = parameter
}
}
我只有一个打字母小游戏
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)