网络斗地主课程设计
网上斗地主策划书3篇

网上斗地主策划书3篇篇一网上斗地主策划书一、游戏概述1. 游戏名称:网上斗地主2. 游戏类型:休闲益智类3. 游戏平台:PC 端、移动端4. 游戏简介:斗地主是一种流行的扑克牌游戏,玩家通过出牌、抢地主等方式竞争,先出完牌的玩家获胜。
二、游戏目标1. 提供一个有趣、刺激的斗地主游戏体验。
2. 吸引玩家参与,增加用户粘性。
3. 实现盈利,通过游戏内购、广告等方式获得收入。
三、游戏规则1. 牌型:单牌、对子、三张、顺子、连对、三带一、三带二、飞机、炸弹、四带二。
2. 叫地主:玩家可以选择叫地主或不叫,叫地主的玩家成为地主,拥有额外的三张底牌。
3. 出牌:地主先出牌,然后按照逆时针顺序依次出牌,玩家可以选择不出牌或出牌,出牌必须大于上家的牌型。
4. 胜利条件:先出完牌的玩家获胜。
四、游戏特色1. 多种玩法:提供经典玩法、癞子玩法、比赛玩法等多种模式,满足不同玩家的需求。
3. 精美画面:游戏采用精美的画面设计,营造出舒适的游戏环境。
4. 智能匹配:根据玩家的等级、胜率等因素进行智能匹配,保证游戏的公平性和挑战性。
5. 丰富奖励:通过完成任务、参加比赛等方式获得金币、道具等奖励,激励玩家参与游戏。
五、游戏流程1. 登录注册:玩家可以通过手机号、等方式进行登录注册。
2. 新手引导:为新玩家提供详细的新手引导,帮助玩家快速掌握游戏规则和操作方法。
3. 游戏大厅:玩家可以在游戏大厅选择不同的游戏模式和房间,进入游戏。
4. 游戏过程:玩家按照游戏规则进行出牌、抢地主等操作,直到游戏结束。
5. 结算奖励:根据游戏结果进行结算,玩家获得相应的金币、经验等奖励。
六、盈利模式1. 游戏内购:玩家可以通过充值购买金币、道具等虚拟物品,提升游戏体验。
2. 广告收入:在游戏中展示广告,获得广告收入。
3. 赛事赞助:举办斗地主比赛,吸引赞助商进行赞助。
七、市场推广1. 社交媒体推广:利用、微博、抖音等社交媒体平台进行推广,吸引玩家关注。
斗地主--Java课程设计

《面向对象程序设计》课程设计报告题目:斗地主软件设计及实现院(系):信息科学及工程学院专业班级:计算机科学及技术1201班学生姓名:程伟学号:20121183011指导教师:吴奕20 14 年12 月29 日至20 15 年 1 月9 日华中科技大学武昌分校制面向对象程序设计课程设计任务书目录1需求及总体设计01.1需求分析01.2总体设计01.3功能图01.4类图12详细设计22.1主类Main22.2类Card22.3类CardType3 2.4类Common4 2.5类Model52.6类Time53编码实现63.1 JAVA编码实现6 4系统测试584.1测试结果584.2排错处理61总结611需求及总体设计1.1需求分析游戏设计需要用到牌Card的正反面及牌的移动,还有CardType设计出牌种类,还有各种牌的形式,还要设计几个人玩游戏,抢地主的方法,出牌倒计时,出牌和不出牌等等,另外还要设计54张牌,打牌出现的各种结果。
1.2总体设计本游戏实现了图形界面的设计、游戏区模块,游戏控制模块,级别设置模块和帮助模块。
为玩家提供主体游戏功能,能够处理玩家的各种游戏操作,并最终显示游戏结果。
1.3功能图1.4类图2详细设计2.1主类Main图表说明如下:2.2类Card(1)类图(2)说明:该类主要是设计牌面的正反、牌之间的距离、移动(即出牌时向前移动纸牌),其中有:boolean up;//是否正反面;boolean canClick=false;//是否可被点击boolean clicked=false;//是否点击过;String name;//图片url名字Main main;//Main类的引用2.3类CardTypepublic enum CardType 列出各种出牌的类型2.4类Common1)判断牌型public static CardType jugdeType()2)移动效果的函数,用于发牌public static void move()3)对牌的排序public static void order()4)重新定位flag代表电脑1 ,2 或者是我public static void rePosition()5)地主牌权值,看是否抢地主public static int getScore()6)返回花色public static int getColor()7)得到最大相同数public static void getMax()8)拆牌public static Model getModel()各种对子、顺子、飞机、炸弹9)拆连子public static void get123()10)拆双顺public static void getTwoTwo()11)拆飞机public static void getPlane()12)拆炸弹public static void getBoomb()13)拆3带public static void getThree()14)拆对子public static void getTwo()15)拆单牌public static void getSingle()16)隐藏之前出过的牌public static void hideCards()17)检查牌的是否能出public static int checkCards()2.5类Model各种牌型public class ModelList<String> a1=new ArrayList<String>(); //单张List<String> a2=new ArrayList<String>(); //对子List<String> a3=new ArrayList<String>(); //3带List<String> a123=new ArrayList<String>(); //连子List<String> a112233=new ArrayList<String>(); //连牌List<String> a111222=new ArrayList<String>(); //飞机List<String> a4=new ArrayList<String>(); //炸弹2.6类Time// 等待i秒public void second(int i)//时间如何走public void run()if (i == -1)// 正常终结,说明超时// 开始游戏根据地主不同顺序不同main.turn=main.dizhuFlag;// 出牌按钮--我出牌turnOn(true);// 我自己的定时器timeWait(30, 1);//选完关闭turnOn(false);3编码实现3.1JAVA编码实现(1)Main.java主要代码public class Main extends JFrame implements ActionListener {public Container container = null; // 定义容器JMenuItem start, exit, about; // 定义菜单按钮JButton landlord[]=new JButton[2]; //抢地主按钮JButton publishCard[]=new JButton[2]; //出牌按钮int dizhuFlag; //地主标志int turn;JLabel dizhu; //地主图标List<Card> currentList[] =new ArrayList[3]; // 当前的出牌List<Card> playerList[] = new ArrayList[3]; // 定义3个玩家表List<Card> lordList;//地主牌Card card[] = new Card[56]; // 定义54张牌JTextField time[]=new JTextField[3]; //计时器Time t; //定时器(线程)boolean nextPlayer=false; //转换角色public Main(){Init();// 初始化SetMenu();// 创建菜单按钮(抢地主,发牌,计时器)this.setVisible(true);CardInit();//发牌getLord(); //发完牌开始抢地主time[1].setVisible(true);//线程安全性,把非主线程的UI控制放到里面SwingUtilities.invokeLater(new NewTimer(this,10));}public void getLord()// 抢地主{//System.out.println(CardType.c0.toString());for(int i=0;i<2;i++) //当没有人抢地主时或者一个人和当前的人抢地主时landlord[i].setVisible(true);}//初始化牌// 发牌洗牌public void CardInit()//初始化牌{int count = 1;for (int i = 1; i <= 5; i++){for (int j = 1; j <= 13; j++){if ((i == 5) && (j > 2))break;else {card[count] = new Card(this, i + "-" + j, false);card[count].setLocation(350, 50);container.add(card[count]);count++;}}}//打乱顺序for(int i=0;i<100;i++){Random random=new Random();int a=random.nextInt(54)+1;int b=random.nextInt(54)+1;Card k=card[a]; //赋值语句,打乱牌序card[a]=card[b];card[b]=k;}//开始发牌for(int i=0;i<3;i++) //三张底牌playerList[i]=new ArrayList<Card>(); //玩家牌lordList=new ArrayList<Card>();//地主牌三张int t=0;for(int i=1;i<=54;i++) //进行发牌{if(i>=52)//地主牌{Common.move(card[i], card[i].getLocation(),new Point(300+(i-52)*80,10));lordList.add(card[i]);continue;}switch ((t++)%3) {case 0://显示各边的玩家,这是左边玩家Common.move(card[i], card[i].getLocation(),new Point(50,60+i*5));playerList[0].add(card[i]);break;case 1://玩家:我Common.move(card[i], card[i].getLocation(),new Point(180+i*7,450));playerList[1].add(card[i]);card[i].turnFront(); //显示正面break;case 2://右边玩家Common.move(card[i], card[i].getLocation(),new Point(700,60+i*5));playerList[2].add(card[i]);break;}//card[i].turnFront(); //显示正面container.setComponentZOrder(card[i], 0);}//发完牌排序,从大到小for(int i=0;i<3;i++){Common.order(playerList[i]);Common.rePosition(this,playerList[i],i);//重新定位}dizhu=new JLabel(new ImageIcon("images/dizhu.gif"));//地主最后要加入底牌dizhu.setVisible(false);dizhu.setSize(40, 40);container.add(dizhu);}// 初始化窗体public void Init(){this.setTitle("斗地主游戏---by程宵");this.setSize(830, 620);setResizable(false);setLocationRelativeTo(getOwner()); // 屏幕居中container = this.getContentPane();container.setLayout(null);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);container.setBackground(new Color(0, 112, 26)); // 背景为绿色}// 创建菜单功能按钮public void SetMenu(){JMenuBar jMenuBar = new JMenuBar();JMenu game = new JMenu("游戏");JMenu help = new JMenu("帮助");start = new JMenuItem("新游戏");exit = new JMenuItem("退出");about = new JMenuItem("关于");start.addActionListener(this);exit.addActionListener(this);about.addActionListener(this);game.add(start);game.add(exit);help.add(about);jMenuBar.add(game);jMenuBar.add(help);this.setJMenuBar(jMenuBar);landlord[0]=new JButton("抢地主");landlord[1]=new JButton("不抢");publishCard[0]= new JButton("出牌");publishCard[1]= new JButton("不要");for(int i=0;i<2;i++){publishCard[i].setBounds(320+i*100, 400, 60, 20);landlord[i].setBounds(320+i*100, 400,75,20);container.add(landlord[i]);landlord[i].addActionListener(this);landlord[i].setVisible(false);container.add(publishCard[i]);publishCard[i].setVisible(false);publishCard[i].addActionListener(this);}for(int i=0;i<3;i++){time[i]=new JTextField("倒计时:");time[i].setVisible(false);container.add(time[i]);}time[0].setBounds(140, 230, 60, 20);time[1].setBounds(374, 360, 60, 20);time[2].setBounds(620, 230, 60, 20);for(int i=0;i<3;i++){currentList[i]=new ArrayList<Card>();}}@Overridepublic void actionPerformed(ActionEvent e) {// TODO Auto-generated method stubif (e.getSource() == exit) {this.dispose();}if (e.getSource() == about) {JOptionPane.showMessageDialog(this, "20121183026,程宵");}if (e.getSource() == start) {// this.restart();}if(e.getSource()==landlord[0]){time[1].setText("抢地主");t.isRun=false; //时钟终结}if(e.getSource()==landlord[1]){time[1].setText("不抢");t.isRun=false; //时钟终结}//如果是不要if(e.getSource()==publishCard[1]){this.nextPlayer=true;currentList[1].clear();time[1].setText("不要");}//如果是出牌按钮if(e.getSource()==publishCard[0]){List<Card> c=new ArrayList<Card>();//点选出牌for(int i=0;i<playerList[1].size();i++){Card card=playerList[1].get(i);if(card.clicked){c.add(card);}}int flag=0;//如果我主动出牌if(time[0].getText().equals("不要")&&time[2].getText().equals("不要")){if(Common.jugdeType(c)!=CardType.c0)flag=1;//表示可以出牌}//如果我跟牌else{flag=Common.checkCards(c,currentList);}//判断是否符合出牌if(flag==1){currentList[1]=c;playerList[1].removeAll(currentList[1]);//移除走的牌//定位出牌Point point=new Point();point.x=(770/2)-(currentList[1].size()+1)*15/2;;point.y=300;for(int i=0,len=currentList[1].size();i<len;i++){Card card=currentList[1].get(i);Common.move(card, card.getLocation(), point);point.x+=15;}//抽完牌后重新整理牌Common.rePosition(this, playerList[1], 1);time[1].setVisible(false);this.nextPlayer=true;}}}public static void main(String args[]){new Main();}}class NewTimer implements Runnable{Main main;int i;public NewTimer(Main m,int i){this.main=m;this.i=i;}@Overridepublic void run(){// TODO Auto-generated method stubmain.t=new Time(main,10);//从10开始倒计时main.t.start();}}(2)Card.java主要代码如下:public class Card extends JLabel implements MouseListener {Main main;//Main类的引用String name;//图片url名字boolean up;//是否正反面boolean canClick=false;//是否可被点击boolean clicked=false;//是否点击过public Card(Main m,String name,boolean up){this.main=m;=name;this.up=up;if(this.up)this.turnFront();else {this.turnRear();}this.setSize(71, 96);this.setVisible(true);this.addMouseListener(this);}//正面public void turnFront(){this.setIcon(new ImageIcon("images/" + name + ".gif"));this.up = true;}public void turnFront(){反面代码类似正面,这里就不附带了}@Overridepublic void mouseClicked(MouseEvent e){// TODO Auto-generated method stubif(canClick){Point from=this.getLocation();int step; //移动的距离if(clicked)step=-20;else {step=20;}clicked=!clicked; //反向//当被选中的时候,向前移动一步/后退一步Common.move(this,from,new Point(from.x,from.y-step));}}public void mouseEntered(MouseEvent arg0) {}public void mouseExited(MouseEvent arg0) {}public void mousePressed(MouseEvent arg0) {}public void mouseReleased(MouseEvent arg0) {}}(3)Common.java主要代码如下public class Common {//判断牌型public static CardType jugdeType(List<Card> list){//因为之前排序过所以比较好判断int len=list.size();//单牌,对子,3不带,4个一样炸弹if(len<=4){ //如果第一个和最后个相同,说明全部相同if(list.size()>0&&Common.getValue(list.get(0))==Common.getValu e(list.get(len-1))){switch (len) {case 1:return CardType.c1;case 2:return CardType.c2;case 3:return CardType.c3;case 4:return CardType.c4;}}//双王,化为对子返回if(len==2&&Common.getColor(list.get(1))==5)return CardType.c2;//当第一个和最后个不同时,3带1if(len==4&&((Common.getValue(list.get(0))==Common.getValue(list.get(len-2)) )||Common.getValue(list.get(1))==Common.getValue(list.get(len-1)))) return CardType.c31;else {return CardType.c0;}}//当5张以上时,连字,3带2,飞机,2顺,4带2等等if(len>=5){//现在按相同数字最大出现次数Card_index card_index=new Card_index();for(int i=0;i<4;i++)card_index.a[i]=new ArrayList<Integer>();//求出各种数字出现频率Common.getMax( card_index,list); //a[0,1,2,3]分别表示重复1,2,3,4次的牌//3带2 -----必含重复3次的牌if(card_index.a[2].size()==1 &&card_index.a[1].size()==1 && len==5)return CardType.c32;//4带2(单,双)if(card_index.a[3].size()==1 && len==6)return CardType.c411;if(card_index.a[3].size()==1 && card_index.a[1].size()==2 &&len==8)return CardType.c422;//单连,保证不存在王if((Common.getColor(list.get(0))!=5)&&(card_index.a[0].size()==len) &&(Common.getValue(list.get(0))-Common.getValue(list.get(len-1))= =len-1))return CardType.c123;//连队if(card_index.a[1].size()==len/2 && len%2==0 && len/2>=3&&(Common.getValue(list.get(0))-Common.getValue(list.get(len-1 ))==(len/2-1)))return CardType.c1122;//飞机if(card_index.a[2].size()==len/3 && (len%3==0) &&(Common.getValue(list.get(0))-Common.getValue(list.get(len-1))= =(len/3-1)))return CardType.c111222;//飞机带n单,n/2对if(card_index.a[2].size()==len/4 &&((Integer)(card_index.a[2].get(len/4-1))-(Integer)(card_index.a[2].g et(0))==len/4-1))return CardType.c11122234;//飞机带n双if(card_index.a[2].size()==len/5 && card_index.a[2].size()==len/5 &&((Integer)(card_index.a[2].get(len/5-1))-(Integer)(card_index.a[2].g et(0))==len/5-1))return CardType.c1112223344;}return CardType.c0;}//移动效果的函数,用于发牌public static void move(Card card,Point from,Point to){if(to.x!=from.x){double k=(1.0)*(to.y-from.y)/(to.x-from.x);double b=to.y-to.x*k;int flag=0;//判断向左还是向右移动步幅if(from.x<to.x)flag=20;else {flag=-20;}for(int i=from.x;Math.abs(i-to.x)>20;i+=flag){double y=k*i+b;//这里主要用的数学中的线性函数card.setLocation(i,(int)y);try {Thread.sleep(5); //延迟,可自己设置} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}//位置校准card.setLocation(to);}//对list排序public static void order(List<Card> list){Collections.sort(list,new Comparator<Card>() {@Overridepublic int compare(Card o1, Card o2) {// TODO Auto-generated method stubint a1=Integer.parseInt(.substring(0, 1));//花色int a2=Integer.parseInt(.substring(0,1));intb1=Integer.parseInt(.substring(2,.length()));//数值intb2=Integer.parseInt(.substring(2,.length()));int flag=0;//如果是王的话if(a1==5) b1+=100;if(a1==5&&b1==1) b1+=50;if(a2==5) b2+=100;if(a2==5&&b2==1) b2+=50;//如果是A或者2if(b1==1) b1+=20;if(b2==1) b2+=20;if(b1==2) b1+=30;if(b2==2) b2+=30;flag=b2-b1;if(flag==0)return a2-a1;else {return flag;}}});}//重新定位flag代表电脑1 ,2 或者是我public static void rePosition(Main m,List<Card> list,int flag){ Point p=new Point();if(flag==0){p.x=50;p.y=(450/2)-(list.size()+1)*15/2;}if(flag==1){//我的排序_y=450 width=830p.x=(800/2)-(list.size()+1)*21/2;p.y=450;}if(flag==2){p.x=700;p.y=(450/2)-(list.size()+1)*15/2;}int len=list.size();for(int i=0;i<len;i++){Card card=list.get(i);Common.move(card, card.getLocation(), p);m.container.setComponentZOrder(card, 0);if(flag==1)p.x+=21;else p.y+=15;}}//地主牌权值,看是否抢地主public static int getScore(List<Card> list){int count=0;for(int i=0,len=list.size();i<len;i++){Card card=list.get(i);if(.substring(0, 1).equals("5")){//System.out.println(.substring(0, 1));count+=5;}if(.substring(2, .length()).equals("2")) {//System.out.println(2);count+=2;}}return count;}//返回花色public static int getColor(Card card){return Integer.parseInt(.substring(0,1));}//返回值public static int getValue(Card card){int i= Integer.parseInt(.substring(2,.length()));if(.substring(2,.length()).equals("2")) i+=13;if(.substring(2,.length()).equals("1")) i+=13;if(Common.getColor(card)==5)i+=2;//是王return i;}//得到最大相同数public static void getMax(Card_index card_index,List<Card> list){ int count[]=new int[14];//1-13各算一种,王算第14种for(int i=0;i<14;i++)count[i]=0;for(int i=0,len=list.size();i<len;i++){if(Common.getColor(list.get(i))==5)count[13]++;elsecount[Common.getValue(list.get(i))-1]++;}for(int i=0;i<14;i++){switch (count[i]) {case 1:card_index.a[0].add(i+1);break;case 2:card_index.a[1].add(i+1);break;case 3:card_index.a[2].add(i+1);break;case 4:card_index.a[3].add(i+1);break;}}}//拆牌public static Model getModel(List<Card> list){ //先复制一个listList list2=new ArrayList<Card>(list);Model model=new Model();//------先拆炸弹Common.getBoomb(list2, model); //ok//------拆3带Common.getThree(list2, model);//拆飞机Common.getPlane(list2, model);//------拆对子Common.getTwo(list2, model);//拆连队Common.getTwoTwo(list2, model);//拆顺子Common.get123(list2, model);//拆单Common.getSingle(list2, model);return model;}//拆连子public static void get123(List<Card> list,Model model){ List<Card> del=new ArrayList<Card>();//要删除的Cardsif(list.size()>0&&(Common.getValue(list.get(0))<7||Common.getValue(list.get(list.size()-1))>10))return;if(list.size()<5)return;for(int i=0,len=list.size();i<len;i++){int k=i;for(int j=i;j<len;j++){if(Common.getValue(list.get(i))-Common.getValue(list.get(j))==j-i) {k=j;}}if(k-i>=4){String s="";for(int j=i;j<k;j++){s+=list.get(j).name+",";del.add(list.get(j));}s+=list.get(k).name;del.add(list.get(k));model.a123.add(s);i=k;}}list.removeAll(del);}//拆双顺public static void getTwoTwo(List<Card> list,Model model){ List<String> del=new ArrayList<String>();//要删除的Cards //从model里面的对子找List<String> l=model.a2;if(l.size()<3)return ;Integer s[]=new Integer[l.size()];for(int i=0,len=l.size();i<len;i++){String []name=l.get(i).split(",");s[i]=Integer.parseInt(name[0].substring(2,name[0].length()));}//s0,1,2,3,4 13,9,8,7,6for(int i=0,len=l.size();i<len;i++){int k=i;for(int j=i;j<len;j++){if(s[i]-s[j]==j-i)k=j;}if(k-i>=2)//k=4 i=1{//说明从i到k是连队String ss="";for(int j=i;j<k;j++){ss+=l.get(j)+",";del.add(l.get(j));}ss+=l.get(k);model.a112233.add(ss);del.add(l.get(k));i=k;}}l.removeAll(del);}//拆飞机public static void getPlane(List<Card> list,Model model){List<String> del=new ArrayList<String>();//要删除的Cards //从model里面的3带找List<String> l=model.a3;if(l.size()<2)return ;Integer s[]=new Integer[l.size()];for(int i=0,len=l.size();i<len;i++){String []name=l.get(i).split(",");s[i]=Integer.parseInt(name[0].substring(2,name[0].length()));}for(int i=0,len=l.size();i<len;i++){int k=i;for(int j=i;j<len;j++){if(s[i]-s[j]==j-i)k=j;}if(k!=i){//说明从i到k是飞机String ss="";for(int j=i;j<k;j++){ss+=l.get(j)+",";del.add(l.get(j));}ss+=l.get(k);model.a111222.add(ss);del.add(l.get(k));i=k;}}l.removeAll(del);}//拆炸弹public static void getBoomb(List<Card> list,Model model){ List<Card> del=new ArrayList<Card>();//要删除的Cards//王炸if(list.size()>=2 &&Common.getColor(list.get(0))==5 && Common.getColor(list.get(1))==5){model.a4.add(list.get(0).name+","+list.get(1).name); //按名字加入del.add(list.get(0));del.add(list.get(1));}//如果王不构成炸弹咋先拆单if(Common.getColor(list.get(0))==5&&Common.getColor(list.get(1) )!=5){del.add(list.get(0));model.a1.add(list.get(0).name);}list.removeAll(del);//一般的炸弹for(int i=0,len=list.size();i<len;i++){if(i+3<len && Common.getValue(list.get(i))==Common.getValue(list.get(i+3))) {String s=list.get(i).name+",";s+=list.get(i+1).name+",";s+=list.get(i+2).name+",";s+=list.get(i+3).name;model.a4.add(s);for(int j=i;j<=i+3;j++)del.add(list.get(j));i=i+3;}}list.removeAll(del);}//拆3带public static void getThree(List<Card> list,Model model){ List<Card> del=new ArrayList<Card>();//要删除的Cards//连续3张相同for(int i=0,len=list.size();i<len;i++){if(i+2<len&&Common.getValue(list.get(i))==Common.getValue(list .get(i+2))){String s=list.get(i).name+",";s+=list.get(i+1).name+",";s+=list.get(i+2).name;model.a3.add(s);for(int j=i;j<=i+2;j++)del.add(list.get(j));i=i+2;}}list.removeAll(del);}//拆对子public static void getTwo(List<Card> list,Model model){ List<Card> del=new ArrayList<Card>();//要删除的Cards//连续2张相同for(int i=0,len=list.size();i<len;i++){if(i+1<len&&Common.getValue(list.get(i))==Common.getValue(list .get(i+1))){String s=list.get(i).name+",";s+=list.get(i+1).name;model.a2.add(s);for(int j=i;j<=i+1;j++)del.add(list.get(j));i=i+1;}}list.removeAll(del);}//拆单牌public static void getSingle(List<Card> list,Model model){ List<Card> del=new ArrayList<Card>();//要删除的Cards//1for(int i=0,len=list.size();i<len;i++){model.a1.add(list.get(i).name);del.add(list.get(i));}list.removeAll(del);}//隐藏之前出过的牌public static void hideCards(List<Card> list){for(int i=0,len=list.size();i<len;i++){list.get(i).setVisible(false);}}//检查牌的是否能出public static int checkCards(List<Card> c,List<Card>[] current){ //找出当前最大的牌是哪个电脑出的,c是点选的牌List<Card>currentlist=(current[0].size()>0)?current[0]:current[2];CardType cType=Common.jugdeType(c);//如果张数不同直接过滤if(cType!=CardType.c4&&c.size()!=currentlist.size())return 0;//比较我的出牌类型if(Common.jugdeType(c)!=Common.jugdeType(currentlist)){return 0;}//比较出的牌是否要大//王炸弹if(cType==CardType.c4){if(c.size()==2)return 1;if(currentlist.size()==2)return 0;}//单牌,对子,3带,4炸弹if(cType==CardType.c1||cType==CardType.c2||cType==CardTy pe.c3||cType==CardType.c4){if(Common.getValue(c.get(0))<=Common.getValue(currentlist.get( 0))){return 0;}else {return 1;}}//顺子,连队,飞机裸if(cType==CardType.c123||cType==CardType.c1122||cType==C ardType.c111222){if(Common.getValue(c.get(0))<=Common.getValue(currentlist.get( 0)))return 0;elsereturn 1;}//按重复多少排序//3带1,3带2 ,飞机带单,双,4带1,2,只需比较第一个就行,独一无二的if(cType==CardType.c31||cType==CardType.c32||cType==Card Type.c411||cType==CardType.c422||cType==CardType.c11122234||cType==CardType.c11122233 44){List<Card> a1=Common.getOrder2(c); //我出的牌List<Card> a2=Common.getOrder2(currentlist);//当前最大牌if(Common.getValue(a1.get(0))<Common.getValue(a2.get(0))) return 0;}return 1;}//按照重复次数排序public static List getOrder2(List<Card> list){List<Card> list2=new ArrayList<Card>(list);List<Card> list3=new ArrayList<Card>();List<Integer> list4=new ArrayList<Integer>();int len=list2.size();int a[]=new int[20];for(int i=0;i<20;i++)a[i]=0;for(int i=0;i<len;i++){a[Common.getValue(list2.get(i))]++;}int max=0;for(int i=0;i<20;i++){max=0;for(int j=19;j>=0;j--){if(a[j]>a[max])max=j;}for(int k=0;k<len;k++){if(Common.getValue(list2.get(k))==max){list3.add(list2.get(k));}}list2.remove(list3);a[max]=0;}return list3;}}class Card_index{List a[]=new ArrayList[4];//单张}(4)Time.java主要代码public class Time extends Thread {Main main;boolean isRun = true;int i = 10;public Time(Main m, int i) {this.main = m;this.i = i;}@Overridepublic void run() {while (i > -1 && isRun) {main.time[1].setText("倒计时:" + i--);second(1);// 等一秒}if (i == -1)// 正常终结,说明超时main.time[1].setText("不抢");ndlord[0].setVisible(false);ndlord[1].setVisible(false);for (Card card2 : main.playerList[1])card2.canClick = true;// 可被点击// 如果自己抢到地主if (main.time[1].getText().equals("抢地主")) {// 得到地主牌main.playerList[1].addAll(main.lordList);openlord(true);second(2);// 等待五秒Common.order(main.playerList[1]);Common.rePosition(main, main.playerList[1], 1);setlord(1);} else {// 电脑选地主if (Common.getScore(main.playerList[0]) < Common .getScore(main.playerList[2])) {main.time[2].setText("抢地主");main.time[2].setVisible(true);setlord(2);// 设定地主openlord(true);second(3);main.playerList[2].addAll(main.lordList);Common.order(main.playerList[2]);Common.rePosition(main, main.playerList[2], 2);openlord(false);} else {main.time[0].setText("抢地主");main.time[0].setVisible(true);setlord(0);// 设定地主openlord(true);second(3);main.playerList[0].addAll(main.lordList);Common.order(main.playerList[0]);Common.rePosition(main, main.playerList[0], 0);//openlord(false);}}// 选完地主后关闭地主按钮ndlord[0].setVisible(false);ndlord[1].setVisible(false);turnOn(false);for (int i = 0; i < 3; i++){main.time[i].setText("不要");main.time[i].setVisible(false);}// 开始游戏根据地主不同顺序不同main.turn=main.dizhuFlag;while (true) {if(main.turn==1) //我{turnOn(true);// 出牌按钮--我出牌timeWait(30, 1);// 我自己的定时器turnOn(false);//选完关闭main.turn=(main.turn+1)%3;if(win())//判断输赢break;}if (main.turn==0){computer0();main.turn=(main.turn+1)%3;if(win())//判断输赢break;}if(main.turn==2){computer2();main.turn=(main.turn+1)%3;if(win())//判断输赢break;}}}// 等待i秒public void second(int i) {try {Thread.sleep(i * 1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}// 地主牌翻看public void openlord(boolean is) {for (int i = 0; i < 3; i++) {if (is)main.lordList.get(i).turnFront(); // 地主牌翻看else {main.lordList.get(i).turnRear(); // 地主牌闭合}main.lordList.get(i).canClick = true;// 可被点击}}// 设定地主public void setlord(int i) {Point point = new Point();if (i == 1)// 我是地主{point.x = 80;point.y = 430;main.dizhuFlag = 1;// 设定地主}if (i == 0) {point.x = 80;point.y = 20;main.dizhuFlag = 0;}if (i == 2) {point.x = 700;point.y = 20;main.dizhuFlag = 2;}main.dizhu.setLocation(point);main.dizhu.setVisible(true);}// 打开出牌按钮public void turnOn(boolean flag) { main.publishCard[0].setVisible(flag);main.publishCard[1].setVisible(flag); }// 电脑0走牌(我代表1)public void computer0() {timeWait(1, 0); // 定时ShowCard(0); // 出牌}// 电脑2走牌(我代表1)。
腾讯产品-《斗地主》策划方案

《斗地主》策划方案策划人:周歆备注:本游戏策划方案是根据QQ斗地主游戏进行还原目录一、游戏综述 (2)1.游戏类型 (2)2.游戏简介 (2)3.游戏主题 (2)二、游戏特色 (3)1.友好的用户界面 (3)2.多种游戏模式 (3)3.各种各样的道具 (3)4.功能完善辅助系统 (3)5.功能完善的聊天交流系统 (3)三、游戏设定 (3)1.游戏基本规则设定 (3)(1).游戏进行规则 (3)(2).牌型规则 (5)(3)游戏胜负规则 (6)(4)游戏计分规则 (6)(5)游戏时间规则 (8)2.游戏系统设定 (8)(1)游戏系统结构与流程图 (8)(2)托管系统与AI设定 (9)(3 )聊天系统设定 (11)2)GM(游戏管理员)公布版,发布系统消息 (11)(4)道具系统设定 (11)(5)A V AT AR系统 (11)(6)游戏模式和分区设置设置 (11)3.角色与等级设定 (13)(1)玩家角色设定 (13)(2)角色等级设定 (14)4.游戏元素与碰撞关系设定 (16)(1)元素设定 (16)(2)碰撞关系设定 (16)5.游戏界面设定 (16)(1)登录界面设定 (17)(2)游戏大厅界面设定 (20)(3)游戏房间界面设定 (26)(4)游戏画面简图 (31)6.操作与音乐、音效设定 (41)(1)操作设定 (41)(2)音乐、音效设定 (41)一、游戏综述1.游戏类型此款游戏是在QQ游戏平台运行的多人网络斗地主游戏。
游戏的特点是“允许众多的手机客户端程序(玩家)同时连接到网络服务器上进行游戏”。
游戏的诉求可以归纳于:交互、娱乐、和较量。
玩家从这三个方面获得足够的乐趣。
最基本的是开始新的牌局,用户在游戏中体会交互的快乐,和智力的考验。
并且获得积分,等级提升,会员财富等乐趣2.游戏简介“斗地主”是流行于湖北一带的一种扑克游戏,玩法简单,娱乐性强,老少皆宜。
据传在万恶的旧社会,地主横行乡里,无恶不做,人们为了发泄对地主的痛恨,常常在一天的劳作之后,一家人关起门来“斗地主”。
斗地主策划书主题3篇

斗地主策划书主题3篇篇一斗地主策划书一、活动主题欢乐斗地主,共享好时光二、活动目的本次活动旨在通过斗地主游戏,增进玩家之间的交流与合作,提升玩家的思维能力和竞争意识,同时为玩家提供一个放松和娱乐的平台。
三、活动时间和地点1. 时间:[具体时间]2. 地点:[详细地址]四、参与人员所有对斗地主游戏感兴趣的玩家均可报名参加。
五、活动流程(一)报名阶段1. 报名方式:线上或线下报名。
2. 报名时间:[具体时间]。
(二)分组阶段1. 根据报名人数,将玩家分为若干个小组,每组[X]人。
2. 分组方式:随机分组或根据玩家意愿分组。
(三)初赛阶段1. 每个小组进行单循环比赛,即每个玩家与同组其他玩家进行一场比赛。
2. 比赛采用明牌模式,即所有玩家的牌都公开显示。
3. 比赛规则按照常规斗地主规则进行。
4. 每场比赛结束后,根据得分高低选出每个小组的前两名,进入复赛。
(四)复赛阶段1. 进入复赛的玩家进行交叉比赛,即每个玩家与不同小组的玩家进行一场比赛。
2. 比赛采用明牌模式,即所有玩家的牌都公开显示。
3. 比赛规则按照常规斗地主规则进行。
4. 每场比赛结束后,根据得分高低选出前四名,进入决赛。
(五)决赛阶段1. 进入决赛的玩家进行单败淘汰赛,即每场比赛的胜者晋级,败者淘汰。
2. 比赛采用明牌模式,即所有玩家的牌都公开显示。
3. 比赛规则按照常规斗地主规则进行。
4. 决赛采用五局三胜制,率先赢得三局的玩家获胜。
(六)颁奖阶段1. 比赛结束后,举行颁奖典礼,为前三名获胜玩家颁发奖品和证书。
2. 邀请获胜玩家发表获奖感言,分享比赛心得和经验。
六、活动预算1. 场地租赁费用:[X]元2. 奖品购买费用:[X]元3. 道具制作费用:[X]元4. 其他费用:[X]元七、注意事项1. 活动现场设置安全警示标识,确保玩家的人身安全。
2. 活动现场配备医疗急救箱,以备不时之需。
3. 严格遵守活动规则,确保比赛的公平、公正、公开。
斗地主培训课程设计

斗地主培训课程设计一、教学目标本课程旨在让学生掌握斗地主的基本规则、技巧和策略,提高学生的竞技水平,增强学生的团队合作能力和竞技精神。
1.了解斗地主的起源、发展和基本规则。
2.掌握斗地主中的牌型组合、出牌顺序和牌型判断。
3.熟悉斗地主中的基本技巧和策略,如控牌、拆牌、防守和进攻等。
4.能够独立完成斗地主游戏的 setup 和 play。
5.学会配合队友,进行有效的沟通和策略制定。
6.提高观察力、判断力和决策能力。
情感态度价值观目标:1.培养学生的团队合作意识和竞技精神。
2.增强学生的自信心和自我认知。
3.培养学生积极面对挑战、勇于尝试和不断进步的态度。
二、教学内容本课程的教学内容主要包括斗地主的基本规则、牌型组合、出牌顺序和策略。
1.斗地主的起源和发展。
2.斗地主的基本规则和牌型判断。
3.斗地主中的牌型组合和出牌顺序。
4.斗地主的基本技巧和策略,如控牌、拆牌、防守和进攻等。
5.斗地主中的心理战术和应对策略。
6.团队合作和沟通技巧在斗地主中的应用。
三、教学方法本课程将采用讲授法、讨论法、案例分析法和实验法等多种教学方法。
1.讲授法:通过讲解斗地主的基本规则、技巧和策略,让学生系统地了解和掌握斗地主知识。
2.讨论法:通过分组讨论和团队对抗,培养学生的团队合作能力和竞技精神。
3.案例分析法:通过分析典型牌局和策略,让学生深入了解斗地主的实战技巧。
4.实验法:通过实际操作和游戏,让学生在实践中提高斗地主技能。
四、教学资源本课程将使用教材、参考书、多媒体资料和实验设备等教学资源。
1.教材:斗地主教程,用于系统地介绍斗地主的基本知识和技巧。
2.参考书:斗地主牌局解析,用于分析典型牌局和策略。
3.多媒体资料:斗地主比赛视频和教学课件,用于激发学生的学习兴趣和提供直观的学习材料。
4.实验设备:电脑、投影仪和扑克牌等,用于实际操作和游戏。
五、教学评估本课程的评估方式包括平时表现、作业和考试等,以全面客观地评价学生的学习成果。
java课程设计斗地主

java课程设计斗地主一、教学目标本章节的教学目标旨在让学生掌握Java编程基础,能够运用Java编写简单的斗地主游戏。
具体目标如下:1.理解Java编程语言的基本语法和结构。
2.掌握面向对象编程的思想,了解类、对象、继承、多态等概念。
3.学习Java集合框架,了解List、Set、Map等接口及其实现类。
4.熟悉Java异常处理机制。
5.能够使用Java开发工具,如Eclipse、IntelliJ IDEA等。
6.能够编写简单的Java程序,实现输入输出、数据计算等功能。
7.能够运用Java编写斗地主游戏的界面和逻辑。
情感态度价值观目标:1.培养学生的编程兴趣,提高学生主动学习的积极性。
2.培养学生团队协作的能力,学会与他人共同解决问题。
3.培养学生勇于创新的精神,敢于挑战自己。
二、教学内容本章节的教学内容主要包括以下几个部分:1.Java编程基础:介绍Java语言的基本语法、数据类型、运算符、控制结构等。
2.面向对象编程:讲解类、对象、继承、多态等概念,并通过实例让学生理解并掌握这些概念。
3.Java集合框架:学习List、Set、Map等接口及其实现类,了解常用的数据结构及其应用场景。
4.异常处理:介绍Java异常处理机制,让学生学会处理程序中可能出现的错误和异常。
5.斗地主游戏开发:引导学生运用所学知识,编写斗地主游戏的界面和逻辑。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式,具体如下:1.讲授法:教师讲解Java编程基础、面向对象编程、集合框架、异常处理等内容,引导学生理解并掌握相关概念。
2.案例分析法:通过分析具体的斗地主游戏案例,让学生将所学知识运用到实际项目中,提高学生的编程能力。
3.实验法:安排实验室实践环节,让学生动手编写斗地主游戏,培养学生的实际操作能力。
四、教学资源本章节的教学资源包括以下几部分:1.教材:《Java编程基础》等相关教材,为学生提供理论知识的学习依据。
网络斗地主课程设计

08 届课程(设计)论文题目网络斗地主专业班级08信息与计算科学(1)班学号0809030123学生姓名许四平指导教师赵祖国指导教师职称讲师学院名称理学院完成日期:2011 年6月25日武汉工程大学本科课程设计(论文)目录目录 (I)摘要 (II)Abstact ............................................................................................................... I II 前言 (IV)第1章课题背景 (1)1.1背景 (1)1.2意义 (2)1.3 文献综述 (2)第2章设计简介及设计方案论述 (3)2.1 游戏规则 (3)2. 2设计方案论述 (3)第3章详细的设计方法 (6)3.1功能结构图 (6)3.2 数据库建立 (7)3.3 代码设计原理 (9)3.3.1服务器工程Serve代码设计: (9)3.2.2客户端工程Client代码设计: (16)第4章测试结果分析 (27)4.1测试数据 (27)4.2测试结果 (27)第5章不足与改进 (35)总结 (36)致谢 (37)参考文献 (38)武汉工程大学本科课程设计(论文)摘要斗地主民间相传起源于湖北,据传是一位叫吴修全的年轻人,根据当地流行的扑克玩法“跑的快”改编的。
斗地主玩法简单,娱乐性强,老少皆宜,如今已风靡整个中国,并流行于互联网上。
尤其是三人斗地主,玩法简单,娱乐性强,老少皆宜。
该游戏由三个人玩,用一副或两副牌,地主为一方,其余两家为另一方,双方对战,先出完牌的一方获胜。
此次设计以一副牌规则为准.本论文讲述了网络斗地主的游戏算法的设计,游戏通讯部分的开发(多线程,socket)的设计过程。
本设计采用Microsoft Visual Basic 作为开发工具,结合socket 编程,采用mysql数据库作为信息存储的工具,利用ODBC连接数据库。
斗地主策划书主题3篇

斗地主策划书主题3篇篇一斗地主策划书一、活动主题“斗地主,欢乐无限”二、活动目的通过举办斗地主比赛,为玩家提供一个交流和娱乐的平台,同时增加玩家对游戏的兴趣和参与度。
三、活动时间和地点1. 时间:[具体日期]2. 地点:[详细地址]四、活动对象所有喜欢斗地主游戏的玩家五、活动内容1. 比赛规则采用经典的斗地主规则。
比赛分为初赛、复赛和决赛三个阶段。
初赛和复赛采用积分制,决赛采用淘汰赛制。
2. 比赛流程报名:玩家在规定时间内报名参加比赛。
分组:根据报名人数进行分组。
初赛:各小组进行单循环比赛,每场比赛限时[时间],积分前两名晋级复赛。
复赛:晋级选手进行分组淘汰赛,每场比赛限时[时间],决出前四名进入决赛。
决赛:采用淘汰赛制,决出冠、亚、季军。
3. 奖项设置冠军:[奖品]亚军:[奖品]季军:[奖品]优秀奖:[奖品]4. 活动宣传在游戏内发布活动公告。
在社交媒体平台上进行宣传。
邀请知名玩家参与,提高活动知名度。
六、活动预算1. 奖品费用:[具体金额]2. 宣传费用:[具体金额]3. 其他费用:[具体金额]七、活动效果评估1. 通过参赛人数、玩家反馈等方面对活动效果进行评估。
八、注意事项1. 活动期间,工作人员要确保比赛的公平、公正、公开。
2. 提醒玩家遵守比赛规则,不得作弊。
3. 注意现场安全,确保活动顺利进行。
篇二《斗地主策划书主题》一、活动主题“斗地主,欢乐多”二、活动目的通过举办斗地主比赛,丰富员工的业余生活,增强员工之间的交流与合作,提高员工的团队凝聚力和向心力。
三、活动时间[具体时间]四、活动地点[具体地点]五、参与人员全体员工六、比赛规则1. 比赛方式:采用淘汰赛制,每轮比赛三局两胜,胜者晋级下一轮,直至决出冠军。
2. 比赛牌型:常规斗地主牌型,包括单牌、对子、三张、顺子、连对、三带一、三带二、炸弹等。
3. 比赛流程:报名阶段:员工在规定时间内报名参加比赛。
分组阶段:根据报名人数进行分组,每组三人。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
08 届课程(设计)论文题目网络斗地主专业班级08信息与计算科学(1)班学号0809030123学生姓名许四平指导教师赵祖国指导教师职称讲师学院名称理学院完成日期:2011 年6月25日武汉工程大学本科课程设计(论文)目录目录 .................................................................................................. I 摘要 ................................................................................................. II Abstact ............................................................................................................... I II 前言 ................................................................................................ IV 第1章课题背景 (1)1.1背景 (1)1.2意义 (2)1.3 文献综述 (2)第2章设计简介及设计方案论述 (3)2.1 游戏规则 (3)2. 2设计方案论述 (3)第3章详细的设计方法 (6)3.1功能结构图 (6)3.2 数据库建立 (7)3.3 代码设计原理 (9)3.3.1服务器工程Serve代码设计: (9)3.2.2客户端工程Client代码设计: (16)第4章测试结果分析 (27)4.1测试数据 (27)4.2测试结果 (27)第5章不足与改进 (35)总结 (36)致谢 (37)参考文献 (38)武汉工程大学本科课程设计(论文)摘要斗地主民间相传起源于湖北,据传是一位叫吴修全的年轻人,根据当地流行的扑克玩法“跑的快”改编的。
斗地主玩法简单,娱乐性强,老少皆宜,如今已风靡整个中国,并流行于互联网上。
尤其是三人斗地主,玩法简单,娱乐性强,老少皆宜。
该游戏由三个人玩,用一副或两副牌,地主为一方,其余两家为另一方,双方对战,先出完牌的一方获胜。
此次设计以一副牌规则为准.本论文讲述了网络斗地主的游戏算法的设计,游戏通讯部分的开发(多线程,socket)的设计过程。
本设计采用Microsoft Visual Basic 作为开发工具,结合socket 编程,采用mysql数据库作为信息存储的工具,利用ODBC连接数据库。
利用C/S(服务器客服端)的信息反馈方式实现服务器客户端信息的交流,进而完成斗地主过程。
设计的大体方法是,先列出斗地主游戏设计的种种操作,将这些操作一一以对应的指令作为操作码,按每个对应的操作码(指令)展开代码编写,详细设计时不断地修正和完善,经过测试阶段反复调试和验证,最终形成达到设计要求的可行系统,在内网外网均可以调试通顺,可进行游戏。
关键字:斗地主,服务器,客户端,mysql,ODBC,C/S, socket武汉工程大学本科课程设计(论文)AbstactConfilct landlord folk legend originated in hubei, it is a call WuXiuQuan young people, according to the local popular poker play "to run of quick adaptation of". Dou landlord play simple, entertaining, people of all ages and strong, now already fashionable whole China, and popular in the Internet. Especially three dou landlord, play simple, entertaining, people of all ages and strong. The game consists of three people playing, use a pair or two deck of CARDS, the landlord for a party, and the remaining two home for the other party, the parties, the brand first out against a party wins.The design with a deck of CARDS rules shall prevail. This paper tells the story of network dou landlord game the design of communication, the game is part of the development (multiple threads, the design process of the socket). This design USES the Microsoft Visual Basic as development tools, combined with the socket programming, using mysql database as the tool, the use of information storage ODBC connection database. Use of C/S (server customer service of the information feedback way realization server the customer service communication of information, then completes the dou landlord process. The Outlines of the design method is, to make dou landlord game design all kinds of operation and will these operations characterized by the corresponding instructions as operation codes, according to each corresponding operation codes (instruction) spread code, and detailed design keeps correction and improve, after repeated commissioning and validation testing phase, and finally form to meet the design requirements of the system, the connection in the feasible all can debugging is smooth, the net can be in the game.Key word: conflict landlord, server, the client, mysql ODBC, C/S, socket武汉工程大学本科课程设计(论文)前言本文解决了在斗地主游戏中,实现了用户的注册,登录,服务器的发牌,客户端的出牌,以及客户端的聊天,在房间内聊天,在牌桌上聊天等许多斗地主游戏的功能,而在该程序的编写之初,就考虑到了程序的扩充,不仅仅是为了写斗地主而写斗地主,在设计的时候考虑到了游戏种类的扩充,单个游戏功能的扩充,诸如以后若有时间精力可以再补充添加升级,五指棋,围棋等其他类的游戏,这样就形成了一个整个棋牌游戏系统,这才是我设计的最终目的。
此外游戏还充分考虑了游戏人数的人数,可以避免如果在线人数过多,服务器崩溃的问题,由此而采取缓冲区来缓存数据。
全文总共分为5章,分别比较详细的讲述了我的设计思路,和我对该课题的理解。
第1章介绍了问题背景、以及用网络斗地主游戏的的实用性,及在娱乐生活中的意义。
第2章主要介绍了我在程序设计中的思路,设计的算法,运用模块,编写程序,给出了我的设计模型。
第3章绍了我的详细的设计思路,编程求出了具体的网络斗地主的编程方案和界面设计和模块的设计以及各种功能函数的编写。
第4章则是测试的结果分析,给出了游戏中的各项操作,以及在斗地主游戏进行中程序运行的情况,给出相应的截图和说明,很好的表明了问题。
第5章是介绍的是此次设计的不足和需要改进的地方。
最后总结了程序设计在实际生活中的广泛运用,以及学好程序对我们学习生活的帮助,接着是致谢、参考文献。
许四平2011-6-25于武汉工程大学理学院武汉工程大学本科课程设计(论文)第1章课题背景1.1背景网络游戏正处于加速发展周期中,中国网络游戏市场迅速扩大,近三年的年均增长率超过100%。
网络游戏的告诉发展,逐渐引起了我国政府的高度重视,信息产业部、文化部、新闻出版总署相关部门都在积极推动各项市场监管和鼓励网络游戏产业发展的政策措施的出台,2003年网络游戏首次被正式纳入国家863计划,标志着我国网络游戏产业已经得到政府的充分重视。
除外,在网络游戏产业发展的同时,有力带动了相关行业的发展,如软件、计算机、通信、电信运营、互联网等,根据统计,网络游戏能够带动10倍于自身产值的相关行业的发展。
预计未来三年,中国游戏规模将保持60%以上的告诉增长,至2010年市场规模将接近1000亿元,而多样的资本运作模式将成为网络游戏产业发展的重要推动力。
同时,手机游戏、家用游戏机、游戏传媒、电子竞技等游戏周边行业也将快速发展起来。
网络斗地主作为一款网络游戏,深受大众喜爱,斗地主游戏对抗性和配合性都很强。
该游戏由三个人玩(四人也能玩),用一副牌共54 张牌。
每局牌有一个玩家是“地主”,地主为一方,其余两家农民为另一方,双方对战,地主的目标是(以合法的出牌方式)先出完手里所有的牌,而农民的目标是在地主出完牌以前,先出完手里所有的牌。
先出完牌的人所代表的一方获胜。
斗地主属于基础类扑克游戏的范畴斗地主后期又增加了网络斗地主,纳入了比赛制,已竞技为中心。
如:淘汰赛制、循环赛制、双败淘汰赛制、积分晋级赛制、分组出线赛制、打立出局赛制、瑞士移位赛制、复活赛制等,以上的赛制在JJ比赛中得到的充分体现。