欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實(shí)現(xiàn)小貓釣魚(yú)游戲

 更新時(shí)間:2019年01月15日 14:54:51   作者:EchoZYK  
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)小貓釣魚(yú)游戲,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

題目要求:

兩人比賽,A,B,每人最開(kāi)始分得6張手牌,手牌大小為從1到9
A先出牌,B后出牌,若出牌在桌面上存在,在出牌人獲得兩張相同牌中間的所有牌(包括兩張相同牌),放入出牌人手中。
最后誰(shuí)手中無(wú)牌判為負(fù)

import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
import java.util.Stack;

/**
 * 模擬實(shí)現(xiàn)兩人玩小貓釣魚(yú)游戲
 * 判斷誰(shuí)先出完誰(shuí)獲勝
 * @author zyk
 *
 */
public class PlayGame {

  public static void main(String[] args) {
    Stack<Integer> deskStack = new Stack<>();//桌子上的牌,用棧進(jìn)行管理
    Queue<Integer> playerA = new LinkedList();//用隊(duì)列管理每個(gè)選手的牌
    Queue<Integer> playerB = new LinkedList();
    int book[] = new int[10];
    Scanner scanner = new Scanner(System.in);
    //發(fā)牌,每人6張
    for (int i = 0; i < 6; i++) {
      playerA.add(scanner.nextInt());
    }
    for (int i = 0; i < 6; i++) {
      playerB.add(scanner.nextInt());
    }
    //當(dāng)兩個(gè)隊(duì)列都不為空,表示游戲沒(méi)有結(jié)束
    while (!playerA.isEmpty() && !playerB.isEmpty()) {
      int ta = playerA.peek();//A出一張牌
      //判斷A出的牌能不能贏牌
      if (book[ta] == 0) {//桌子上沒(méi)有這張牌
        //A不能贏牌
        playerA.remove();//打出的牌出隊(duì)列
        deskStack.add(ta);//打出的牌入棧
        book[ta]=1;//標(biāo)記打出的牌出現(xiàn)在桌子上
      }else {//A能贏牌
        playerA.remove();//打出的牌出隊(duì)列
        playerA.add(ta);//打出的牌入隊(duì)列
        while (deskStack.lastElement()!=ta) {
          book[deskStack.lastElement()] = 0;
          playerA.add(deskStack.lastElement());
          deskStack.pop();
        }
      }
      int tb = playerB.peek();//B出一張牌
      //判斷B出的牌能不能贏牌
      if (book[tb] == 0) {//桌子上沒(méi)有這張牌
        //B不能贏牌
        playerB.remove();//打出的牌出隊(duì)列
        deskStack.add(tb);//打出的牌入棧
        book[tb]=1;//標(biāo)記打出的牌出現(xiàn)在桌子上
      }else {//B能贏牌
        playerB.remove();//打出的牌出隊(duì)列
        playerB.add(tb);//打出的牌入隊(duì)列
        while (deskStack.lastElement()!=tb) {
          book[deskStack.lastElement()] = 0;
          playerB.add(deskStack.lastElement());
          deskStack.pop();
        }
      }
    }
    if (playerA.isEmpty()) {
      System.out.println("B贏了");
      System.out.print("B手中的牌為:");
      while (!playerB.isEmpty()) {
        System.out.print(playerB.peek()+" ");
        playerB.remove();
      }



    }else {
      System.out.println("A贏了");
      System.out.print("A手中的牌為:");
      while (!playerA.isEmpty()) {
        System.out.print(playerA.peek()+" ");
        playerA.remove();
      }
    }
    System.out.println("");
    System.out.print("桌子上的牌為:");
    while (!deskStack.isEmpty()) {
      System.out.print(deskStack.lastElement()+" ");
      deskStack.pop();
    }

  }

}

實(shí)例:

輸入:
2 4 1 2 5 6
3 1 3 5 6 4

輸出:
A贏了
A手中的牌為:5 6 2 3 1 4 6 5

參考: 《啊哈算法》第二章 棧,隊(duì)列,鏈表

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • MyBatis-Plus中提供的各種注解詳細(xì)說(shuō)明

    MyBatis-Plus中提供的各種注解詳細(xì)說(shuō)明

    這篇文章主要介紹了MyBatis-Plus中提供的各種注解詳細(xì)說(shuō)明,下面對(duì)MyBatis-Plus提供的注解進(jìn)行整理,本文提供了部分示例代碼以方便理解,需要的朋友可以參考下
    2023-11-11
  • Java并發(fā)教程之volatile關(guān)鍵字詳解

    Java并發(fā)教程之volatile關(guān)鍵字詳解

    這篇文章主要給大家介紹了關(guān)于Java并發(fā)教程之volatile關(guān)鍵字的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • java中利用List的subList方法實(shí)現(xiàn)對(duì)List分頁(yè)(簡(jiǎn)單易學(xué))

    java中利用List的subList方法實(shí)現(xiàn)對(duì)List分頁(yè)(簡(jiǎn)單易學(xué))

    本篇文章主要介紹了java中l(wèi)ist數(shù)據(jù)拆分為sublist實(shí)現(xiàn)頁(yè)面分頁(yè)的簡(jiǎn)單代碼,具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-11-11
  • Request的包裝類(lèi)HttpServletRequestWrapper的使用說(shuō)明

    Request的包裝類(lèi)HttpServletRequestWrapper的使用說(shuō)明

    這篇文章主要介紹了Request的包裝類(lèi)HttpServletRequestWrapper的使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java將文件轉(zhuǎn)成流文件返回給前端詳細(xì)代碼實(shí)例

    java將文件轉(zhuǎn)成流文件返回給前端詳細(xì)代碼實(shí)例

    Java編程語(yǔ)言提供了強(qiáng)大的文件處理和壓縮能力,下面這篇文章主要給大家介紹了關(guān)于java將文件轉(zhuǎn)成流文件返回給前端的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-07-07
  • Java如何實(shí)現(xiàn)調(diào)用外部Api

    Java如何實(shí)現(xiàn)調(diào)用外部Api

    這篇文章主要介紹了Java如何實(shí)現(xiàn)調(diào)用外部Api問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java進(jìn)階教程之String類(lèi)

    Java進(jìn)階教程之String類(lèi)

    這篇文章主要介紹了Java進(jìn)階教程之String類(lèi),String類(lèi)對(duì)象是不可變對(duì)象(immutable object),String類(lèi)是唯一一個(gè)不需要new關(guān)鍵字來(lái)創(chuàng)建對(duì)象的類(lèi),需要的朋友可以參考下
    2014-09-09
  • spring啟動(dòng)后保證創(chuàng)建的對(duì)象不被垃圾回收器回收

    spring啟動(dòng)后保證創(chuàng)建的對(duì)象不被垃圾回收器回收

    最近看到一個(gè)問(wèn)題是,spring在啟動(dòng)后如何保證創(chuàng)建的對(duì)象不被垃圾回收器回收?。所以本文結(jié)合jvm的垃圾回收機(jī)制和spring中的源代碼做出自己的一點(diǎn)猜測(cè)。有需要的朋友們可以參考借鑒。
    2016-09-09
  • Java實(shí)現(xiàn)單向鏈表反轉(zhuǎn)

    Java實(shí)現(xiàn)單向鏈表反轉(zhuǎn)

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)單向鏈表反轉(zhuǎn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • cascade級(jí)聯(lián)關(guān)系操作案例詳解

    cascade級(jí)聯(lián)關(guān)系操作案例詳解

    這篇文章主要介紹了cascade級(jí)聯(lián)關(guān)系,主要包括級(jí)聯(lián)保存,級(jí)聯(lián)修改,級(jí)聯(lián)刪除案例,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07

最新評(píng)論