用JAVA编写一个小程序,不限类型好玩点的。

用JAVA编写一个小程序,不限类型好玩点的。,第1张

控制台小游戏 class YZDEL\r\n{\r\n public static void main(String[] args)\r\n {\r\njava.util.Random Shiji = new java.util.Random()\r\n java.util.Scanner Shuru = new java.util.Scanner(System.in)\r\n java.util.Scanner Nandu = new java.util.Scanner(System.in)\r\n int YingxHP = 20\r\n int YingxMP = 0\r\n int MogHP = 20\r\n int MogMP = 0\r\n int MogDo = 0\r\n int fangyu = 0\r\n System.out.println("┏━━━━_┏━━┣┣┓ _ ┓┏━┳━┳┓┓━┓ ")\r\n System.out.println("┏┣━━━┓┏━━┣┣┓ ┃┏ ┃ ┃┓┃ _ ")\r\n System.out.println("┣┣━━━┫_━━┻__ ┃_┓┃ ┃_┏━┣━━┓")\r\n System.out.println("┣┣━━━┫┏━━━━┓_━━┣━┛┗━┻━┻┛┃┃")\r\n System.out.println("┏┣━━━┓┣━━━━┫ ┃┃┃┗__┃┃┣━_")\r\n System.out.println(" ┛┗_┗━━━━_┗___━━┛┛┗━__━┛")\r\n System.out.println()\r\n System.out.println(" 作者:天狐空幻")\r\n System.out.println()\r\n System.out.println("说明:勇者的 *** 作方式为以下所示:")\r\n System.out.println(" 使用攻击需消耗1MP 伤害1HP")\r\n System.out.println(" 使用蓄力可增加1MP 伤害0HP")\r\n System.out.println(" 使用躲闪需消耗0MP 伤害0HP 躲避攻击")\r\n System.out.println(" 使用重击需消耗3MP 伤害2HP 防御无效")\r\n System.out.println(" 恶龙攻击力高, 注意防御是取胜的关键")\r\n System.out.println(" 恶龙MP达到4时可能会放出火焰无法躲避")\r\n System.out.println(" 准备说明完毕,那么让我们来挑战恶龙吧!")\r\n System.out.println("==================================")\r\n //难度选择\r\n System.out.println("请选择难度")\r\n System.out.println("1.娱乐 2.挑战 3.噩梦")\r\n int ND = Nandu.nextInt()\r\n System.out.println("==================================")\r\n while(true) \r\n { \r\n //HP,MP的显示 \r\n System.out.print("勇者: ")\r\n System.out.print(" HP ")\r\n for(int x=YingxHPx>0x--) System.out.print("*")\r\n System.out.print(" "+YingxHP)\r\n System.out.println()\r\n System.out.print(" ")\r\n System.out.print(" MP ")\r\n for(int x=YingxMPx>0x--) System.out.print("*")\r\n System.out.print(" "+YingxMP)\r\n System.out.println()\r\n System.out.print("恶龙: ")\r\n System.out.print(" HP ")\r\n for(int y=MogHPy>0y--) System.out.print("*")\r\n System.out.print(" "+MogHP)\r\n System.out.println()\r\n System.out.print(" ")\r\n System.out.print(" MP ")\r\n for(int y=MogMPy>0y--) System.out.print("*")\r\n System.out.print(" "+MogMP)\r\n System.out.println()\r\n System.out.println("==================================")\r\n //胜利判定 \r\n if(YingxHP2&&MogMP>2) MogDo = 2\r\n else if(MogMP0) MogDo=2 \r\n if(Do==2&&MogMP==0) MogDo=0\r\n if(Do==3&&MogMP=4) MogDo=3}//变态判定。。 \r\n //战斗分析\r\n //防御 \r\n if(Do==3) {fangyu=1System.out.println("你灵巧的躲避攻击!")}\r\nif(MogDo==1) {fangyu=1System.out.println("恶龙进行防御!")}\r\n //角色判定 \r\n if(Do==1&&YingxMP==0) {System.out.println("MP不足!")}\r\n if(Do==1&&YingxMP>0) {\r\nif(fangyu==0) {MogHP=MogHP-1YingxMP=YingxMP-1System.out.println("你发动攻击!")}\r\nif(fangyu==1) {YingxMP=YingxMP-1System.out.println("你的攻击被格挡!")}} \r\n if(Do==2) {YingxMP=YingxMP+1System.out.println("你进行蓄力!")}\r\n if(Do==4&&YingxMP2) {MogHP=MogHP-2YingxMP=YingxMP-3System.out.println("你发动重击!")}\r\n if(Do>4) System.out.println("你不知所措...")\r\n //敌人判定 \r\n if(MogDo==2&&MogMP==0) {System.out.println("恶龙在发呆!")}\r\n if(MogDo==2&&MogMP>0) {\r\nif(fangyu==0) {YingxHP=YingxHP-2MogMP=MogMP-1System.out.println("恶龙发动攻击!")}\r\nif(fangyu==1) {MogMP=MogMP-1System.out.println("恶龙的攻击被躲开了!")}} \r\n if(MogDo==0) {MogMP=MogMP+1System.out.println("恶龙进行蓄力!")} \r\n if(MogDo==3&&MogMP3) {YingxHP=YingxHP-4MogMP=MogMP-4System.out.println("恶龙发动火焰吐吸!躲避不能!")} \r\n //结束 \r\n fangyu = 0\r\n MogDo = 0\r\n System.out.println("____________________")\r\n System.out.println()\r\n System.out.println("==================================") }\r\n }\r\n}

我有个300多行的单机版五子棋。。不知道你说的小程序是指在网页上运行的,还是代码量少的程序。

------------------------------

import java.awt.*

import java.awt.event.*

import javax.swing.*

class mypanel extends Panel implements MouseListener

{

int chess[][] = new int[11][11]

boolean Is_Black_True

mypanel()

{

Is_Black_True = true

for(int i = 0i <11i++)

{

for(int j = 0j <11j++)

{

chess[i][j] = 0

}

}

addMouseListener(this)

setBackground(Color.BLUE)

setBounds(0, 0, 360, 360)

setVisible(true)

}

public void mousePressed(MouseEvent e)

{

int x = e.getX()

int y = e.getY()

if(x <25 || x >330 + 25 ||y <25 || y >330+25)

{

return

}

if(chess[x/30-1][y/30-1] != 0)

{

return

}

if(Is_Black_True == true)

{

chess[x/30-1][y/30-1] = 1

Is_Black_True = false

repaint()

Justisewiner()

return

}

if(Is_Black_True == false)

{

chess[x/30-1][y/30-1] = 2

Is_Black_True = true

repaint()

Justisewiner()

return

}

}

void Drawline(Graphics g)

{

for(int i = 30i <= 330i += 30)

{

for(int j = 30j <= 330j+= 30)

{

g.setColor(Color.WHITE)

g.drawLine(i, j, i, 330)

}

}

for(int j = 30j <= 330j += 30)

{

g.setColor(Color.WHITE)

g.drawLine(30, j, 330, j)

}

}

void Drawchess(Graphics g)

{

for(int i = 0i <11i++)

{

for(int j = 0j <11j++)

{

if(chess[i][j] == 1)

{

g.setColor(Color.BLACK)

g.fillOval((i + 1) * 30 - 8, (j + 1) * 30 - 8, 16, 16)

}

if(chess[i][j] == 2)

{

g.setColor(Color.WHITE)

g.fillOval((i + 1) * 30 - 8, (j + 1) * 30 - 8, 16, 16)

}

}

}

}

void Justisewiner()

{

int black_count = 0

int white_count = 0

int i = 0

for(i = 0i <11i++)//横向判断

{

for(int j = 0j <11j++)

{

if(chess[i][j] == 1)

{

black_count++

if(black_count == 5)

{

JOptionPane.showMessageDialog(this, "黑棋胜利")

Clear_Chess()

return

}

}

else

{

black_count = 0

}

if(chess[i][j] == 2)

{

white_count++

if(white_count == 5)

{

JOptionPane.showMessageDialog(this, "白棋胜利")

Clear_Chess()

return

}

}

else

{

white_count = 0

}

}

}

for(i = 0i <11i++)//竖向判断

{

for(int j = 0j <11j++)

{

if(chess[j][i] == 1)

{

black_count++

if(black_count == 5)

{

JOptionPane.showMessageDialog(this, "黑棋胜利")

Clear_Chess()

return

}

}

else

{

black_count = 0

}

if(chess[j][i] == 2)

{

white_count++

if(white_count == 5)

{

JOptionPane.showMessageDialog(this, "白棋胜利")

Clear_Chess()

return

}

}

else

{

white_count = 0

}

}

}

for(i = 0i <7i++)//左向右斜判断

{

for(int j = 0j <7j++)

{

for(int k = 0k <5k++)

{

if(chess[i + k][j + k] == 1)

{

black_count++

if(black_count == 5)

{

JOptionPane.showMessageDialog(this, "黑棋胜利")

Clear_Chess()

return

}

}

else

{

black_count = 0

}

if(chess[i + k][j + k] == 2)

{

white_count++

if(white_count == 5)

{

JOptionPane.showMessageDialog(this, "白棋胜利")

Clear_Chess()

return

}

}

else

{

white_count = 0

}

}

}

}

for(i = 4i <11i++)//右向左斜判断

{

for(int j = 6j >= 0j--)

{

for(int k = 0k <5k++)

{

if(chess[i - k][j + k] == 1)

{

black_count++

if(black_count == 5)

{

JOptionPane.showMessageDialog(this, "黑棋胜利")

Clear_Chess()

return

}

}

else

{

black_count = 0

}

if(chess[i - k][j + k] == 2)

{

white_count++

if(white_count == 5)

{

JOptionPane.showMessageDialog(this, "白棋胜利")

Clear_Chess()

return

}

}

else

{

white_count = 0

}

}

}

}

}

void Clear_Chess()

{

for(int i=0i<11i++)

{

for(int j=0j<11j++)

{

chess[i][j]=0

}

}

repaint()

}

public void paint(Graphics g)

{

Drawline(g)

Drawchess(g)

}

public void mouseExited(MouseEvent e){}

public void mouseEntered(MouseEvent e){}

public void mouseReleased(MouseEvent e){}

public void mouseClicked(MouseEvent e){}

}

class myframe extends Frame implements WindowListener

{

mypanel panel

myframe()

{

setLayout(null)

panel = new mypanel()

add(panel)

panel.setBounds(0,23, 360, 360)

setTitle("单人版五子棋")

setBounds(200, 200, 360, 383)

setVisible(true)

addWindowListener(this)

}

public void windowClosing(WindowEvent e)

{

System.exit(0)

}

public void windowDeactivated(WindowEvent e){}

public void windowActivated(WindowEvent e){}

public void windowOpened(WindowEvent e){}

public void windowClosed(WindowEvent e){}

public void windowIconified(WindowEvent e){}

public void windowDeiconified(WindowEvent e){}

}

public class mywindow

{

public static void main(String argc [])

{

myframe f = new myframe()

}

}

创建一个 Notepad.java 文件,将下面的代码粘贴进去,运行后就是一个记事本。

import java.awt.*

import java.awt.event.*

import javax.swing.*

import java.text.SimpleDateFormat

import java.util.Date

import javax.swing.JFileChooser

import java.io.*

import javax.swing.JOptionPane

class Notepad {

public static void main(String[] args) {

NotepadFrame notepad = new NotepadFrame()

NotepadListener listener = new NotepadListener(notepad)

notepad.init()

notepad.addToMenuBar()

notepad.addActionListener(listener)

notepad.setVisible(true)

}

}

/**

* 记事本界面实现类

**

*/

class NotepadFrame extends JFrame {

private static final long serialVersionUID = 1L

// 创建菜单条对象

JMenuBar jmenu = new JMenuBar()

// 创建文本域组建对象

public JTextArea textarea = new JTextArea()

// 创建滚动条对象

JScrollPane jsp = new JScrollPane(textarea)

// 创建状态栏

JLabel timeLabel = new JLabel()

// 文本区域

JTextArea jta = new JTextArea()

// 状态栏

JToolBar jtb = new JToolBar()

// 创建文件选择对话框

JFileChooser chooser = new JFileChooser()

// 菜单

JMenu file = new JMenu("文件(F)")

JMenu edit = new JMenu("编辑(E)")

JMenu view = new JMenu("查看(V)")

JMenu set = new JMenu("格式(O)")

JMenu help = new JMenu("帮助(H)")

// 文件菜单项

JMenuItem newFile = new JMenuItem("新建(N)") // new ImageIcon("images\\OpenFile.gif")

JMenuItem openFile = new JMenuItem("打开(O)",new ImageIcon("images\\OpenFile.gif"))

JMenuItem saveFile = new JMenuItem("保存(S)")

JMenuItem ansaveFile = new JMenuItem("另存为(A)")

JMenuItem exitFile = new JMenuItem("退出(X)")

// 编辑菜单项

JMenuItem back = new JMenuItem("撤销(U)")

JMenuItem cut = new JMenuItem("剪切(T)")

JMenuItem copy = new JMenuItem("复制(C)")

JMenuItem paste = new JMenuItem("粘贴(P)")

JMenuItem delete = new JMenuItem("删除(L)")

JMenuItem find = new JMenuItem("查找(F)")

JMenuItem replace = new JMenuItem("替换(R)")

JMenuItem all = new JMenuItem("全选(A)")

JMenuItem time = new JMenuItem("时间/日期")

// 格式菜单项

JMenuItem autoChangeRow = new JMenuItem("自动换行")

JMenuItem font = new JMenuItem("字体")

// 查看菜单项

JMenuItem bar = new JMenuItem("状态栏")

// 帮助菜单项

JMenuItem viewHelp = new JMenuItem("查看帮助")

JMenuItem aboutNotepad = new JMenuItem("关于记事本")

// d出式菜单

JPopupMenu popmenu = new JPopupMenu()

JMenuItem itemUndo = new JMenuItem("撤销(U)", 'U')

JMenuItem itemRedo = new JMenuItem("恢复(R)", 'R')

JMenuItem itemCut = new JMenuItem("剪切(T)", 'T')

JMenuItem itemCopy = new JMenuItem("复制(P)", 'P')

JMenuItem itemPaste = new JMenuItem("粘贴(C)", 'C')

JMenuItem itemDel = new JMenuItem("删除(P)", 'P')

JMenuItem itemAll = new JMenuItem("全选(A)", 'A')

/**

* 初始化

*/

public void init() {

// 设置记事本大小

setSize(800, 600)

// 设置标题

setTitle("无标题 —— 记事本")

// 窗口居中显示

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize()

Dimension frameSize = getSize()

setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2)

// 关闭窗口

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

// 加入控件到窗体

add(jmenu, BorderLayout.NORTH)

add(jta, BorderLayout.CENTER)

add(jtb, BorderLayout.SOUTH)

}

/**

* 把菜单选项及快捷键加入到菜单条中

*/

public void addToMenuBar() {

// 添加文件菜单项

file.setMnemonic('F')

newFile.setMnemonic(KeyEvent.VK_N)

newFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK))

file.add(newFile)

openFile.setMnemonic(KeyEvent.VK_O)

openFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK))

file.add(openFile)

saveFile.setMnemonic(KeyEvent.VK_S)

saveFile.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK))

file.add(saveFile)

ansaveFile.setMnemonic(KeyEvent.VK_A)

file.add(ansaveFile)

exitFile.setMnemonic(KeyEvent.VK_X)

file.add(exitFile)

jmenu.add(file)

// 添加编辑菜单项

edit.setMnemonic('E')

back.setMnemonic('U')

back.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK))

edit.add(back)

cut.setMnemonic('T')

cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK))

edit.add(cut)

copy.setMnemonic('C')

copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK))

edit.add(copy)

paste.setMnemonic('P')

paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_MASK))

edit.add(paste)

delete.setMnemonic('L')

delete.setAccelerator(KeyStroke.getKeyStroke("DELETE"))

edit.add(delete)

find.setMnemonic('F')

find.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK))

edit.add(find)

replace.setMnemonic('R')

replace.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, InputEvent.CTRL_MASK))

edit.add(replace)

all.setMnemonic('A')

all.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK))

edit.add(all)

time.setAccelerator(KeyStroke.getKeyStroke("F5"))

edit.add(time)

jmenu.add(edit)

// 格式菜单项

font.setMnemonic('O')

set.add(autoChangeRow)

set.add(font)

jmenu.add(set)

// 查看菜单项

view.setMnemonic('V')

view.add(bar)

jmenu.add(view)

// 帮助菜单项

help.setMnemonic('H')

help.add(viewHelp)

help.add(aboutNotepad)

jmenu.add(help)

// 添加d出菜单选项

itemUndo.setIcon(new ImageIcon("images\\Undo.gif"))

popmenu.add(itemUndo)

itemRedo.setIcon(new ImageIcon("images\\Redo.gif"))

popmenu.add(itemRedo)

popmenu.addSeparator()

itemCut.setIcon(new ImageIcon("images\\Cut.gif"))

popmenu.add(itemCut)

itemCopy.setIcon(new ImageIcon("images\\Copy.gif"))

popmenu.add(itemCopy)

itemPaste.setIcon(new ImageIcon("images\\Paste.gif"))

popmenu.add(itemPaste)

itemDel.setIcon(new ImageIcon("images\\Del.gif"))

popmenu.add(itemDel)

popmenu.addSeparator()

popmenu.add(itemAll)

}

/**

* 给事件源添加监听器

* @param listener 事件监听器

*/

public void addActionListener(ActionListener listener) {

// 对文件菜单项进行监听

newFile.addActionListener(listener)

openFile.addActionListener(listener)

saveFile.addActionListener(listener)

ansaveFile.addActionListener(listener)

exitFile.addActionListener(listener)

// 对编辑菜单项进行监听

back.addActionListener(listener)

cut.addActionListener(listener)

copy.addActionListener(listener)

paste.addActionListener(listener)

delete.addActionListener(listener)

find.addActionListener(listener)

replace.addActionListener(listener)

all.addActionListener(listener)

time.addActionListener(listener)

// 对格式菜单项进行监听

autoChangeRow.addActionListener(listener)

font.addActionListener(listener)

// 对查看菜单项进行监听

bar.addActionListener(listener)

// 对帮助菜单项进行监听

viewHelp.addActionListener(listener)

aboutNotepad.addActionListener(listener)

// 对d出式菜单进行监听

itemUndo.addActionListener(listener)

itemRedo.addActionListener(listener)

itemCut.addActionListener(listener)

itemCopy.addActionListener(listener)

itemPaste.addActionListener(listener)

itemDel.addActionListener(listener)

itemAll.addActionListener(listener)

}

}

class NotepadListener implements ActionListener {

private NotepadFrame notepad

public NotepadListener(NotepadFrame notepad) {

this.notepad = notepad

}

/**

* 文件菜单具体实现

* @param e

*/

public void fileActionEvent(ActionEvent e) {

// 新建

if (e.getSource() == notepad.newFile) {

}

// 打开

if (e.getSource() == notepad.openFile) {

// 设置类型为打开方式

notepad.chooser.setDialogType(JFileChooser.OPEN_DIALOG)

// 显示打开文件对话框

notepad.chooser.showOpenDialog(notepad)

// 获取文件所在路径

File f = notepad.chooser.getSelectedFile()

if (f != null) {

// 读取文件内容

String content = UtilityMethod.readFile(f)

// 设置文件内容显示

notepad.jta.setText(content)

notepad.setTitle(f.getName() + " —— 记事本")

}

}

// 另存为

if (e.getSource() == notepad.saveFile) {

// 设置类型为保持方式

notepad.chooser.setDialogType(JFileChooser.SAVE_DIALOG)

// 显示保存文件对话框

notepad.chooser.showSaveDialog(notepad)

// 获得文件选择路径

File file = notepad.chooser.getSelectedFile()

if (file != null) {

// 写入文本与的字符串到文件中

UtilityMethod.writeFile(file, notepad.jta.getText())

notepad.setTitle(file.getName() + " —— 记事本")

}

}

}

@Override

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

fileActionEvent(e)

}

}

class UtilityMethod {

public static String getCurrentTime(String format) {

SimpleDateFormat sdf = new SimpleDateFormat(format)

Date date = new Date()

return sdf.format(date)

}

public static String readFile(File f) {

FileInputStream fis = null

byte[] b = null

try {

fis = new FileInputStream(f)

b = new byte[fis.available()]

fis.read(b)

} catch (FileNotFoundException e) {

JOptionPane.showMessageDialog(null, "对不起,找不到指定的文件!", "打开文件出错", JOptionPane.WARNING_MESSAGE)

} catch (IOException e1) {

JOptionPane.showMessageDialog(null, "对不起,出现IO异常,请稍候再试!", "读取文件出错", JOptionPane.WARNING_MESSAGE)

} finally {

if (fis != null) {

try {

fis.close()

} catch (IOException e) {

JOptionPane.showMessageDialog(null, "对不起,出现IO异常,请稍候再试!", "关闭输入流出错", JOptionPane.WARNING_MESSAGE)

}

}

}

return new String(b)

}

public static void writeFile(File file, String text) {

FileOutputStream fos = null

try {

fos = new FileOutputStream(file)

fos.write(text.getBytes())

} catch (FileNotFoundException e) {

JOptionPane.showMessageDialog(null, "对不起,找不到指定的文件!", "保存文件出错", JOptionPane.WARNING_MESSAGE)

} catch (IOException e1) {

JOptionPane.showMessageDialog(null, "对不起,出现IO异常,请稍候再试!", "写入文件出错", JOptionPane.WARNING_MESSAGE)

} finally {

if (fos != null) {

try {

fos.close()

} catch (IOException e) {

JOptionPane.showMessageDialog(null, "对不起,出现IO异常,请稍候再试!", "关闭输出流出错", JOptionPane.WARNING_MESSAGE)

}

}

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12128271.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存