Java实现斗地主游戏逻辑
"斗地主游戏代码实现了一个简单的斗地主游戏逻辑,包括计时、玩家选择地主、发牌及地主确定等步骤。" 斗地主是一种在中国非常流行的扑克游戏,通常由三位玩家参与,游戏的目标是通过出牌策略使自己或团队先将手中的牌全部打完。在提供的代码中,我们可以看到一个斗地主游戏的基本框架。 1. **游戏循环(Game Loop)** - 代码中的`run()`方法可能是游戏的主循环,`while`循环负责控制游戏进行,`i`作为计时器变量,`isRun`用于判断游戏是否仍在运行。 - `main.time[1].setText("ʱ:"+i--);`这部分代码更新计时器显示,每执行一次循环,计时器减一。 2. **计时功能(Timer)** - `second(1)`可能是一个延迟函数,模拟时间流逝,这里用作玩家选择地主的时间限制。 - 当`i`等于-1时,计时结束,清除计时器显示。 3. **选择地主(Choosing the Landlord)** - 如果计时器显示为空,表示玩家选择地主的环节已经结束。 - `main.playerList[1].addAll(main.lordList);`将地主列表中的牌添加到玩家1手中,意味着玩家1成为地主。 - 接下来的代码`openlord(true);second(2);`可能是开启地主显示并再次延迟,模拟地主展示牌的过程。 - `Common.order(main.playerList[1]);`和`Common.rePosition(main,main.playerList[1],1);`是对地主手牌进行排序和在界面上重新布局。 4. **地主确定与发牌(Determine the Landlord and Deal Cards)** - 如果计时器不为空,说明玩家没有选择地主,那么根据分数来决定地主。 - 比较玩家0和玩家2的分数,分数较低的一方会成为地主。 - 相应的代码会更新计时器、设置地主、发牌、排序以及界面布局。 5. **分数比较与逻辑处理(Score Comparison and Logic Handling)** - 分数较低的玩家(如玩家2)如果成为地主,会进行一系列操作,如清除计时器显示,显示地主身份,发牌等。 - 如果没有玩家满足成为地主的条件(分数最低),则自动分配给分数最高(如玩家0)。 6. **界面更新与交互(UI Updates and Interaction)** - 使用`setVisible(true)`和`setText("")`控制UI元素的可见性和文本内容,提供良好的用户体验。 - `Common`类中的一些方法,如`order()`和`rePosition()`,可能包含通用的游戏逻辑,如牌的排序和界面元素的位置调整。 以上就是代码中涉及的斗地主游戏的核心知识点,包括游戏循环、计时机制、玩家选择地主的逻辑、地主确定的规则以及与用户界面的交互。这段代码虽然简单,但涵盖了斗地主游戏的基本流程,可以作为进一步开发和扩展的基础。
02. while(i>-1 && isRun){
03. main.time[1].setText("倒计时:"+i--);
04. second(1);//等一秒
05. }
06. if(i==-1)//正常终结,说明超时
07. main.time[1].setText("不抢");
08. //如果自己抢到地主
09. if(main.time[1].getText().equals("抢地主")){
10. //得到地主牌
11. main.playerList[1].addAll(main.lordList);
12. openlord(true);
13. second(2);//等待五秒
14. Common.order(main.playerList[1]);
15. Common.rePosition(main, main.playerList[1], 1);
16. setlord(1);
17. }else{
18. //电脑选地主
19. if(Common.getScore(main.playerList[0])<Common.getScore(main.playerList[2]))
20. {
21. main.time[2].setText("抢地主");
22. main.time[2].setVisible(true);
23. setlord(2);
24. openlord(true);second(3);
25. main.playerList[2].addAll(main.lordList);
26. Common.order(main.playerList[2]);
27. Common.rePosition(main, main.playerList[2], 2);
28. openlord(false);
29.
30. }else {
32. main.time[0].setText("抢地主");
33. setlord(0);
34. openlord(true);second(3);
35. main.playerList[0].addAll(main.lordList);
36. Common.order(main.playerList[0]);
37. Common.rePosition(main, main.playerList[0], 0);
38. openlord(false);
39.
40. }
41. }
42. //选完地主后 关闭地主按钮
43. main.landlord[0].setVisible(false);
44. main.landlord[1].setVisible(false);
45. main.publishCard[0].setVisible(true);
46. main.publishCard[1].setVisible(true);
47.
48. //开始游戏 根据地主不同顺序不同
49. if(main.dizhuFlag==0)
50. computer0();
51. if(main.dizhuFlag==2)
52. {
53. computer2();
54. computer0();
55. }
56. while(true){
57.
58. turnOn(true);//出牌按钮 --我出牌
59. timeWait(30, 1);//我自己的定时器
60. if(main.nextPlayer){
剩余14页未读,继续阅读
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦