package cardGame;
import java.awt.Point;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import javax.swing.JOptionPane;
public class Time implements Runnable{
Game game;
int i=10;
boolean isRun=true;
public volatile boolean stopFlag=false;
public volatile boolean isGameOver=false;
public volatile boolean isOver=false;
public volatile boolean isPublish=false;
public Time(Game game,int i) {
this.game=game;
this.i=i;
}
@Override
public void run() {
cardRun();
while(stopFlag) {
//game.lordList.clear();
for(int i=0;i<game.lordList.size();i++) {
game.lordList.get(i).turnRear();
}
game.time[1].setVisible(false);
try {
Thread.sleep(400);
} catch (InterruptedException e) {
}
game.initCard();
game.showLord();
game.time[1].setVisible(true);
stopFlag=false;
this.i=10;
isRun=true;
cardRun();
}
while(isGameOver) {
isOver=false;
for(int i=0;i<game.lordList.size();i++) {
game.lordList.get(i).turnRear();
}
try {
Thread.sleep(400);
} catch (InterruptedException e) {
}
game.initCard();
game.showLord();
game.time[1].setVisible(true);
stopFlag=false;
this.i=10;
isGameOver=false;
isRun=true;
cardRun();
}
}
public void cardRun() {
while(!stopFlag && i>-1 && isRun) {
game.time[1].setText("倒计时:"+i--);
second(1);
}
if(i==-1) {
game.time[1].setText("不抢");
game.landlord[0].setVisible(false);
game.landlord[1].setVisible(false);
}
for(Card card : game.playerList[1]) {
card.canClick=true;
}
if(!stopFlag) {
if(Objects.equals(game.time[1].getText(), "抢地主")) {
game.playerList[1].addAll(game.lordList);
openLord(true, true);
second(2);
setLord(1);
Common.cardSort(game.playerList[1]);
Common.rePosition(game.playerList[1], 1, game);
}else {
if(Common.getScore(game.playerList[0])<Common.getScore(game.playerList[2])) {
game.time[2].setText("抢地主");
game.time[2].setVisible(true);
game.playerList[2].addAll(game.lordList);
openLord(true, false);
second(3);
setLord(2);
openLord(false, false);
Common.cardSort(game.playerList[2]);
Common.rePosition(game.playerList[2], 2, game);
}else {
game.time[0].setText("抢地主");
game.time[0].setVisible(true);
game.playerList[0].addAll(game.lordList);
openLord(true, false);
second(3);
setLord(0);
openLord(false, false);
Common.cardSort(game.playerList[0]);
Common.rePosition(game.playerList[0], 0, game);
}
}
}
game.landlord[0].setVisible(false);
game.landlord[1].setVisible(false);
turnOn(false);
if(!stopFlag) {
for (int i = 0; i < 3; i++) {
game.time[i].setText("不要");
game.time[i].setVisible(false);
}
}
game.turn=game.dizhuFlag;
while(!stopFlag) {
if(game.turn==1) {
turnOn(true);
timeWait(30, 1);
turnOn(false);
if("超时".equals(game.time[game.turn].getText())) {
game.time[game.turn].setText("不要");
}
if(game.turn==-1 || win()) {
stopFlag=false;
isOver=true;
while(!isGameOver) {
}
break;
}
game.turn=(game.turn+1)%3;
}
if(game.turn==0) {
computer0();
if(game.turn==-1 || win()) {
stopFlag=false;
isOver=true;
while(!isGameOver) {
}
break;
}
game.turn=(game.turn+1)%3;
}
if(game.turn==2) {
computer2();
if(game.turn==-1 || win()) {
stopFlag=false;
isOver=true;
while(!isGameOver) {
}
break;
}
game.turn=(game.turn+1)%3;
}
}
}
public void computer0() {
timeWait(1, 0);
showCard(0);
}
public void computer2() {
timeWait(1, 2);
showCard(2);
}
public void second(int i) {
try {
Thread.sleep(i*1000);
}catch (InterruptedException e) {
return;
}
}
public void openLord(boolean is,boolean canClick) {
if(!stopFlag) {
for(int i=0;i<3;i++) {
if(is) {
game.lordList.get(i).turnFront();
if(canClick) {
game.lordList.get(i).canClick=true;
}
}else {
game.lordList.get(i).turnRear();
}
}
}
}
public void setLord(int flag) {
if(!stopFlag) {
Point point=new Point();
if(flag==1) {
point.x=80;
point.y=430;
game.dizhuFlag=1;
}
if(flag==0) {
point.x=80;
point.y=20;
game.dizhuFlag=0;
}
if(flag==2) {
point.x=700;
point.y=20;
game.dizhuFlag=2;
}
game.dizhu.setLocation(point);
game.dizhu.setVisible(true);
}
}
public void turnOn(boolean flag) {
game.publishCard[0].setVisible(flag);
game.publishCard[1].setVisible(flag);
}
public void showCard(int role) {
if(!stopFlag) {
Model model=Common.getModel(game.playerList[role]);
List<String> list=new ArrayList<String>();
if("不要".equals(game.time[(role+1)%3].getText()) && "不要".equals(game.time[(role+2)%3].getText())) {
if(model.a1.size()>(model.a111222.size()+model.a3.size())) {
list.add(model.a1.get(model.a1.size()-1));
}else if(model.a2.size()>(model.a111222.size()+model.a3.size())) {
list.add(model.a2.get(model.a2.size()-1));
}else if(model.a123.size()>0) {
list.add(model.a123.get(model.a123.size()-1));
}else if(model.a3.size()>0) {
if(model.a1.size()>0) {
list.add(model.a1.get(model.a1.size()-1));
}else if(model.a2.size()>0) {
list.add(model.a2.get(model.a2.size()-1));
}
list.add(model.a3.get(model.a3.size()-1));
}else if(model.a112233.size()>0) {
list.add(model.a112233.get(model.a112233.size()-1));
}else if(model.a111222.size()>0) {
String[] name=model.a111222.get(0).split(",");
list.add(model.a111222.get(model.a111222.size()-1));
if(model.a1.size()>=name.length/3) {
for(int i=model.a1.size()-1;i>=model.a1.size()-name.length/3;i--) {
list.add(model.a1.get(i));
}
}else if(model.a2.size()>=name.length/3) {
for(int i=model.a2.size()-1;i>=model.a2.size()-name.length/3;i--) {
list.add(model.a2.get(i));
}
}
}else if(model.a4.size()>0) {
int size1=model.a1.size();
int size2=model.a2.size();
list.add(model.a4.get(model.a4.size()-1));
String[] name=model.a4.get(model.a4.size()-1).split(",");
if(name.length!=2) {
if(size1>=2) {
list.add(model.a1.get(size1 - 1));
list.add(model.a1.get(size1 - 2));
}else if(size2>=2) {
list.add(model.a2.get(size2 - 1));
list.add(model.a2.get(size2 - 2));
}
}
}
}else {
List<Card> player=game.currentList[(role+2)%3].size()>0 ? game.currentList[(role+2)%3] : game.currentList[(role+1)%3];
CardType cType=Common.judgeType(player);
if(cType==CardType.c1) {
ai_1(model.a1, player, list);
}else if(cType==CardType.c2) {
ai_1(model.a2, player, list);
}else if(cType==CardType.c3) {
ai_1(model.a3, player, list);
}else if(cType==CardType.c4) {
ai_1(model.a4, player, list);
}else if(cType==CardType.c31) {
ai_2(model.a3, model.a1, player, list);
}else if(cType==CardType.c32) {
ai_2(model.a3, model.a2, player, list);
}else if(cType==CardType.c411) {
ai_3(model.a4, model.a1, player, list);
}else if(cType==CardType.c422) {
ai_3(model.a4, model.a2, player, list);
}else if(cType==CardType.c123) {
ai_4(model.a123, player, list);
}else if(cType==CardType.c1122) {
ai_4(model.a112233, player, list);
}else if(cType==CardType.c111222) {
ai_4(model.a111222, player, list);
}else if(cType==CardType.c11122234) {
ai_5(model.a111222, model.a1, player, list);
}else if(cType==CardType.c1112223344) {
没有合适的资源?快使用搜索试试~ 我知道了~
Java版的斗地主游戏完整项目源码
共134个文件
gif:112个
class:8个
java:6个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 62 下载量 33 浏览量
2021-08-22
15:37:38
上传
评论 14
收藏 306KB ZIP 举报
温馨提示
Java版的斗地主游戏,人机对战,感兴趣可以一试。
资源推荐
资源详情
资源评论
收起资源包目录
Java版的斗地主游戏完整项目源码 (134个子文件)
Time.class 13KB
Common.class 12KB
Game.class 10KB
Card.class 2KB
CardType.class 2KB
Common$1.class 1KB
Model.class 696B
Game$1.class 684B
.classpath 301B
5-1.gif 5KB
5-2.gif 5KB
5-1.gif 5KB
5-2.gif 5KB
rear.gif 4KB
rear.gif 4KB
dizhu.gif 3KB
dizhu.gif 3KB
2-12.gif 1KB
2-12.gif 1KB
4-12.gif 1KB
4-12.gif 1KB
3-12.gif 1KB
3-12.gif 1KB
2-13.gif 1KB
2-13.gif 1KB
2-11.gif 1KB
2-11.gif 1KB
4-11.gif 1KB
1-12.gif 1KB
1-12.gif 1KB
4-11.gif 1KB
3-11.gif 1KB
3-11.gif 1KB
4-13.gif 1KB
4-13.gif 1KB
3-13.gif 1KB
3-13.gif 1KB
1-11.gif 1KB
1-11.gif 1KB
1-13.gif 1KB
1-13.gif 1KB
2-10.gif 661B
2-10.gif 661B
3-10.gif 623B
2-9.gif 623B
2-9.gif 623B
3-10.gif 623B
4-10.gif 621B
4-10.gif 621B
1-10.gif 618B
1-10.gif 618B
2-8.gif 606B
2-8.gif 606B
3-9.gif 587B
3-9.gif 587B
4-9.gif 582B
4-9.gif 582B
1-9.gif 581B
1-9.gif 581B
3-8.gif 572B
3-8.gif 572B
2-7.gif 570B
2-7.gif 570B
4-8.gif 565B
4-8.gif 565B
1-8.gif 562B
1-8.gif 562B
2-6.gif 544B
2-6.gif 544B
3-7.gif 536B
3-7.gif 536B
4-7.gif 527B
4-7.gif 527B
1-7.gif 526B
1-7.gif 526B
3-6.gif 522B
1-1.gif 522B
3-6.gif 522B
1-1.gif 522B
2-5.gif 518B
2-5.gif 518B
4-6.gif 513B
4-6.gif 513B
1-6.gif 508B
1-6.gif 508B
4-5.gif 498B
4-5.gif 498B
2-4.gif 492B
2-4.gif 492B
3-5.gif 490B
3-5.gif 490B
1-5.gif 478B
1-5.gif 478B
1-2.gif 474B
1-2.gif 474B
4-4.gif 469B
4-4.gif 469B
3-4.gif 468B
3-4.gif 468B
1-4.gif 463B
共 134 条
- 1
- 2
夜空下的星
- 粉丝: 122
- 资源: 5
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 微信自动抢红包APP.zip
- 微信抢红包神器-红包鸟(可以抢多种情况下的红包,支持手机息屏抢红包、屏蔽群抢红包).zip
- 微信抢红包,支持xposed与免root,xposed支持最新版,免root需自己实现.zip
- 一维卷积神经网络英语电影评论情感分类项目功能实现-Embedding层
- 微信 自动抢红包 插件外挂(Android),实现了监控通知栏,自动点击红包等功能,帮助大家快速抢到红包.zip
- 满满的干货:分享二十个Python学习资源材料.zip
- USD ISO14229-1-2013 中文版
- STM32单片机FPGA毕设电路原理论文报告模糊控制器在无线监控机群系统中的应用
- OpenWrt-Toolchain-ipq
- STM32单片机FPGA毕设电路原理论文报告模糊控制逆变弧焊电源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
- 4
- 5
- 6
前往页