最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

題目要求:

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

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

/**
 * 模擬實(shí)現(xiàn)兩人玩小貓釣魚游戲
 * 判斷誰先出完誰獲勝
 * @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ì)列都不為空,表示游戲沒有結(jié)束
    while (!playerA.isEmpty() && !playerB.isEmpty()) {
      int ta = playerA.peek();//A出一張牌
      //判斷A出的牌能不能贏牌
      if (book[ta] == 0) {//桌子上沒有這張牌
        //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) {//桌子上沒有這張牌
        //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)文章

  • SpringData Repository接口用法解析

    SpringData Repository接口用法解析

    這篇文章主要介紹了SpringData Repository接口用法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • Maven dependency中的scope案例講解

    Maven dependency中的scope案例講解

    Maven的一個(gè)哲學(xué)是慣例優(yōu)于配置(Convention Over Configuration), Maven默認(rèn)的依賴配置項(xiàng)中,scope的默認(rèn)值是compile,本文給大家介紹Maven dependency中的scope案例講解,感興趣的朋友跟隨小編一起看看吧
    2024-02-02
  • Java多線程之等待隊(duì)列DelayQueue詳解

    Java多線程之等待隊(duì)列DelayQueue詳解

    這篇文章主要介紹了Java多線程之等待隊(duì)列DelayQueue詳解,    DelayQueue被稱作"等待隊(duì)列"或"JDK延遲隊(duì)列",存放著實(shí)現(xiàn)了Delayed接口的對(duì)象,對(duì)象需要設(shè)置到期時(shí)間,當(dāng)且僅當(dāng)對(duì)象到期,才能夠從隊(duì)列中被取走(并非一定被取走),需要的朋友可以參考下
    2023-12-12
  • SpringBoot中的@CrossOrigin注解詳解

    SpringBoot中的@CrossOrigin注解詳解

    這篇文章主要介紹了SpringBoot中的@CrossOrigin注解詳解,跨源資源共享(CORS)是由大多數(shù)瀏覽器實(shí)現(xiàn)的W3C規(guī)范,允許您靈活地指定什么樣的跨域請(qǐng)求被授權(quán),而不是使用一些不太安全和不太強(qiáng)大的策略,需要的朋友可以參考下
    2023-11-11
  • SpringBoot3實(shí)現(xiàn)webclient的通用方法詳解

    SpringBoot3實(shí)現(xiàn)webclient的通用方法詳解

    Spring Boot WebClient 是 Spring Framework 5 中引入的一個(gè)新的響應(yīng)式 Web 客戶端,用于異步和響應(yīng)式地與外部服務(wù)進(jìn)行通信,下面我們就來看看SpringBoot3實(shí)現(xiàn)webclient的通用方法吧
    2024-04-04
  • IDEA自動(dòng)清理類中未使用的import包的操作方法

    IDEA自動(dòng)清理類中未使用的import包的操作方法

    在項(xiàng)目開發(fā)中,經(jīng)常會(huì)引入很多未使用的import包,這不僅增加了編譯時(shí)間,還會(huì)使代碼可讀性變差,設(shè)置IDEA自動(dòng)清理未使用的import包,可以提高代碼的可讀性,本文給大家介紹IDEA自動(dòng)清理類中未使用的import包的方法,感興趣的朋友一起看看吧
    2024-09-09
  • 快速理解spring中的各種注解

    快速理解spring中的各種注解

    這篇文章主要介紹了快速理解spring中的各種注解,具有一定借鑒價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • SpringBoot+JavaMailSender實(shí)現(xiàn)騰訊企業(yè)郵箱配置

    SpringBoot+JavaMailSender實(shí)現(xiàn)騰訊企業(yè)郵箱配置

    這篇文章主要介紹了SpringBoot+JavaMailSender實(shí)現(xiàn)騰訊企業(yè)郵箱配置,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java實(shí)現(xiàn)把文件壓縮成zip文件的示例代碼

    Java實(shí)現(xiàn)把文件壓縮成zip文件的示例代碼

    這篇文章主要為大家介紹了如何通過Java語(yǔ)言實(shí)現(xiàn)將文件壓縮成zip文件,本文中示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-02-02
  • Java異常類型以及處理實(shí)例詳解

    Java異常類型以及處理實(shí)例詳解

    在程序設(shè)計(jì)中,進(jìn)行異常處理是非常關(guān)鍵和重要的一部分,一個(gè)程序的異常處理框架的好壞直接影響到整個(gè)項(xiàng)目的代碼質(zhì)量以及后期維護(hù)成本和難度,這篇文章主要給大家介紹了關(guān)于Java異常類型以及處理的相關(guān)資料,需要的朋友可以參考下
    2021-07-07

最新評(píng)論

北川| 磴口县| 元朗区| 鄂温| 长春市| 景洪市| 海晏县| 麻阳| 观塘区| 马尔康县| 库尔勒市| 呼和浩特市| 金昌市| 张家川| 海安县| 托克逊县| 井研县| 延安市| 广州市| 聊城市| 怀仁县| 镇沅| 安平县| 汝南县| 西峡县| 张北县| 碌曲县| 根河市| 中江县| 天台县| 岳普湖县| 钟祥市| 长葛市| 梧州市| 富源县| 洞头县| 蒙城县| 措勤县| 武平县| 襄汾县| 平定县|