1.关于五子棋的开发与实现的计算机毕业设计
关于五子棋的毕业设计, 电脑已经深入到日常工作和生活的方方面面,比如文字处理、信息管理、辅助设计、图形图像处理、教育培训以及游戏娱乐等。
Windows系统的推出使电脑从高雅的学术殿堂走入了寻常百姓家,各行各业的人们无须经过特别的训练就能够使用电脑完成许许多多复杂的工作。然而,虽然现在世界上已经充满了花样繁多的各种软件,但它们依然不能满足用户的各种特殊需要,人们还不得不开发适合自己特殊需求的软件。
Java语言作为一种面向对象的编程语言,具有分布式,可移植,高性能,多线程等特点。通过系统的学习,人们就可以使用它开发出功能齐全,满足特殊需求的应用程序。
Java语言易学易用,对学习者掌握技能,开拓思维都有很大的帮助。我作为一名学生,在系统的学习了Java语言之后,经常用它搞一些小程序。
这次课程设计,我就想将学过的Java语言中的各种技术综合起来,编写一个小游戏,既对自己学过的技能进行一次检验,也能系统地将学过的知识复习巩固,具体的还是去三七论文网看看.occo.j2me.game.gobang;import javax.microedition.lcdui.Display;import javax.microedition.midlet.MIDlet;public class Gobang extends MIDlet { GobangCanvas gobang;//定义游戏界面的Canvas类GobangCanvas的对象gobang public Gobang() { super(); gobang=new GobangCanvas(this);//生成GobangCanvas类的对象gobang } protected void startApp(){ Display.getDisplay(this).setCurrent(gobang); //在屏幕上绘出游戏见面gobang } protected void pauseApp(){ } protected void destroyApp(boolean arg0){ }} 游戏界面类:GobangCanvas.javaGobangCanvas类是游戏的核心类,继承自Canvas,此类将完成游戏的逻辑、绘图、控制、互动等所有功能,此类的框架代码如下:package com.occo.j2me.game.gobang;import javax.microedition.lcdui.Canvas;import javax.microedition.lcdui.Command;import javax.microedition.lcdui.CommandListener;import javax.microedition.lcdui.Displayable;import javax.microedition.lcdui.Graphics;public class GobangCanvas extends Canvas implements CommandListener{ protected Gobang gobang; public GobangCanvas(){ } public GobangCanvas(Gobang gobang){ this.gobang=gobang; } protected void paint(Graphics g) { }} 棋子类:Chesses.java此类定义了一个棋子,棋盘上的每一个棋子都对应着一个Chesses的对象,整个棋盘是一个Chesses类型的二维数组,源代码如下:package com.occo.j2me.game.gobang; public class Chesses { boolean isPlayer1; public Chesses() { } public Chesses(boolean isPlayer1) { this.isPlayer1=isPlayer1; }} 添加图形图像到现在,我们已经完成了游戏的一个基本框架,接下来,我们就可以来绘制游戏的每一个部件了首先是五子棋的一些初始设置,添加如下代码到GobangCanvas.java 。 int empty;//游戏界面到屏幕边缘的留空 int canvasW,canvasH;//画布的长和宽 int chessLength;//棋子的直径 int chessMapLength,chessMapGrid,chessGridLength; //棋盘的边长,棋盘一边格子数,每格宽度 int chessMapX,chessMapY;//棋盘左上角x,y坐标 int selectedX,selectedY;//选择框在棋盘格局上的x,y位置 boolean isPlayer1;//是否是玩家1 Chesses[][] chesses;//棋子数组 boolean newGame;//是否是新的游戏 public GobangCanvas(Gobang gobang){ newGame=true; empty=10; canvasW=getWidth()-empty;canvasH=getHeight()-empty; chessMapGrid=15; chesses=new Chesses[chessMapGrid+1][chessMapGrid+1]; if(canvasW>canvasH){ chessMapLength=canvasH-canvasH%chessMapGrid; chessMapX=(canvasW-chessMapLength)/2+empty/2; chessMapY=(canvasH。
5.五子棋游戏(网络版)的设计与开发的VC毕业设计,有谁会做的
本论文从基本网络套节字开始入手,介绍了一些本系统相关的理论知识,随后详细介绍了五子棋游戏(网络版)的开发过程。
包括服务器端、客户端的socket编程,五子棋服务器和客户端通信的实现,五子棋判断算法的实现,主界面视图,多媒体播放以及定时器等附加功能的实现。最后对系统进行测试并对所做工作进行总结。
关键词:网络游戏;五子棋;VC;WinSocket;MCI2 游戏开发环境介绍2.1 环境介绍2.2 Visual C++6.0介绍2.3 OSI模型介绍2.4 TCP/IP模型介绍2.5 Winsock技术2.5.1 Winsock编程流程简介2.5.2 CAsyncSocket类介绍2.5.3 CSocket类介绍2.5.4 多媒体MCI接口介绍3 五子棋游戏(网络版)研究方法3.1 五子棋游戏(网络版)需求分析3.2 五子棋游戏(网络版)研究思路4 五子棋游戏(网络版)设计4.1 五子棋游戏(网络版)流程4.2 五子棋游戏(网络版)功能设计方案4.2.1 主要类介绍4.2.2 主要类的工作示意图4.3 五子棋游戏实现4.3.1 游戏连接——CServerSocket类的实现4.3.2 游戏连接——CClientSocket类的实现4.3.3 网络信息——CMessg类的实现4.3.4 下棋算法——Match类的实现4.3.5 主界面——CFiveChessView类的实现4.3.6 多媒体——CSoundThread类的实现4.3.7 定时器的实现下面介绍一下Win32平台的Winsock编程方法。通讯则必须有服务器端和客户端。
简单介绍tcp服务器端的大体流程。int WSAStarup( WORD wVersionRequested , LPWSADATA lpWsAData )SOCKET socket( int af , int type , int protocol );当调用了socket()接口函数创建了一个套接字后,必须把套接字与需要进行通讯的地址建立联系。
int bind(SOCKET s , const struct sockaddr FAR* name , int namelen ) ;struct sockaddr_in{short sin_family ;u_short sin_prot ;struct in_addr sin_addr ;char sin_sero[8] ;}就包含了需要建立连接的本地的地址,包括地址族,ip和端口信息;Winsock API提供了几个函数,把主机字节转化成网络字节的函数;u_long htonl( u_long hostlong );u_short htons( u_short hostshort );把网络字节转化成主机字节的函数;u_long ntohl( u_long netlong ) ;u_short ntohs( u_short netshort ) ;当绑定完成之后,服务器端必须建立一个监听的队列来接收客户端的连接请求。int listen( SOCKET s ,int backlog );如果客户端有了连接请求,还必须使用int accept( SOCKET s , struct sockaddr FAR* addr , int FAR* addrlen )来接受客户端的请求。
现在基本上已经完成了一个服务器的建立,而客户端的建立的流程则是初始化WinSock ,然后创建socket套接字,再使用int connect( SOCKET s , const struct sockaddr FAR* name , int namelen ) 来连接服务端。本文来自希望对你有点帮助。
6.毕业论文的课题任务和课题要求怎么写
写课题任务时主要从“2113想借助这篇论文达到什么样的目的”入手,表明写作意图;写课题要求时主要从“写作时要注意的点”入手,表明写作的时候运用到的研究方法等方面的内容。下面举例说明:
一、毕业论文的课题任务:5261为JAVA在安卓手机平台设置五子棋游戏的时候提供相应的参考。
二、毕业论文的课题要求:
1、尽量结合生产、科研及技术设备的革新、技术改造等完成论文。
2、要求论文具有先进性、实用性。
3、论文选题难度适中。
扩展资料
毕业论文写作注意事项4102
1、毕业论文是应考者的总结性独立作业,目的在于总结学习专业的成果,培养综合运用所学知识解决实际问题的能力。从文体而言,1653它也是对某一专业领域的现实问题或理论问题进行科学研究回探索的具有一定意义的论说文。完成毕业论文的撰写可以分两个步骤,即选择课题和研究课题。
2、选好课题后,接下来的工作就是研究课题,研究课题一般程序是:搜集资料、研究资料,明确论点和选定答材料,最后是执笔撰写、修改定稿。
参考资料来源:百度百科-毕业论文
7.java 五子棋 课程设计
呵呵,代码自己测试:import java.awt.*; import java.awt.event.*; import java.applet.Applet; import java.awt.Color; public class enzit extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener { int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子 int intGame_Start=0;//游戏开始标志 0未开始 1游戏中 int intGame_Body[][]=new int[16][16]; //设置棋盘棋子状态 0 无子 1 白子 2 黑子 Button b1=new Button("游戏开始"); Button b2=new Button("重置游戏"); Label lblWin=new Label(" "); Checkbox ckbHB[]=new Checkbox[2]; CheckboxGroup ckgHB=new CheckboxGroup(); public void init() { setLayout(null); addMouseListener(this); add(b1); b1.setBounds(330,50,80,30); b1.addActionListener(this); add(b2); b2.setBounds(330,90,80,30); b2.addActionListener(this); ckbHB[0]=new Checkbox("白子先",ckgHB,false); ckbHB[0].setBounds(320,20,60,30); ckbHB[1]=new Checkbox("黑子先",ckgHB,false); ckbHB[1].setBounds(380,20,60,30); add(ckbHB[0]); add(ckbHB[1]); ckbHB[0].addItemListener(this); ckbHB[1].addItemListener(this); add(lblWin); lblWin.setBounds(330,130,80,30); Game_start_csh(); } public void itemStateChanged(ItemEvent e) { if (ckbHB[0].getState()) //选择黑子先还是白子先 { color_Qizi=0; } else { color_Qizi=1; } } public void actionPerformed(ActionEvent e) { Graphics g=getGraphics(); if (e.getSource()==b1) { Game_start(); } else { Game_re(); } } public void mousePressed(MouseEvent e){} public void mouseClicked(MouseEvent e) { Graphics g=getGraphics(); int x1,y1; x1=e.getX(); y1=e.getY(); if (e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300) { return; } if (x1%20>10) { x1+=20; } if(y1%20>10) { y1+=20; } x1=x1/20*20; y1=y1/20*20; set_Qizi(x1,y1); } public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){} public void paint(Graphics g) { draw_qipan(g); } public void set_Qizi(int x,int y) //落子 { if (intGame_Start==0) //判断游戏未开始 { return; } if (intGame_Body[x/20][y/20]!=0) { return; } Graphics g=getGraphics(); if (color_Qizi==1)//判断黑子还是白子 { g.setColor(Color.black); color_Qizi=0; } else { g.setColor(Color.white); color_Qizi=1; } g.fillOval(x-10,y-10,20,20); intGame_Body[x/20][y/20]=color_Qizi+1; if (Game_win_1(x/20,y/20)) //判断输赢 { lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; } if (Game_win_2(x/20,y/20)) //判断输赢 { lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; } if (Game_win_3(x/20,y/20)) //判断输赢 { lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; } if (Game_win_4(x/20,y/20)) //判断输赢 { lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; } } public String Get_qizi_color(int x) { if (x==0) { return "黑子"; } else { return "白子"; } } public void draw_qipan(Graphics G) //画棋盘 15*15 { G.setColor(Color.lightGray); G.fill3DRect(10,10,300,300,true); G.setColor(Color.black); for(int i=1;i<16;i++) { G.drawLine(20,20*i,300,20*i); G.drawLine(20*i,20,20*i,300); } } public void Game_start() //游戏开始 { intGame_Start=1; Game_btn_enable(false); b2.setEnabled(true); } public void Game_start_csh() //游戏开始初始化 { intGame_Start=0; Game_btn_enable(true); b2.setEnabled(false); ckbHB[0].setState(true); for (int i=0;i<16 ;i++ ) { for (int j=0;j<16 ;j++ ) { intGame_Body[i][j]=0; } } lblWin.setText(""); } public void Game_re() //游戏重新开始 { repaint(); Game_start_csh(); } public void Game_btn_enable(boolean e) //设置组件状态 { b1.setEnabled(e); b2.setEnabled(e); ckbHB[0].setEnabled(e); ckbHB[1].setEnabled(e); } public boolean Game_win_1(int x,int y) //判断输赢 横 { int x1,y1,t=1; x1=x; y1=y; for (int i=1;i<5 ;i++ ) { if (x1>15) { break; } if (intGame_Body[x1+i][y1]==intGame_Body[x][y]) { t+=1; } else { break; } } for (int i=1;i<5 ;i++ ) { if (x1<1) { break; } if(intGame_Body[x1-i][y1]==intGame_Body[x][y]) { t+=1; } else { break; } } if (t>4) { return true; } else { return false; } } public boolean Game_win_2(int x,int y) //判断输赢 竖 { int x1,y1,t=1; x1=x; y1=y; for (int i=1;i<5 ;i++ ) { if (x1>15) { break; } if (intGame_Body[x1][y1+i]==intGame_Body[x][y]) { t+=1; } else { break; } } for (int i=1;i<5 ;i++ ) { if (x1<1) { break; } if(intGame_Body[x1][y1-i]==intGame_Body[x][y]) { t+=1; } else { break; } } if (t>4) { return true; } else { return false; } } public boolean Game_win_3(int x,int y) //判断输赢 左斜 { int x1,y1,t=1; x1=x; y1=y; for (int i=1;i<5 ;i++ ) { if (x1>15) { break; } if (intGame_Body[x1+i][y1-i]==。