Java课程设计之你画我猜

  这几天要做数据结构的课程设计,写了几天终于完成,虽然有很多不足之处,但勉强完成了。过后感觉从大一到现在写过许多项

目,是该总结一下那些年的课程设计了。

  大一做的课程设计是“你画我猜”,那时候修修改改,前后用了一个月的时间,数据库方面是凡神做的,最后的成绩还不错。下面总

一下经验和相关的算法:

  1.“你画我猜”的关键是画板的实现和画面的传输。画板的实现算法思想是:Java提供了鼠标事件MouseListener和

MouseMotionListener,利用这两个监听器可以实现拖动鼠标画出曲线,首先定义一个点的类,即Point类,鼠标拖动一段可以看成无

的点,因为点动成线,而把这些点放到一个ArrayList中,写一个paint方法,把这些点都取出来,每两个点之间画线即可,这样很

多点画线后就出现了曲线。需要注意的是:每个点要有一个boolean型的变量,记录这个点是鼠标的抬起还是按下,如果没有这个变

量,那么就会出现你画的两笔之间是相连的,因此要用这个boolean变量判断一下,决定相邻的两个点之间是否画线。画板的橡皮、

粗细这些操作的实现比较简单,不再陈述。画面传输的问题比较棘手,刚开始的时候我想着是实时地传图,但最后失败了,最后选

择了传点去,也就是每画一笔时,再将点放到ArrayList中时都实时地传过去,这样就可以实现图画的实时变化。  具体的实现是:

    

    Point po1 = new Point(e.getPoint().x,e.getPoint().y,true,co,n,1);  //new一个点的对象
    list.add(po1);   //将点添加到ArrayList中
    PointNewMsg msg = new PointNewMsg(id,po1,clear,cancel);   //new一个点的信息对象
    tc.nc.send(msg);   //将这个点发过去
    repaint();  //重画面版

对于信息的发送和传输,建议看一下尚学堂马士兵的 尚学堂科技_马士兵_在线聊天系统雏形视频教程、尚学堂科技_马士兵_坦克大

战视频教程,都非常好,而且在写别的项目时会用到其中的很多东西。

2.数据库方面。因为“你画我猜”需要题目的存取,因此需要数据库,当然也可以把题目放在一个文件中,当这样显得系统性不强。数

据库方面的问题比较简单,需要注意URL的写法,如:

String url = "jdbc:mysql://localhost/accout?user=root&password=123&useUnicode=true&characterEncoding=gbk";

这里的user和password要写你的用户名和密码。

下面是截图:







这是第一次做一个完整的系统,虽说还有许多不足之处,但自己的能力自己有了一定认识,其实每个人都是一样的,只要想做就一

定能做出来。当然也体会到:罗马果然不是一日建成的。

你可能感兴趣的:(java,算法,你画我猜)