文档库 最新最全的文档下载
当前位置:文档库 › 猜拳汇编程序源代码

猜拳汇编程序源代码

猜拳汇编程序源代码
猜拳汇编程序源代码

附录1:

猜拳程序设计源代码清单

getChar MACRO Char ;接收一个字符放在char里

PUSH AX

MOV AH,1

INT 21H

MOV Char,AL

POP AX

ENDM

showChar MACRO char ;显示字符

PUSH AX

PUSH DX

MOV AH,2

MOV DL,char

INT 21H

POP DX

POP AX

ENDM

showString MACRO string ;调用9号功能显示字符串

PUSH AX

PUSH DX

PUSH DS

MOV AX,DA TA_SEG

MOV DS,AX

MOV AH,9

LEA DX,string

INT 21H

POP DS

POP DX

POP AX

ENDM

setCurPos MACRO M,N,P ;设置光标的位置在M行,N列,p页PUSH AX

PUSH BX

PUSH DX

MOV AH,2

MOV BH,P

MOV DH,M

MOV DL,N

INT 10H

POP DX

POP BX

POP AX

ENDM

getCurPos MACRO M,N ;获取光标的位置,将相应的行放在M中,列值放在N中PUSH AX

PUSH BX

PUSH DX

MOV AH,3 ;读光标位置

MOV BH,0

INT 10H

MOV M,DH

MOV N,DL

POP DX

POP BX

POP AX

ENDM

initShowModel MACRO A ;初始化显示模式

PUSH AX

MOV AH,0 ;用来设定显示模式的服务程序

MOV AL,A ;AL 寄存器表示欲设定的模式

INT 10H

POP AX

ENDM

initWindow MACRO A,B,C1,C2,D1,D2 ;初始化窗口或窗口内容向上卷动,也可以用于清屏PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV AH,6

MOV AL,A ;上卷行数

MOV BH,B ;卷入行属性(颜色)

MOV CH,C1 ;左上角行号

MOV CL,C2 ;左上角列号

MOV DH,D1 ;右下角行号

MOV DL,D2 ;右下角列号

INT 10H

POP DX

POP CX

POP BX

POP AX

ENDM

Pause MACRO

PUSH AX

MOV AH,01H

INT 21H

POP AX

ENDM

DATA_SEG SEGMENT ;数据段定义GameMenu DB 'Welcome Use Caiquan Game',0dh,0ah,'$' ;主菜单DB 'Play Game',0dh,0ah,'$'

DB 'About',0dh,0ah,'$'

DB 'Exit game',0dh,0ah,'$'

DisW DB ' Win : Time ',0dh,0ah,'$'

DisF DB ' Fail : Time ',0dh,0ah,'$'

DisE DB ' You have Equel: Time ',0dh,0ah,'$'

Dispay2 DB ' This Time You Win ! ',0dh,0ah,'$'

Dispay3 DB ' This Time You Failed ! ',0dh,0ah,'$'

Dispay4 DB ' This Time You Equel to PC ! ',0dh,0ah,'$'

Dispay5 DB ' Enter "Enter" to continue ! ',0dh,0ah,'$'

Dispay6 DB ' Enter "ESC" to Exit! ',0dh,0ah,'$'

Dispayt DB ' You choose the "Tone"! ',0dh,0ah,'$' Dispays DB ' You choose the "Scissor"! ',0dh,0ah,'$'

Dispayc DB ' You choose the "Cloth"! ',0dh,0ah,'$' Dispayyt DB ' PC choose the "Tone"! ',0dh,0ah,'$'

Dispayys DB ' PC choose the "Scissor"! ',0dh,0ah,'$'

Dispayyc DB ' PC choose the "Cloth"! ',0dh,0ah,'$'

Kick DB ?

R_NUM DB ?

NUM DB ?

X DB ?

Y DB ?

FAI DB 48

WIN DB 48

EQ DB 48

EXITMsg DB 'You really want to exit!','$'

DB 'Enter Y to exit','$'

DB 'Enter N to continue!','$'

Information DB 'Author information',0dh,0ah,'$'

DB 'Name: Shang Zhi Guo',0dh,0ah,'$'

DB 'Class: tongxin1003',0dh,0ah,'$'

DB 'Student ID: 2010 3309',0dh,0ah,'$'

Char DB ?

LineA DB ' You Have Beginning Game ! ',0dh,0ah,'$'

LineB DB '-----------------------------------',0dh,0ah,'$'

lineF DB ' Please Input"0"or"1"or"2" ',0dh,0ah,'$'

LineC DB '0------tone ',0dh,0ah,'$'

LineC1 DB '1------Scissor ',0dh,0ah,'$'

LineC2 DB '2------Cloth ',0dh,0ah,'$'

LineD DB '/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/',0dh,0ah,'$'

LineE DB ' Input your choose Here: ',0dh,0ah,'$'

LineE1 DB ' Input Error! Please input again',0dh,0ah,'$'

LineE2 DB ' Choose a number from 0-2 input',0dh,0ah,'$'

Linet DB ' Enter "Tab" to Restart! ',0dh,0ah,'$'

DATA_SEG ENDS

STACK_SEG SEGMENT STACK ;堆栈段定义STACK_BUF DW 120 DUP(?)

TOP EQU $-STACK_BUF

STACK_SEG ENDS

CODE_SEG SEGMENT ;程序代码区

ASSUME CS:CODE_SEG,DS:DA TA_SEG,SS:STACK_SEG

MAIN PROC FAR

START:

MOV AX,STACK_SEG

MOV SS,AX

MOV SP,TOP

MOV AX,DATA_SEG

MOV DS,AX

BEGIN:

initShowModel 0H

initWindow 0,9EH,0,0,25,40 ;宏调用

MENU:

setCurPos 2,2,0

showString LineD

setCurPos 4,9,0 ;设置主菜单光标位置

showString GameMenu

setCurPos 8,15,0

showString GameMenu[27]

setCurPos 12,15,0

showString GameMenu[39]

setCurPos 16,15,0

showString GameMenu[47]

setCurPos 21,2,0

showString LineD

setCurPos 8,12,0

showChar '>'

Keyboad:

getChar Kick ;菜单选择部分

CMP Kick,9 ;按的是键TAB

JE TAB

JMP ENTER

TAB:

getCurPos X,Y

NEXT_Tab_1:

CMP X,8 ;选择标记在start处

JNZ NEXT_Tab_2

setCurPos 8,12,0

showChar ' '

setCurPos 8,15,0

showString GameMenu[27]

setCurPos 12,12,0

showChar '>'

JMP Keyboad

NEXT_Tab_2:

CMP X,12 ;选择标记在ABOUT处

JNZ NEXT_Tab_3

setCurPos 12,12,0

showChar ' '

setCurPos 12,15,0

showString GameMenu[39]

setCurPos 16,12,0

showChar '>'

JMP Keyboad

NEXT_Tab_3:

CMP X,16 ;选择标记在exit处

JE NEXT_Tab_3_ELSE

JMP ERROR

NEXT_Tab_3_ELSE:

setCurPos 16,12,0

showChar ' '

setCurPos 16,15,0

showString GameMenu[47]

setCurPos 8,12,0

showChar '>'

JMP Keyboad

ENTER:

CMP Kick,13 ;按的是键ENTER

JE ENTER_ENTER

JMP ESC_KEY

ENTER_ENTER:

getCurPos X,Y

NEXT_ENTER_1:

CMP X,8 ;选择标记在start处

JZ NEXT_ENTER_E

JMP NEXT_ENTER_2

NEXT_ENTER_E:

MOV EQ ,48

MOV FAI ,48

MOV WIN ,48

CALL GamePlay

JMP BEGIN

NEXT_ENTER_2:

CMP X,12 ;选择标记在about处

JNZ NEXT_ENTER_3

CALL GameAbout

JMP BEGIN

NEXT_ENTER_3:

CMP X,16 ;选择标记在eXIT处

JNZ ERROR

CALL GameExit

JMP BEGIN

ESC_KEY:

CMP Kick,27 ;按的是键ESC

JNE ELSE_KEY

CALL GameExit

JMP BEGIN

ELSE_KEY:

JMP BEGIN

ERROR:

initShowModel 0

initWindow 0,9EH,0,0,25,40

setCurPos 12,6,0

getChar Kick

EXIT:

MOV AX,4CH

INT 21H

MAIN ENDP

;开始游戏子程序

GamePlay PROC

ReStart:

initShowModel 0

initWindow 0,9EH,0,0,25,40

setCurPos 2,2,0

showString LineB

setCurPos 3,2,0

showString LineA

setCurPos 5,2,0

showString LineF

setCurPos 7,2,0

showString LineB

setCurPos 10,12,0

showString LineC

setCurPos 13,12,0

showString LineC1

setCurPos 16,12,0

showString LineC2

setCurPos 19,2,0

showString LineB

setCurPos 24,2,0

showString LineD

setCurPos 19,2,0

showString LineE2

CALL Rand

MOV NUM,BL Key: setCurPos 21,2,0

showString LineE

setCurPos 21,29,0

getChar R_NUM

CMP R_NUM,'0'

JE JISUAN

JMP Scissor Scissor:

CMP R_NUM,'1'

JE JISUAN

JMP Cloth

Cloth:

CMP R_NUM,'2'

JE JISUAN

setCurPos 19,2,0

showString LineE1

setCurPos 21,29,0

JMP Key

showString LineE

JISUAN:

Pause

CMP R_NUM,'0'

JE JISUAN2 ;等于跳转

CMP R_NUM,'1'

JE JISUAN3

CMP R_NUM,'2'

JE JISUAN4

JISUAN2:

CMP NUM,0 ;计算机出“石头”计算

JE a ;ping玩家出石头

CMP NUM,1

JE b ;shu玩家出剪刀

CMP NUM,2

JE c ;yin玩家出布

JISUAN3:

CMP NUM,0 ;计算机出“剪刀”计算

JE f ;玩家出石头

CMP NUM,1 ;玩家出剪刀

JE e

CMP NUM,2

JE d ;玩家出布

JISUAN4: CMP NUM,0 ;计算机出“布”计算

JE h ;玩家出石头

CMP NUM,1 ;玩家出剪刀

JE l ;玩家出布

CMP NUM,2

JE g

a: CALL SHOW1

CALL xian1

JMP shuru ;shitou dui shi tou

RET

b: CALL SHOW3;shitou dui jian dao

CALL xian2

JMP shuru

RET

c: CALL SHOW2;shitou dui bu

CALL xian3

JMP shuru

RET

d: CALL SHOW2

CALL xian4

JMP shuru

RET

e: CALL SHOW1

CALL xian5

JMP shuru

RET

f: CALL SHOW3

CALL xian6

JMP shuru

RET

g: CALL SHOW3

CALL xian7

JMP shuru

RET

h: CALL SHOW2

CALL xian8

JMP shuru

RET

l: CALL SHOW1

CALL xian9

JMP shuru

RET

shuru:

setCurPos 25,0,0

getChar Kick

CMP Kick ,27

JE escc

CMP Kick ,13

JE continue

CMP Kick ,9

JNE shuru

RET

escc: CALL GameExit

continue: JMP ReStart

GamePlay ENDP

;产生随机数

Rand PROC

PUSH CX

PUSH DX

PUSH AX

STI

MOV AH,0 ;读时钟计数器值

INT 1AH

MOV AX,DX ;清高6位

AND AH,3

MOV DL,100 ;除100,产生0~100余数

DIV DL

MOV AH,0

MOV DL,3 ;除3,产生0~2余数

DIV DL

MOV BL,AH ;余数存BX,除数

POP AX

POP DX

POP CX

RET

Rand ENDP

;游戏结果显示子程序

SHOW1 PROC

INC EQ

initShowModel 0

initWindow 0,9EH,0,0,25,40

setCurPos 2,2,0

showString LineD

setCurPos 8,2,0

showString Dispay4

setCurPos 10,2,0

showString LineB

setCurPos 11,2,0

showString DisE

setCurPos 13,2,0

showString DisF

setCurPos 15,2,0

showString DisW

setCurPos 18,2,0

showString Dispay5

setCurPos 20,2,0

setCurPos 16,2,0

showString LineB

setCurPos 24,2,0

showString LineD

setCurPos 21,2,0

showString Linet

setCurPos 10,25,0

showChar EQ

setCurPos 12,25,0

showChar FAI

setCurPos 14,25,0

showChar WIN

RET

SHOW1 ENDP

SHOW2 PROC

INC FAI

initShowModel 0

initWindow 0,9EH,0,0,25,40

setCurPos 2,2,0

showString LineD

setCurPos 8,2,0

showString Dispay3

setCurPos 11,2,0

showString DisE

setCurPos 13,2,0

showString DisF

setCurPos 15,2,0

showString DisW

setCurPos 10,2,0

showString LineB

setCurPos 18,2,0

showString Dispay5

setCurPos 20,2,0

showString Dispay6

setCurPos 16,2,0

showString LineB

setCurPos 24,2,0

showString LineD

setCurPos 21,2,0

setCurPos 10,25,0

showChar EQ

setCurPos 12,25,0

showChar FAI

setCurPos 14,25,0

showChar WIN

RET

SHOW2 ENDP

SHOW3 PROC

INC WIN

initShowModel 0

initWindow 0,9EH,0,0,25,40

setCurPos 2,2,0

showString LineD

setCurPos 8,2,0

showString Dispay2

setCurPos 10,2,0

showString LineB

setCurPos 11,2,0

showString DisE

setCurPos 13,2,0

showString DisF

setCurPos 15,2,0

showString DisW

setCurPos 18,2,0

showString Dispay5

setCurPos 20,2,0

showString Dispay6

setCurPos 16,2,0

showString LineB

setCurPos 24,2,0

showString LineD

setCurPos 21,2,0

showString Linet

setCurPos 10,25,0

showChar EQ

setCurPos 12,25,0

showChar FAI

setCurPos 14,25,0

showChar WIN

RET

SHOW3 ENDP

xian1 PROC

setCurPos 3,2,0

showString Dispayt

setCurPos 5,2,0

showString Dispayyt

RET

xian1 ENDP

xian2 PROC

setCurPos 3,2,0

showString Dispayt

setCurPos 5,2,0

showString Dispayys

RET

xian2 ENDP

xian3 PROC

setCurPos 3,2,0

showString Dispayt

setCurPos 5,2,0

showString Dispayyc

RET

xian3 ENDP

xian4 PROC

setCurPos 3,2,0

showString Dispays

setCurPos 5,2,0

showString Dispayyt

RET

xian4 ENDP

xian5 PROC

setCurPos 3,2,0

showString Dispays

setCurPos 5,2,0

showString Dispayys

RET

xian5 ENDP

xian6 PROC

setCurPos 3,2,0

showString Dispays

setCurPos 5,2,0

showString Dispayyc

RET

xian6 ENDP

xian7 PROC

setCurPos 3,2,0

showString Dispayc

setCurPos 5,2,0

showString Dispayyt

RET

xian7 ENDP

xian8 PROC

setCurPos 3,2,0

showString Dispayc

setCurPos 5,2,0

showString Dispayys

RET

xian8 ENDP

xian9 PROC

setCurPos 2,2,0

showString Dispayc

setCurPos 5,2,0

showString Dispayyc

RET

xian9 ENDP

;游戏界面about子程

GameAbout PROC

initShowModel 0

initWindow 0,9EH,0,0,25,40

setCurPos 2,2,0

showString LineD

setCurPos 4,9,0

showString Information

setCurPos 6,2,0

showString LineD

setCurPos 12,8,0

showString Information[21]

setCurPos 14,8,0

showString Information[49]

setCurPos 16,8,0

showString Information[75]

setCurPos 20,2,0

showString LineD

setCurPos 20,2,0

Pause

RET

Gameabout ENDP

;退出游戏子程序

GameExit PROC

CHOOSE:

initShowModel 0

initWindow 0,9EH,0,0,25,40

setCurPos 2,2,0

showString LineD

setCurPos 20,2,0

showString LineD

setCurPos 4,6,0

showString ExitMsg

setCurPos 6,2,0

showString LineB

setCurPos 10,8,0

showString ExitMsg[25]

setCurPos 12,8,0

showString ExitMsg[41]

setCurPos 16,2,0

showString LineB

setCurPos 20,20,0

getChar Kick

CMP Kick,'Y'

JNE Y_INPUT

JMP EXIT

Y_INPUT:

CMP Kick,'y'

JNE N_INPUT

JMP EXIT

N_INPUT:

CMP Kick,'N'

JNE DOWN

JMP RETURN DOWN: CMP Kick,'n'

JE RETURN

JMP CHOOSE

RETURN:

RET

GameExit ENDP CODE_SEG ENDS

END MAIN

人机猜拳JAVA

Java 程序设计 人机猜拳小游戏 实 验 报 告 专业:计算机科学与技术专业 班级: 学号: 姓名: 指导老师:

摘要 面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,它吸取了结构化程序设计的精华,以更接近人们通常思维的方式来处理问题,是一种全新的软件开发技术。 作为一种新的的编程语言,Java很大程度推广了面向对象的思想。随着计算机技术的发展,Java的强大展现出它不可替代的作用。Java的功能不仅体现在它网络方面的应用,对于应用程序设计、游戏设计等Java都能满足需求。 本文针对Java 的具体应用,设计了一个小游戏。根据游戏的规则,用户将可以和计算机进行简单对战。程序实现了友好的用户交互界面,让用户能很好地对游戏进行操作。 关键字:JAVA GUI 游戏 ABSTRACT The Object-Oriented Method is a method which apllies the Object-Oriented Design to the process of the software exploiture and directs the ploy of development. It extracts the prime of the Structured Design for Computer Programmers, deals matters with a folksy fashion, which is considered to be a grand new software-develop technique. As a new programming language, Java spread the Object-Oriented Design in a certain degree. With the development of the technique of computer, the insurmountable function of JA V A is exhibited for its’ mightines s. Not only applies in network, JA V A also can fulfill the requirement of the Application-Design and Game-Design. In this paper, to use the idiographic application of JA V A , I design a game called . Following the regular of the game, user can play a simple revalry with computer. This programme actualizes a folksy GUI mode, which will make user master game easily. Keywords: JA V A GUI Game

Java五子棋游戏源代码(人机对战)

//Java编程:五子棋游戏源代码 import java.awt.*; import java.awt.event.*; import java.applet.*; import javax.swing.*; import java.io.PrintStream; import javax.swing.JComponent; import javax.swing.JPanel; /* *main方法创建了ChessFrame类的一个实例对象(cf), *并启动屏幕显示显示该实例对象。 **/ public class FiveChessAppletDemo { public static void main(String args[]){ ChessFrame cf = new ChessFrame(); cf.show(); } } /* *类ChessFrame主要功能是创建五子棋游戏主窗体和菜单**/ class ChessFrame extends JFrame implements ActionListener { private String[] strsize={"20x15","30x20","40x30"}; private String[] strmode={"人机对弈","人人对弈"}; public static boolean iscomputer=true,checkcomputer=true; private int width,height; private ChessModel cm; private MainPanel mp; //构造五子棋游戏的主窗体 public ChessFrame() { this.setTitle("五子棋游戏"); cm=new ChessModel(1); mp=new MainPanel(cm); Container con=this.getContentPane(); con.add(mp,"Center"); this.setResizable(false); this.addWindowListener(new ChessWindowEvent()); MapSize(20,15); JMenuBar mbar = new JMenuBar(); this.setJMenuBar(mbar); JMenu gameMenu = new JMenu("游戏");

这是一个简单的猜拳游戏

这是一个简单的猜拳游戏(剪子包子锤),让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。 下面的代码会实现一个猜拳游戏,让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。 代码实现: #include #include #include int main() { char gamer; // 玩家出拳 int computer; // 电脑出拳 int result; // 比赛结果 // 为了避免玩一次游戏就退出程序,可以将代码放在循环中 while (1){ printf("这是一个猜拳的小游戏,请输入你要出的拳头:\n"); printf("A:剪刀\nB:石头\nC:布\nD:不玩了\n"); scanf("%c%*c",&gamer); switch (gamer){ case 65: //A case 97: //a gamer=4; break; case 66: //B case 98: //b gamer=7; break; case 67: //C case 99: //c gamer=10; break; case 68: //D case 100: //d return 0; default: printf("你的选择为%c 选择错误,退出...\n",gamer); getchar(); system("cls"); // 清屏 return 0; break;

} srand((unsigned)time(NULL)); // 随机数种子 computer=rand()%3; // 产生随机数并取余,得到电脑出拳 result=(int)gamer+computer; // gamer 为char 类型,数学运算时要强制转换类型 printf("电脑出了"); switch (computer) { case 0:printf("剪刀\n");break; //4 1 case 1:printf("石头\n");break; //7 2 case 2:printf("布\n");break; //10 3 } printf("你出了"); switch (gamer) { case 4:printf("剪刀\n");break; case 7:printf("石头\n");break; case 10:printf("布\n");break; } if (result==6||result==7||result==11) printf("你赢了!"); else if (result==5||result==9||result==10) printf("电脑赢了!"); else printf("平手"); system("pause>nul&&cls"); // 暂停并清屏 } return 0; } 代码分析 1) 首先,我们需要定义3个变量来储存玩家出的拳头(gamer)、电脑出的拳头(computer)和最后的结果(result),然后给出文字提示,让玩家出拳。 接下来接收玩家输入: scanf("%c%*c",&gamer); 注意:由于每次输入以回车结束,缓冲区中除了玩家输入的字母,还有回车符。回车符要跳过,以免影响下次输入。Scanf() 函数的格式控制字符串个数可以多于参数个数,scanf("%c%*c",&gamer);的作用是从缓冲区多输出一个字符(回车符),却不赋给任何变量。 玩家输入结束,使用switch 语句判断输入内容,65(A)、97(a)、66(B)、98(b)、67(C)、99(c)、68(D)、100(d)为相应字符的ASCII码。 注意:system("cls"); 语句的作用是清屏。System() 函数用来执行dos 命令,这里相当于在dos 里输入cls命令。 2) 玩家出拳结束,电脑开始出拳。

Java程序设计人机猜拳

Java程序设计实验报告 班级:11060341X 学号:50 姓名:马一桃 实验题目:猜拳小游戏 实验要求: 用java编写一个人机对战的猜拳小游戏。人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。有简单的操作界面。 实验内容: 1、问题分析过程: 人机猜拳:人可以通过选择出拳,通过键盘输入相应数字来实现。电脑则随机性出拳,由电脑产生随即数来实现。 通过游戏规则判断双方的输赢,显示当局的输赢情况,并记录当局的分数,并各方的输赢情况。游戏结束时显示双方的分数以及输赢情况。 面向的对象有人、电脑以及游戏规则。人、电脑都有实现自己出拳的方法,同时还要有判断各方输赢的方法。 2、主要实现代码:(要求有必要的注释): import java.util.Scanner; //通过import语句引入Scanner类 public class Game{ public static void main(String args[]){ int x=0; //用户的初始分数为0 int y=0; //电脑的初始分数为0 int z=0; //开始时决战次数为0 System.out.println("\n"); System.out.println("猜拳游戏现在开始,准备好了吗?"); System.out.println("===========游戏规则==========="); System.out.println(" 胜利加一分,否则不加分 "); System.out.println(" 当游戏结束时分高者为胜 "); System.out.println("=============================="); Scanner shuzi = new Scanner(System.in); //用户通过键盘输入 System.out.println("是否要开始游戏?"+"\n"+" y/n"); String m = shuzi.next(); while(m.equals("y")) { System.out.println("请选择数字出拳:"); System.out.println("1 石头 2 剪刀 3 布"); int A = shuzi.nextInt(); //利用switch语句,用户实现出拳 switch(A){ case 1:

java小游戏源码

连连看java源代码 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; //分别记录两次被选中的按钮 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;//消除方法控制 public void init(){ mainFrame=new JFrame("JKJ连连看"); thisContainer = mainFrame.getContentPane(); thisContainer.setLayout(new BorderLayout()); centerPanel=new JPanel(); southPanel=new JPanel(); northPanel=new JPanel(); thisContainer.add(centerPanel,"Center"); thisContainer.add(southPanel,"South"); thisContainer.add(northPanel,"North"); centerPanel.setLayout(new GridLayout(6,5)); for(int cols = 0;cols < 6;cols++){ for(int rows = 0;rows < 5;rows++ ){ diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1])); diamondsButton[cols][rows].addActionListener(this); centerPanel.add(diamondsButton[cols][rows]); } } exitButton=new JButton("退出"); exitButton.addActionListener(this); resetButton=new JButton("重列"); resetButton.addActionListener(this); newlyButton=new JButton("再来一局"); newlyButton.addActionListener(this); southPanel.add(exitButton);

幼儿园中班游戏教案:猜拳游戏

幼儿园中班游戏教案:猜拳游戏 Game teaching plan of kindergarten middle class: guessing fist game

幼儿园中班游戏教案:猜拳游戏 前言:本文档根据题材书写内容要求展开,具有实践指导意义,适用于组织或个人。便于学习和使用,本文档下载后内容可按需编辑修改及打印。 目标: 1.观察游戏卡片上的图案,理解游戏中"石头、剪子、布"相互克制的关系。 2.在翻动、覆盖、叠加卡片的过程中提高判断能力和手 眼协调能力。 准备: 1.自制16宫格游戏底板一块。 2.用KT板自制的并用透明胶包起来的"石头、剪子、布"单面图案卡片各5张,另外增加1张"石头"卡片,一共16 张游戏卡片,所有游戏卡片的背面为白底。 3.每张游戏卡片的大小与游戏底板16宫格的格子大小一致。 玩法:

1.两名幼儿游戏。游戏前,幼儿共同把"石头、剪子、布"游戏卡片打乱,然后将其图案朝下,任意覆盖在16宫格游戏底板上。 2.游戏时,一名幼儿先选择翻开任意一张游戏卡片,另一名幼儿也选择翻开一张游戏卡片,随后,幼儿要快速判断自己所翻的游戏卡片能否克制对方翻开的游戏卡片。如果能够克制,则可以把自己的卡片叠放在对方的卡片上,覆盖住它的图案,比如"石头"可以覆盖"剪子","剪子"可以覆盖"布","布"可以覆盖"石头"。如果两张卡片不能形成互相克制的关系,则保持原有的翻开状态。 3.两名幼儿依次轮流游戏,幼儿每翻开一张卡片,都要观察和判断自己的卡片能否将游戏底板上翻开的任意一张卡片克制住。如果能克制住,则马上进行叠加,即覆盖在那张或那叠卡片上;如果没有能克制住的对象,就让卡片继续保持翻开状态。 4.当游戏底板上的卡片被全部翻完时,游戏双方就用猜拳方法来决定每次谁先行动。每次猜拳获胜者可以选择将游戏底板上任意一组形成相互克制关系的卡片叠加在一起。 5.当游戏底板上没有相互克制的卡片时,游戏结束。

java小游戏源代码

j a v a小游戏源代码 Document number:NOCG-YUNOO-BUYTT-UU986-1986UT

Java小游戏 第一个Java文件: import class GameA_B { public static void main(String[] args) { Scanner reader=new Scanner; int area; "Game Start…………Please enter the area:(1-9)" + '\n'+"1,2,3 means easy"+'\n'+"4,5,6 means middle"+'\n'+ "7,8,9 means hard"+'\n'+"Please choose:"); area=(); switch((area-1)/3) { case 0:"You choose easy! ");break; case 1:"You choose middle! ");break; case 2:"You choose hard! ");break; } "Good Luck!"); GameProcess game1=new GameProcess(area); (); } } 第二个Java文件: import class GameProcess { int area,i,arrcount,right,midright,t; int base[]=new int[arrcount],userNum[]=new int[area],sysNum[]=new int[area]; Random random=new Random(); Scanner reader=new Scanner; GameProcess(int a) { area=a; arrcount=10; right=0; midright=0; t=0; base=new int[arrcount]; userNum=new int[area]; sysNum=new int[area]; for(int i=0;i

《猜拳小游戏》课程设计报告

吉林省经济管理干部学院 吉林经济职业技术学院 2013-2014学年第一学期 课程设计 项目类别:游戏设计 设计题目:猜拳小游戏 班级: 学号: 姓名: 校内教师: 企业教师: 设计日期:2013年12月9 日——2013年12月20日

一、设计目标 首先是JAVA语言的初级编程。其次JAVA语言的猜拳小游戏的编程及设计。有JAVA平台软件eclipse的使用。并且使用软件eclipse对猜拳小游戏进行编程,设计游戏算法,实现游戏功能。 二、目标描述 程序总体介绍和设计要求程序使用J2SE语言编写,使用标准JDK平台编译和运行。程序使用已创建的类,设计并实现一个类来玩游戏。根据游戏规则玩家将和电脑进行比赛。 在这个课程设计中,我们做成了一个人机猜拳的小游戏。游戏与我们平时玩的“剪刀、石头、布”是一样的玩法,只不过是玩家与电脑进行猜拳,并且电脑是随机出拳的。 三、设计过程

总体设计 3.1 程序主要功能: 程序总体介绍和设计要求程序使用J2SE语言编写,使用标准JDK平台编译和运行。 程序使用已创建的PairOfDice类,设计并实现一个类来玩游戏。根据游戏规则玩家将和电脑进行比赛。 3.2本程序设计有一下几点设计要求: 1)用可视化编程控件实现该程序。 2)人和电脑对战,你输入石头或剪子或布后,电脑会说“你赢了”,“你输了”或“平”。 3)在游戏结束时,要显示你赢了多少局,电脑赢了多少局,你们平了多少局 3.3 用户动作事件描述: 1)进行游戏 2)清零 3)对本次游戏的用户和电脑数据进行清零,即重新开始游戏。 3.4程序中所用类说明 用户自定义类 类名:SmallGame 作用:实例化对象 主要成员变量: a.Frame myFrm // 定义主窗体 b.TextArea myText // 定义文本编辑区 c.Button BfontOK, Bfind, Breplace, Bnext, Bcancel //定义和创建各按钮 https://www.wendangku.net/doc/967504700.html,bel Lf Lr, Ls //定义和创建各标签 e.MenuBar Mbbar //定义和创建主菜单 f.Menu Mfile,Medit,Mformation,Mhelp //定义和创建主菜单中的选项 g.Toolkit toolKit

扫雷游戏Java源代码

扫雷游戏Java源代码 import java.awt.BorderLayout; import java.awt.Container; import java.awt.Font; import java.awt.GridLayout; import java.awt.Insets; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.Timer; public class ScanLei1 extends JFrame implements ActionListener{ private static final long serialVersionUID = 1L; private Container contentPane; private JButton btn; private JButton[] btns; private JLabel b1; private JLabel b2; private JLabel b3; private Timer timer; private int row=9; private int col=9; private int bon=10; private int[][] a; private int b; private int[] a1; private JPanel p,p1,p2,p3; public ScanLei1(String title){ super(title); contentPane=getContentPane();

人机猜拳小游戏

南华大学计算机科学与技术学院实验报告 (2013 ~ 2014 学年度第一学期) 面向对象程序设 课程名称 实验名称人机猜拳游戏 姓名唐龙学号20139350106 专业船山软件班级13级1班 地点8—410 教师夏石莹

一、实验目的 本课程设计所要求达到的目的:通过Java程序设计的一些重要理论基础来实现“人机猜拳小游戏”的功能。通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果,逐步建立正确的全局观念。 二、实验设计与要求 问题定义:创建小游戏,实现电脑与玩家之间互动猜拳这主要功能,并能显示设置的图片,增加美观。 研究意义:通过本次程序设计,我掌握了Java语言的基本运用,提高了理论结合实际能力。 设计要求: 1)界面的左侧是电脑或者玩家的名字,让界面看起来一目了然。 2)系统界面的中间是电脑或者玩家出拳的图片。图片可以生动形象得表示出电脑或 者玩家出的拳,显示的图片在对话框中也相得益彰。在图片的下方会显示,人机 猜拳以后的输赢。 3)界面的右侧是三个剪刀石头布的按钮。玩家通过按钮出拳,电脑随机出拳,猜拳 的输赢结果在下方显示。 三、系统的主要功能 1.可以通过按钮的方式,与电脑进行猜拳游戏,电脑随机出拳; 2.可以显示出拳图片。 四、实验工具 Windows 7;jdk1.6.0_21;eclipse 五、项目实现

首先建立一个Test类,如下: import java.awt.Color; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.AbstractButton; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; public class Test extends JFrame { JLabel jl,jl1; final JLabel jl2,jl3; JLabel jl4; public String person; public String m; int j; int i; final String[] arr = new String[3]; public void Win(String person) { arr[0] = "石头"; arr[1] = "剪刀"; arr[2] = "布"; person = arr[j]; i = (int) (Math.random() * 3); String c = arr[i]; //判断输赢 if (c.equals(person)) { jl4.setText("平手"); } else if (c.equals("剪刀") && person.equals("石头") || c.equals("石头")&& person.equals("布") || c.equals("布") && person.equals("剪刀")) { jl4.setText("你赢了"); } else { jl4.setText("你输了"); } }

(完整word版)基于Java的猜拳小游戏设计

目录 绪论............................................... 错误!未定义书签。 一、背景与意义..................................... 错误!未定义书签。 二、设计原理与方案................................. 错误!未定义书签。 一)方案....................................... 错误!未定义书签。 二)设计思路................................... 错误!未定义书签。 三)系统分析................................... 错误!未定义书签。 四)程序概要设计............................... 错误!未定义书签。 五)工作流程图................................ 错误!未定义书签。 六)程序框图.................................. 错误!未定义书签。 七)程序中所用类说明.......................... 错误!未定义书签。 八)程序运行效果及存在的问题................... 错误!未定义书签。 三、项目实现....................................... 错误!未定义书签。 一)程序用到的类库简介......................... 错误!未定义书签。 二)游戏主程序设计............................. 错误!未定义书签。 三)主界面PigPanel类......................... 错误!未定义书签。 四)具体实现.................................. 错误!未定义书签。 四、运行结果....................................... 错误!未定义书签。 一)结果截图................................... 错误!未定义书签。 二)系统在调度中经常出现的问题................. 错误!未定义书签。 五、心得........................................... 错误!未定义书签。 六、总结语......................................... 错误!未定义书签。 七、参考文献 (19)

Java小游戏俄罗斯方块附完整源代码_毕业设计

**** 届毕业设计Java小游戏俄罗斯方块

┊┊┊┊┊┊┊┊┊┊┊┊┊装┊┊┊┊┊订┊┊┊┊┊线┊┊┊┊┊┊┊┊┊┊┊┊┊ 摘要 在现今电子信息高速发展的时代,电子游戏已经深入人们的日常生活,成为老少皆宜的娱乐方式。但是游戏设计结合了日新月异的技术,在一个产品中整合了复杂的设计、艺术、声音和软件,所以并不是人人皆知。直到今天,在中国从事游戏设计的人仍然很少,但是游戏行业的发展之快,远超如家电、汽车等传统行业,也正因为如此,游戏人才的教育、培养远落后于产业的发展。 俄罗斯方块是个老幼皆宜的小游戏,它实现由四块正方形的色块组成,然后存储在一个数组的四个元素中,计算机随机产生不同七种类型的方块,根据计算机时钟控制它在一定的时间不停的产生,用户根据键盘的四个方向键控制翻转、向左、向右和向下操作,(控制键的实现是由键盘的方向键的事件处理实现)。然后程序根据这七种方块堆叠成各种不同的模型。 论文描述了游戏的历史,开发此游戏的环境,游戏开发的意义。遵循软件工程的知识,从软件问题定义开始,接着进行可行性研究、需求分析、概要设计、详细设计,最后对软件进行了测试,整个开发过程贯穿软件工程的知识体系。 此次设计在Microsoft Windows 7系统下,以Java为开发语言,在eclipse开发平台上进行游戏的设计与实践。从游戏的基本玩法出发,主要就是俄罗斯方块的形状和旋转,我在设计中在一个图片框中构造了一些的网状小块,由这些小块组合成新的形状,每四个小块连接在一起就可以构造出一种造型,因此我总共设计了7中造型,每种造型又可以通过旋转而变化出2到4种形状,利用随机函数在一个欲览窗体中提前展示形状供用户参考,在游戏窗体中用户就可以使用键盘的方向键来控制方块的运动,然后利用递归语句对每一行进行判断,如果有某行的方块是满的,则消除这行的方块,并且使上面的方块自由下落,最后就可以得出用户的分数。 关键词:游戏设计,算法,数组,事件

JAVA人机猜拳小游戏代码

//JAVA人机猜拳小游戏代码 import java.util.Scanner; public class guess{ public static void main(String[] args){ Scanner in=new Scanner(System.in); System.out.println("-----猜拳游戏-------"); System.out.println("请出拳(1.剪刀2.石头3.布)"); int person=in.nextInt(); int computer=(int)(Math.random()*3)+1; String Marks="拳头";//这是给人做一个标记; String Marks2="拳头";//这是给电脑做一个标记; switch(person){ case 1: Marks="拳头"; break; case 2: Marks="石头"; break; case 3: Marks="布"; break; } switch(computer){ case 1: Marks2="拳头"; break; case 2: Marks2="石头"; break; case 3: Marks2="布"; break; } if(person==computer){ System.out.println("你出的是:"+Marks+"电脑出的是:"+Marks2+"---平局"); }else if(person==1&&computer==2||person==2&&computer==3||person==3&&computer= =1){ System.out.println("你出的是:"+Marks+"电脑出的是:"+Marks2+"—_—你输了!"); }else{ System.out.println("你出的是:"+Marks+"电脑出的是:"+Marks2+"^_^你赢了!"); } }

java小游戏源代码

Java小游戏 第一个Java文件: import public class GameA_B { public static void main(String[] args) { Scanner reader=new Scanner; int area; "Game Start…………Please enter the area:(1-9)" + '\n'+"1,2,3 means easy"+'\n'+"4,5,6 means middle"+'\n'+ "7,8,9 means hard"+'\n'+"Please choose:"); a rea=(); s witch((area-1)/3) { c ase 0:"You choose easy! ");break; c ase 1:"You choose middle! ");break; c ase 2:"You choose hard! ");break; } "Good Luck!"); G ameProcess game1=new GameProcess(area); (); } } 第二个Java文件: import import public class GameProcess { int area,i,arrcount,right,midright,t; int base[]=new int[arrcount],userNum[]=new int[area],sysNum[]=new int[area]; Random random=new Random(); Scanner reader=new Scanner; GameProcess(int a) { area=a; arrcount=10; right=0; midright=0; t=0; base=new int[arrcount]; userNum=new int[area]; sysNum=new int[area]; for(int i=0;i

Java游戏开发项目及游戏源码

J a v a程序设计项目 1.项目背景 为了提高学生动手能力,增加学生实践的机会,某软件公司实习单位要求学生5-6人组成开发团队进行Java程序项目开发,参考自己团队的实力与客户的要求,使用Java语言开发某一项目,此项目可以是应用程序,也可以是游戏开发等,项目名称自拟。 2.硬件资源和软件资源 (1)每组配备联网PC台,智能手机一部(带有手机数据 线)HP打印机一台。 (2)eclipse-SDK-3.6.1-win32软件开发程序(含有eclipseme插件)、SUNWTK 无线开发包或Symbian_3_SDK_v0_9等手机开发包。 3.实验室功能需求 (1)实现学生机和教师机器(服务器)进行通信,相互共享资源。 (2)教师机器(服务器)上安装一台打印机,实现学生机可以共享打印。 (3)实现教师机器(服务器)连接和访问Internet。 (4)实现每一台学生机器访问Internet。 (5)要求为每一项目组学生机和教师机器分配一个标识,即学生机器的机器名为ST1~ST10,教师机器名为Server。 4.项目实施要求 (1)要求各项目小组拿出详细的某某Java程序设计项目报告书(具体项目规划书格式参考附表一),关键步骤要有相应的截图。 (2)要求项目组长向各小组讲解与演示自己小组的项目成果,组长小组成员要熟练的解释与分析自己负责编写的Java代码或项目分工成果。 (3)最后提交用小组命名的文件夹,其中包括开发所用的所有资料与项目成果。 附表一: 雷霆战机项目报告书 一、项目概述 本项目为一个Java游戏,是一个基于J2ME平台的飞机射击类游戏。 二、项目开发团队 三、所用Java相关知识点

Java猜拳小游戏源代码

第一个文件: public class Computer { String name; int score; public int showfist(){ int quan; quan=(int)(Math.random()*10); if(quan<=2){ quan=1; }else if(quan<=5){ quan=2; }else{ quan=3; } switch(quan){ case 1:System.out.println(name+"出拳:剪刀");break; case 2:System.out.println(name+"出拳:石头");break; case 3:System.out.println(name+"出拳:布");break; } return quan; } } 第二个文件: import java.util.Scanner; public class Game { int count=0; int countP=0; Person person=new Person(); Computer computer=new Computer(); Scanner input=new Scanner(System.in); public void initial(){ System.out.print("请选择你的角色(1.刘备 2.孙权 3.曹操):"); int juese=input.nextInt(); switch(juese){ case 1:https://www.wendangku.net/doc/967504700.html,="刘备"; break; case 2:https://www.wendangku.net/doc/967504700.html,="孙权"; break; case 3:https://www.wendangku.net/doc/967504700.html,="曹操"; break; } System.out.print("请选择对手角色(1.关羽 2.张飞 3.赵云):");

人机猜拳思路

先建立个Game 包然后我做的就是分了 5 个类来做的TestStartGuess 类package com、game、guess; public class TestStartGuess { /** * 人机互动版猜拳游戏 * 程序入口 */ public static void main(String[] args) { Game game=new Game(); game、initial(); game、startGame(); } } 2、Person 类 package com、game、guess; import java 、util 、Scanner; /** * 用户类 *阶段1 完成 * @param */ public class Person { String name =" 匿名";// 名字 int score =0;// 积分 /** * 出拳 *@return 出拳结果:1、剪刀2、石头3、布*/ public int showFist(){ // 接收用户的选择 Scanner input =new Scanner(System、in); System、out 、print("\n 请出拳:1、剪刀2、石头3、布(输入相应数字):"); int show=input 、nextInt(); // 输出出拳结果,并返回switch(show){ case 1: System、out 、println(" 您出拳:剪刀"); break; case 2: System、out、printin("您出拳石头”); break; case 3: System、out 、println(" 您出拳:布"); break; } return show; } } 3、Computer 类 package com、game、guess; /** *计算机类 *阶段2 完成 */ public class Computer{ String name=" 电脑";// 名字

java迷宫小游戏源代码

帮朋友写的迷宫小游戏程序java //作者:LaoCooon import java.awt.Graphics; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.event.*; import javax.swing.*; import java.awt.*; class mMaze extends Frame { Color redColor;

Random Random=new Random(); int mapI=Random.getRandom(); MapArray MapArray=new MapArray(); int[] map = MapArray.getMapArray(mapI); static ImageIcon wall= new ImageIcon("wall.jpg"); final ImageIcon tortoise= new ImageIcon("tortoise.gif"); int xl=0,yl=1,speed=30; int x=0,y=1; public mMaze(){addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e){ if(e.getKeyCode()== KeyEvent.VK_UP){ System.out.println("\n Go Up"); if(map[(yl-1)*29+xl]!=1) yl-=1; } else if(e.getKeyCode()== KeyEvent.VK_DOWN){ System.out.println("\n Go Down"); if(map[(yl+1)*29+xl]!=1) yl+=1; } else if(e.getKeyCode()== KeyEvent.VK_LEFT){ System.out.println("\n Go Left"); if(map[yl*29+(xl-1)]!=1) xl-=1; } else if(e.getKeyCode()== KeyEvent.VK_RIGHT){ System.out.println("\n Go Right"); if(map[yl*29+(xl+1)]!=1) xl+=1; } else System.out.println(e.getKeyChar()); if(y==27&&x==28) System.out.println("\n You Win~!"); repaint(); } } ); setSize(890,910); setVisible(true); setLocation(400,200); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ dispose(); System.exit(0); } } ); } public void paint(Graphics g){ g.drawImage(tortoise.getImage(), xl*speed+8, yl*speed+30, null); int i=0,j=0; for ( i = 0; i < 29; i++) for(j=0;j<29;j++) if(map[i*29+j]==1) g.drawImage(wall.getImage(), j*30+8, i*30+30, null); } } public class Maze{ public static void main(String[] args){ new mMaze(); }} 回复 ?2楼 ?2013-05-16 10:34

相关文档