先写到这样,还有要补充!
这下面就是qq斗地主大厅截图
首先说产生5行6列橙色正三角块的算法,先上代码:
int _x = 0;// 记录x坐标到底怎么加 int rowNum = 1;// 记录行数 int colNum = 6;// 记录列数 for (int i = 0; i < TOTAL; i++) { int x[] = { 30 + (i - _x) * 160, 80 + (i - _x) * 160, 130 + (i - _x) * 160 }; int y[] = { 111 + (rowNum - 1) * 150, 30 + (rowNum - 1) * 150, 111 + (rowNum - 1) * 150 }; Polygon polygon = new Polygon(x, y, 3); g.setColor(Color.orange); g.fillPolygon(polygon); if ((i + 1) % colNum == 0) { _x = rowNum * colNum; rowNum++; } }
然后产生563= 90空位的算法,其实跟上面的差不多,先上源码:
// 位置 seats = new JLabel[TOTAL * 3]; // seats = new JButton[TOTAL*3]; int _x = 0;// 记录x坐标到底怎么加 int rowNum = 1;// 记录行数 int colNum = 6;// 记录列数 for (int i = 0; i < TOTAL; i++) { int x[] = { 30 + (i - _x) * 160, 80 + (i - _x) * 160, 130 + (i - _x) * 160 }; int y[] = { 111 + (rowNum - 1) * 150, 30 + (rowNum - 1) * 150, 111 + (rowNum - 1) * 150 }; for (int j = 0; j < 3; j++) { seats[j + i * 3] = new JLabel("空位"); seats[j + i * 3].setBounds(x[j], y[j], 40, 20); childJpanel1.add(seats[j + i * 3]); } if ((i + 1) % colNum == 0) { _x = rowNum * colNum; rowNum++; } }
源码分析下次或者自己看,其实把握好各个临界点,就很好实现
java,qq斗地主,斗地主,模拟qq斗地主,java开发qq斗地主,java斗地主源码,java多线程,java并发编程,netty
等待人齐--->是否准备--->发牌---->抢地主---->出牌--->本次斗完 wait ready deal rob play over