{"id":176,"date":"2019-07-11T23:18:17","date_gmt":"2019-07-11T15:18:17","guid":{"rendered":"http:\/\/i.pegasi.top\/?p=176"},"modified":"2019-07-11T23:36:39","modified_gmt":"2019-07-11T15:36:39","slug":"%e8%ae%b0%e5%bd%95%e4%b8%80%e6%ac%a1%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1%e7%9a%84%e5%b0%9d%e8%af%95","status":"publish","type":"post","link":"https:\/\/www.4-xx.com\/index.php\/2019\/07\/11\/%e8%ae%b0%e5%bd%95%e4%b8%80%e6%ac%a1%e9%9d%a2%e5%90%91%e5%af%b9%e8%b1%a1%e7%a8%8b%e5%ba%8f%e8%ae%be%e8%ae%a1%e7%9a%84%e5%b0%9d%e8%af%95\/","title":{"rendered":"\u8bb0\u5f55\u4e00\u6b21\u9762\u5411\u5bf9\u8c61\u7a0b\u5e8f\u8bbe\u8ba1\u7684\u5c1d\u8bd5"},"content":{"rendered":"<p>\u3010\u5199\u5728\u524d\u9762\uff1a\u5176\u5b9e\u6211\u4e5f\u4e0d\u77e5\u9053\u8fd9\u662f\u4e0d\u662f\u9762\u5411\u5bf9\u8c61\uff0c\u611f\u89c9\u4e0a\u662f\u5427= =\u6bd5\u7adf\u975e\u8ba1\u7b97\u673a\u4e13\u4e1a\u7684\u8bfe\u6559\u5f97\u592a\u6d45\uff0c\u6bd4\u8f83\u6df1\u7684\u8ba1\u7b97\u673a\u4e13\u4e1a\u8bfe\u4e00\u65b9\u9762\u6ca1\u65f6\u95f4\u53bb\u8e6d\u8bfe\uff0c\u53e6\u4e00\u65b9\u9762\u4e5f\u6015\u542c\u4e0d\u61c2\u2026\u2026\u3011<\/p>\n<p>\u6700\u8fd1\u4e00\u4e0d\u5c0f\u5fc3\u6c89\u8ff7\u4e8e\u67d0\u4e2a\u5361\u724c\u6e38\u620f\uff0c\u5948\u4f55\u6e38\u620f\u5185\u7684\u73a9\u5bb6\u6709\u70b9\u5c11\uff0c\u5c24\u5176\u662f\u534a\u591c\u5f88\u96be\u51d1\u6210\u4e00\u623f\uff08\u800c\u4e14\u6ca1\u6709\u5f00\u6302\u7684\u4e50\u8da3\uff09\uff0c\u4e8e\u662f\u5c31\u60f3\u8bd5\u7740\u7ed9\u81ea\u5df1\u5199\u4e2a\u966a\u73a9\u3002<\/p>\n<p>\u6e38\u620f\u540d\u53eb\u201c\u70b8\u5f39\u732b\u201d\uff0c\u89c4\u5219\u5927\u81f4\u662f\u8fd9\u6837\u7684\uff1a<\/p>\n<ul>\n<li>\u5404\u4e2a\u73a9\u5bb6\u8f6e\u6d41\u6478\u724c\uff0c\u6478\u5230\u70b8\u5f39\u5982\u679c\u6ca1\u6709\u201c\u89e3\u9664\u201d\u5361\u724c\uff0c\u5373\u51fa\u5c40\u3002<\/li>\n<li>\u5404\u4e2a\u5361\u724c\u6709\u4e0d\u540c\u7684\u4f5c\u7528\u3002<\/li>\n<li>\u6700\u540e\u672a\u51fa\u5c40\u7684\u73a9\u5bb6\u83b7\u80dc\u3002<\/li>\n<\/ul>\n<p>\u5361\u724c\u6709\u5f88\u591a\u79cd\uff0c\u5305\u62ec<span class=\"pl-s\">\u89e3\u9664\uff08\u89e3\u9664\u70b8\u5f39\uff09\u3001<\/span><span class=\"pl-s\">\u8df3\u8fc7\uff08\u8df3\u8fc7\u672c\u8f6e\u6478\u724c\uff09\u3001<\/span><span class=\"pl-s\">\u53cd\u8f6c\uff08\u8df3\u8fc7\u672c\u8f6e\u6478\u724c\u5e76\u6539\u53d8\u987a\u9006\u65f6\u9488\uff09\u3001<\/span><span class=\"pl-s\">\u653b\u51fb\uff08\u53e0\u52a0\u6478\u724c\u6b21\u6570\u8f6c\u79fb\u7ed9\u67d0\u4eba\uff09\u3001<\/span><span class=\"pl-s\">\u4fa6\u5bdf\uff08\u67e5\u770b\u724c\u5806\u9876X\u5f20\u724c\uff09\u3001<\/span><span class=\"pl-s\">\u6d17\u724c\u3001<\/span><span class=\"pl-s\">\u62bd\u5e95\uff08\u62bd\u724c\u5806\u5e95\u90e8\uff09\u3001<\/span><span class=\"pl-s\">\u4e5e\u8ba8\uff08\u5411\u5176\u4ed6\u73a9\u5bb6\u7d22\u8981\u4e00\u5f20\uff09\u2026\u2026\u5f53\u7136\uff0c\u8fd8\u6709\u70b8\u5f39\uff08\u6ca1\u6709\u89e3\u9664\u7684\u60c5\u51b5\u4e0b\u6478\u5230\u5c31\u51fa\u5c40\uff09\u3002<\/span><\/p>\n<p>\u6b63\u597d\u5b66\u4e86\u4e00\u4e2a\u5b66\u671f\u7684python\uff0c\u4e8e\u662f\u5c31\u6253\u7b97\u4ece\u96f6\u5f00\u59cb\u5148\u5b8c\u6210\u6e38\u620f\u7684\u57fa\u672c\u903b\u8f91\uff0c\u518d\u5199\u4e2aAI\u966a\u73a9\u3002<\/p>\n<p>\u6574\u4f53\u601d\u8def\u662f\u8fd9\u6837\u7684\uff1a\u4e00\u5171\u4e09\u4e2a\u7c7b\uff0c\u4e00\u4e2a\u724c\u5806\u7c7b\uff0c\u7528\u4e8e\u63a7\u5236\u724c\u5806\u548c\u73a9\u5bb6\u7684\u624b\u724c\uff08\u5806\uff09\uff1b\u4e00\u4e2a\u73a9\u5bb6\u7c7b\uff0c\u7528\u4e8e\u5b58\u4e00\u4e9b\u73a9\u5bb6\u72b6\u6001\uff1b\u4e00\u4e2a\u6e38\u620f\u63a7\u5236\u7c7b\uff0c\u5443\u2026\u2026\u6211\u4e5f\u4e0d\u77e5\u9053\u600e\u4e48\u8bf4\u8fd9\u4e2a\u90e8\u5206\uff0c\u53cd\u6b63\u6574\u4e2a\u6e38\u620f\u7684\u5224\u65ad\u903b\u8f91\u90fd\u5199\u5728\u8fd9\u4e2a\u91cc\u9762\u3002\u5176\u5b9e\u6211\u4e5f\u4e0d\u77e5\u9053\u4e3a\u4ec0\u4e48\u8981\u8fd9\u4e48\u5206= =\u597d\u50cf\u4e00\u5f00\u59cb\u5199\u7684\u65f6\u5019\u6ca1\u8fd9\u4e48\u6253\u7b97\u7684\uff0c\u5199\u7740\u5199\u7740\u5c31\u8fd9\u6837\u4e86\u2026\u2026\u597d\u5728\u6700\u540e\u80fd\u8dd1\u8d77\u6765\u3002\u6240\u4ee5\u8fd9\u6837\u5e94\u8be5\u7b97\u662f\u9762\u5411\u5bf9\u8c61\u4e86\u5427\u2026\u2026<\/p>\n<p>\u81f3\u4e8eAI\u90e8\u5206\uff0c\u539f\u8ba1\u5212\u662f\u6253\u7b97\u5199\u5728\u4e00\u4e2aAI\u63a7\u5236\u7c7b\u91cc\u7684\uff0c\u4f46\u662f\u4e0d\u77e5\u9053\u600e\u4e48\u5c31\u5199\u5230\u6e38\u620f\u63a7\u5236\u903b\u8f91\u91cc\u9762\u53bb\u4e86= =\u800c\u4e14\u8fd8\u6709\u5f88\u4e25\u91cd\u7684bug\uff08\u6bd4\u5982AI\u660e\u660e\u4f7f\u7528\u4e86\u4fa6\u67e5\u770b\u5230\u4e86\u4e0b\u4e00\u5f20\u724c\u662f\u70b8\u5f39\uff0c\u8fd8\u53bb\u6478\u8fd9\u5f20\u724c\u6b7b\u4e86\uff09\u3002\u7531\u4e8e\u5f53\u65f6\u6ca1\u6709\u5f88\u6e05\u695a\u5730\u7406\u6e05AI\u7684\u903b\u8f91\uff0c\u5148\u4e00\u80a1\u8111\u513f\u5199\u7136\u540e\u5c31\u6210\u8fd9\u5768\u70c2\u4ee3\u7801\u4e86\u2026\u2026\u6539\u4e5f\u6539\u4e0d\u597d\u2026\u2026\u8bb0\u5f55\u4e00\u4e0b\u4ee5\u6b64\u4e3a\u6212\uff01<\/p>\n<p>\u8fd9\u5e94\u8be5\u662f\u6211\u7b2c\u4e00\u6b21\u9762\u5411\u5bf9\u8c61\u7a0b\u5e8f\u8bbe\u8ba1\u7684\u5c1d\u8bd5\uff0c\u53ef\u4ee5\u8bf4\u662f\u6709\u70b9\u5931\u8d25\u4e86233\u6ca1\u80fd\u8fbe\u5230\u81ea\u5df1\u7684\u9884\u671f\u3002\u4e0d\u8fc7\u81f3\u5c11\u81ea\u5df1\u548c\u81ea\u5df1\u6597\u667a\u6597\u52c7\u8fd8\u662f\u53ef\u4ee5\u7684\uff0c\u8fd8\u53ef\u4ee5\u52a0\u51e0\u4e2a\u5f31\u667aAI\u966a\u73a92333<\/p>\n<p>&nbsp;<\/p>\n<p>\u6700\u540e\u9644\u4e0agithub\u5730\u5740\u548c\u6e38\u620f\u6548\u679c\u56fe\uff08\u61d2\u5f97\u5199GUI\u4e86\uff0c\u547d\u4ee4\u884c\u51d1\u5408\u4e00\u4e0b\uff09\uff1a<a href=\"https:\/\/github.com\/RainbowHerry\/boomcat\">https:\/\/github.com\/RainbowHerry\/boomcat<\/a><\/p>\n<p>&nbsp;<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-large\" src=\"http:\/\/t.pegasi.top\/imgs\/2019\/07\/a362e23f59e7481e.png\" width=\"605\" height=\"600\" \/><\/p>\n<pre class=\"brush: python; title: ; notranslate\" title=\"\">\r\nimport random\r\nclass Card:\r\n    cardlist=[&quot;0\u89e3\u9664&quot;,&quot;1\u8df3\u8fc7&quot;,&quot;2\u53cd\u8f6c&quot;,&quot;3\u653b\u51fb&quot;,&quot;4\u4fa6\u5bdf&quot;,&quot;5\u6d17\u724c&quot;,&quot;6\u62bd\u5e95&quot;,&quot;7\u4e5e\u8ba8&quot;,&quot;8\u81ea\u7206&quot;,&quot;9\u70b8\u5f39&quot;]\r\n    def __init__(self,num,pile=False):\r\n        self.num=num\r\n        if(pile):\r\n            self.lst=[random.randint(0,8) for ovo in range(self.num-1)]+[9]*(pile-1)+[7]*pile\r\n            random.shuffle(self.lst)\r\n        else:\r\n            self.lst=[0]+[random.randint(1,8) for ovo in range(self.num-1)]\r\n    def _showlist(self):\r\n        for i in self.lst:\r\n            print(self.cardlist[i],end=&quot; &quot;)\r\n        print()\r\n    def delwhere(self,where):\r\n        del self.lst[where]\r\n    def delwhat(self,what):\r\n        loc=self.lst.index(what)\r\n        del self.lst[loc]\r\n    def foreseelist(self,where):\r\n        print(&quot;\u4f60\u770b\u5230\u4e86\uff1a&quot;,end=&quot;&quot;)\r\n        if(where&gt;=len(self.lst)):\r\n            where=len(self.lst)-1\r\n        for i in range(where-1):\r\n            print(self.cardlist[self.lst[i]],end=&quot;,&quot;)\r\n        print(self.cardlist[self.lst[where]],end=&quot;\uff01\\n&quot;)\r\n    def shufflelist(self):\r\n        random.shuffle(self.lst)\r\n    def takeone(self,up=True):\r\n        if(up):\r\n            cardtaken=self.lst[0]\r\n            del self.lst[0]\r\n        else:\r\n            cardtaken=self.lst[-1]\r\n            del self.lst[-1]\r\n        return cardtaken\r\n    def addone(self,crd):\r\n        self.lst.append(crd)\r\n    def addwhere(self,crd,where):\r\n        self.lst.insert(where,crd)\r\n    def locate9(self):\r\n        return self.lst.index(9)\r\n    def locatewhat(self,what):\r\n        try:\r\n            return self.lst.index(what)\r\n        except:\r\n            return False\r\n    def takewhere(self,where):\r\n        cardtaken=self.lst[where]\r\n        del self.lst[where]\r\n        return cardtaken\r\n    def __str__(self):\r\n        res=&quot;&quot;\r\n        for i in self.lst:\r\n            res+=self.cardlist[i]+&quot; &quot;\r\n        return res\r\n\r\nclass Player:\r\n    num=0\r\n    #There are some bugs in AI part. If you need to play with AI, change &quot;ai=False&quot; to &quot;ai=True&quot;\r\n    def __init__(self,ai=False):\r\n        self.num=Player.num\r\n        Player.num+=1\r\n        self.card=Card(5)\r\n        self.alive=True\r\n        self.times=0\r\n        self.ai=ai\r\n    def __str__(self):\r\n        return str(self.num)+&quot;;&quot;+str(self.card)+&quot;;&quot;+str(self.alive)+&quot;;&quot;+str(self.times)\r\n    def isalive(self):\r\n        return self.alive\r\n    def isai(self):\r\n        return self.ai\r\n        \r\nclass GameCtrl:\r\n    def __init__(self,playernum):\r\n        self.playernum=playernum\r\n        self.pile=Card(playernum*7,pile=playernum)\r\n        self.playerlst=[]\r\n        self.alivelst=[]\r\n        self.runing=True\r\n        self.winner=&quot;&quot;\r\n        self.r=False\r\n        for i in range(self.playernum-1):\r\n            self.playerlst.append(Player())\r\n        self.playerlst.append(Player(ai=False))\r\n        self.alivelst=self.playerlst.copy()\r\n        self.turn=random.randint(0,playernum-1)\r\n    def _showall(self):\r\n        print(&quot;self.playernum:&quot;,self.playernum)\r\n        print(&quot;self.pile:&quot;,self.pile)\r\n        for i in self.playerlst:\r\n            print(&quot;self.player:&quot;,i)\r\n    def showbasicinfo(self):\r\n        print(r&quot;\u724c\u5806\u8fd8\u6709{0}\u5f20\u724c\uff0c\u62bd\u4e2d\u70b8\u5f39\u7684\u51e0\u7387\u4e3a{1}%\uff1b&quot;.format(len(self.pile.lst),int((100*(len(self.alivelst)-1))\/len(self.pile.lst))),end=&quot;&quot;)\r\n        for i in self.alivelst:\r\n            print(i.num,&quot;\u53f7\u73a9\u5bb6\u8fd8\u6709&quot;,len(i.card.lst),&quot;\u5f20\u724c\uff1b&quot;,sep=&quot;&quot;,end=&quot;&quot;)\r\n        print()\r\n    def nextturn(self):\r\n        print(&quot;-&quot;*10)\r\n        alives=0\r\n        for i in self.playerlst:\r\n            if(i.isalive()):\r\n                self.winner=i.num\r\n                alives+=1\r\n        if(alives==1):\r\n            self.runing=False\r\n        if(self.r):\r\n            for ovo in range(self.playernum):\r\n                if(self.turn&lt;self.playernum-1):\r\n                    self.turn+=1\r\n                else:\r\n                    self.turn=self.turn+1-self.playernum\r\n                try:\r\n                    if(self.playerlst[self.turn].isalive()):\r\n                        break\r\n                except:\r\n                    self.turn=0\r\n        else:\r\n            for ovo in range(self.playernum):\r\n                if(self.turn&gt;0):\r\n                    self.turn-=1\r\n                else:\r\n                    self.turn=self.turn-1+self.playernum\r\n                \r\n                try:\r\n                    if(self.playerlst[self.turn].isalive()):\r\n                        break\r\n                except:\r\n                    self.turn=self.playernum\r\n    def dointurn(self):\r\n        self.playerlst[self.turn].times+=1\r\n        def aidointurn():\r\n            def aitakeone():\r\n                self.playerlst[self.turn].times-=1\r\n                print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u724c\u5806\u6478\u4e86\u4e00\u5f20\u724c\uff01&quot;)\r\n                tko=self.pile.takeone()\r\n                if(tko==9):\r\n                    print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u6478\u5230\u4e86\u70b8\u5f39\uff01&quot;)\r\n                    if &quot;0&quot; in str(self.playerlst[self.turn].card):\r\n                        self.playerlst[self.turn].card.delwhat(0)\r\n                        wh=random.randint(0,len(self.pile.lst)-1)\r\n                        self.pile.addwhere(9,wh)\r\n                        return False\r\n                    else:\r\n                        self.playerlst[self.turn].alive=False\r\n                        del self.alivelst[self.alivelst.index(self.playerlst[self.turn])]\r\n                        print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u9635\u4ea1\uff01&quot;)\r\n                        return True\r\n                else:\r\n                    self.playerlst[self.turn].card.addone(tko)                \r\n            while self.playerlst[self.turn].times&gt;0:\r\n                atkus=False\r\n                if(self.pile.locate9()-1&gt;self.playerlst[self.turn].times):\r\n                    if(self.playerlst[self.turn].card.locatewhat(8)):\r\n                        if(random.randint(1,100)%4!=1):\r\n                            self.playerlst[self.turn].card.delwhat(8)\r\n                            print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u6253\u51fa[\u81ea\u7206]\uff01&quot;)\r\n                            self.playerlst[self.turn].times+=2\r\n                    if(aitakeone()):\r\n                        break\r\n                    else:\r\n                        continue\r\n                else:\r\n                    if(self.playerlst[self.turn].card.locatewhat(4)):\r\n                        print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u4f7f\u7528\u4e86[\u4fa6\u5bdf]\uff01&quot;)\r\n                        self.playerlst[self.turn].card.delwhat(4)\r\n                    if(self.pile.locate9()&gt;1):\r\n                        if(random.randint(1,100)%2==1):\r\n                            if(aitakeone()):\r\n                                break\r\n                            else:\r\n                                continue\r\n                        if(random.randint(1,100)%2==1):\r\n                            if(aitakeone()):\r\n                                break\r\n                            else:\r\n                                continue\r\n                    if(self.playerlst[self.turn].times):\r\n                        seed=random.randint(1,100)\r\n                        if(seed%2==0):\r\n                            if(self.playerlst[self.turn].card.locatewhat(1)):\r\n                                self.playerlst[self.turn].card.delwhat(1)\r\n                                print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u6253\u51fa[\u8df3\u8fc7]\uff01&quot;)\r\n                                self.playerlst[self.turn].times-=1\r\n                                continue\r\n                        if(seed%2==1):\r\n                            if(self.playerlst[self.turn].card.locatewhat(2)):\r\n                                self.playerlst[self.turn].card.delwhat(2)\r\n                                print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u6253\u51fa[\u53cd\u8f6c]\uff01&quot;)\r\n                                self.r=not(self.r)\r\n                                self.playerlst[self.turn].times-=1\r\n                                continue\r\n                        if(seed%2==1):\r\n                            if(self.playerlst[self.turn].card.locatewhat(5)):\r\n                                self.playerlst[self.turn].card.delwhat(5)\r\n                                print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u6253\u51fa[\u6d17\u724c]\uff01&quot;)\r\n                                self.pile.shufflelist()\r\n                                continue\r\n                        if(seed%2==0):\r\n                            if(self.playerlst[self.turn].card.locatewhat(6)):\r\n                                if(self.pile.lst[-1]!=9):\r\n                                    self.playerlst[self.turn].card.delwhat(6)\r\n                                    print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u6253\u51fa[\u62bd\u5e95]\uff01&quot;)\r\n                                    crd=self.pile.takeone(up=False)\r\n                                    if(crd!=9):\r\n                                        self.playerlst[self.turn].card.addone(crd)\r\n                                        self.playerlst[self.turn].times-=1\r\n                                        continue\r\n                                    else:\r\n                                        if &quot;0&quot; in str(self.playerlst[self.turn].card):\r\n                                            self.playerlst[self.turn].card.delwhat(0)\r\n                                            wh=random.randint(0,len(self.pile.lst)-1)\r\n                                            self.pile.addwhere(9,wh)\r\n                                            continue\r\n                                        else:\r\n                                            self.playerlst[self.turn].alive=False\r\n                                            del self.alivelst[self.alivelst.index(self.playerlst[self.turn])]\r\n                                            print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u9635\u4ea1\uff01&quot;)\r\n                                            break\r\n                        if(seed%5!=4):\r\n                            if(self.playerlst[self.turn].card.locatewhat(7)):\r\n                                self.playerlst[self.turn].card.delwhat(7)\r\n                                qt=self.alivelst[random.randint(1,100)%len(self.alivelst)]\r\n                                while(qt==self.playerlst[self.turn]):\r\n                                    qt=self.alivelst[random.randint(1,100)%len(self.alivelst)]\r\n                                qt=qt.num\r\n                                print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u5411&quot;+str(qt)+&quot;\u53f7\u73a9\u5bb6\u6253\u51fa[\u4e5e\u8ba8]\uff01&quot;)\r\n                                self.playerlst[self.turn].card.addone(self.playerlst[qt].card.takewhere(-1))\r\n                                continue\r\n                        while(self.pile.locate9()&lt;=1):\r\n                            a=self.playerlst[self.turn].card.locatewhat(1)\r\n                            b=self.playerlst[self.turn].card.locatewhat(2)\r\n                            c=self.playerlst[self.turn].card.locatewhat(3)\r\n                            if(a and b):\r\n                                self.playerlst[self.turn].card.delwhat(1)\r\n                                print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u6253\u51fa[\u8df3\u8fc7]\uff01&quot;)\r\n                                atkus=True\r\n                                self.playerlst[self.turn].times-=1\r\n                                break\r\n                            elif(a):\r\n                                self.playerlst[self.turn].card.delwhat(1)\r\n                                print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u6253\u51fa[\u8df3\u8fc7]\uff01&quot;)\r\n                                atkus=True\r\n                                self.playerlst[self.turn].times-=1\r\n                                break\r\n                            elif(b):\r\n                                self.playerlst[self.turn].card.delwhat(2)\r\n                                print(str(self.playerlst[self.turn].num)+&quot;\u53f7\u73a9\u5bb6(BOT)\u6253\u51fa[\u53cd\u8f6c]\uff01&quot;)\r\n                                atkus=True\r\n                                self.r=not(self.r)\r\n                                self.playerlst[self.turn].times-=1\r\n                                break\r\n                            else:\r\n                                if(c):\r\n                                    self.playerlst[self.turn].card.delwhat(3)\r\n                                    atk=self.alivelst[random.randint(1,100)%len(self.alivelst)]\r\n                                    while(atk==self.playerlst[self.turn]):\r\n                                        atk=self.alivelst[random.randint(1,100)%len(self.alivelst)]\r\n                                    atk=atk.num\r\n                                    atkus=True\r\n                                    tmp=self.playerlst[self.turn].times\r\n                                    self.playerlst[self.turn].times=0\r\n                                    self.playerlst[atk].times=tmp+2\r\n                                    self.turn=atk\r\n                                    break                                \r\n                    if(atkus):\r\n                        continue\r\n                    else:\r\n                        if(aitakeone()):\r\n                            break\r\n                        else:\r\n                            continue                                         \r\n        if(self.playerlst[self.turn].isai()):\r\n            aidointurn()\r\n        else:\r\n            self.showbasicinfo()\r\n            while self.playerlst[self.turn].times&gt;0:\r\n                usecard=input(&quot;\u4f60\u662f&quot;+str(self.turn)+&quot;\u53f7\u73a9\u5bb6(&quot;+str(self.playerlst[self.turn].times)+&quot;\u6b21)\uff0c\u624b\u724c\u6709\uff1a&quot;+str(self.playerlst[self.turn].card)+&quot;\\n\u4f60\u8981\u4f7f\u7528\uff1a&quot;)\r\n                if(usecard==&quot;&quot; or (int(usecard) in self.playerlst[self.turn].card.lst)):\r\n                    if(usecard==&quot;0&quot;):\r\n                        print(&quot;\u89e3\u9664\u4e0d\u53ef\u4e3b\u52a8\u6253\u51fa\uff01&quot;)\r\n                    if(usecard==&quot;1&quot;):\r\n                        self.playerlst[self.turn].card.delwhat(1)\r\n                        self.playerlst[self.turn].times-=1\r\n                    if(usecard==&quot;2&quot;):\r\n                        self.playerlst[self.turn].card.delwhat(2)\r\n                        self.r=not(self.r)\r\n                        self.playerlst[self.turn].times-=1\r\n                    if(usecard==&quot;3&quot;):\r\n                        self.playerlst[self.turn].card.delwhat(3)\r\n                        atk=input(&quot;\u4f60\u8981\u653b\u51fb0-&quot;+str(self.playernum-1)+&quot;\u53f7\u73a9\u5bb6\uff1a&quot;)\r\n                        try:\r\n                            if(self.playerlst[int(atk)].alive):\r\n                                tmp=self.playerlst[self.turn].times\r\n                                self.playerlst[self.turn].times=0\r\n                                self.playerlst[int(atk)].times=tmp+2\r\n                                self.turn=int(atk)\r\n                                self.dointurn()\r\n                        except:\r\n                            print(&quot;\u73a9\u5bb6\u65e0\u6548\uff01&quot;)\r\n                            continue\r\n                    if(usecard==&quot;4&quot;):\r\n                        self.playerlst[self.turn].card.delwhat(4)\r\n                        self.pile.foreseelist(3)\r\n                    if(usecard==&quot;5&quot;):\r\n                        self.playerlst[self.turn].card.delwhat(5)\r\n                        self.pile.shufflelist()\r\n                    if(usecard==&quot;6&quot;):\r\n                        self.playerlst[self.turn].card.delwhat(6)\r\n                        crd=self.pile.takeone(up=False)\r\n                        if(crd!=9):\r\n                            self.playerlst[self.turn].card.addone(crd)\r\n                            self.playerlst[self.turn].times-=1\r\n                            continue\r\n                        else:\r\n                            if &quot;0&quot; in str(self.playerlst[self.turn].card):\r\n                                self.playerlst[self.turn].card.delwhat(0)\r\n                                wh=input(&quot;BOOM\uff01\u4f60\u8981\u628a\u70b8\u5f39\u653e\u5728\u7b2c0-&quot;+str(len(self.pile.lst)-1)+&quot;\u5f20\uff1a&quot;)\r\n                                try:\r\n                                    self.pile.addwhere(9,int(wh))\r\n                                except:\r\n                                    self.pile.addwhere(9,0)\r\n                                continue\r\n                            else:\r\n                                self.playerlst[self.turn].alive=False\r\n                                print(&quot;\u4f60(&quot;+str(self.turn)+&quot;\u53f7\u73a9\u5bb6)\u6478\u5230\u70b8\u5f39\u9635\u4ea1\u4e86\uff01&quot;)\r\n                                del self.alivelst[self.alivelst.index(self.playerlst[self.turn])]\r\n                                break\r\n                                \r\n                        self.playerlst[self.turn].times-=1\r\n                    if(usecard==&quot;7&quot;):\r\n                        self.playerlst[self.turn].card.delwhat(7)\r\n                        #\r\n                        qt=input(&quot;\u4f60\u8981\u54110-&quot;+str(self.playernum-1)+&quot;\u53f7\u73a9\u5bb6\u4e5e\u8ba8\uff1a&quot;)\r\n                        try:\r\n                            if(self.playerlst[int(qt)].alive):\r\n                                self.playerlst[self.turn].card.addone(self.playerlst[int(qt)].card.takewhere(-1))\r\n                        except:\r\n                            print(&quot;\u73a9\u5bb6\u65e0\u6548\uff01&quot;)\r\n                            continue\r\n                    if(usecard==&quot;8&quot;):\r\n                        self.playerlst[self.turn].card.delwhat(8)\r\n                        self.playerlst[self.turn].times+=2\r\n                    if(usecard==&quot;&quot;):\r\n                        self.playerlst[self.turn].times-=1\r\n                        tko=self.pile.takeone()\r\n                        if(tko==9):\r\n                            if &quot;0&quot; in str(self.playerlst[self.turn].card):\r\n                                self.playerlst[self.turn].card.delwhat(0)\r\n                                wh=input(&quot;BOOM\uff01\u4f60\u8981\u628a\u70b8\u5f39\u653e\u5728\u7b2c0-&quot;+str(len(self.pile.lst)-1)+&quot;\u5f20\uff1a&quot;)\r\n                                try:\r\n                                    self.pile.addwhere(9,int(wh))\r\n                                except:\r\n                                    self.pile.addwhere(9,0)\r\n                                continue\r\n                            else:\r\n                                self.playerlst[self.turn].alive=False\r\n                                print(&quot;\u4f60(&quot;+str(self.turn)+&quot;\u53f7\u73a9\u5bb6)\u6478\u5230\u70b8\u5f39\u9635\u4ea1\u4e86\uff01&quot;)\r\n                                del self.alivelst[self.alivelst.index(self.playerlst[self.turn])]\r\n                                break\r\n                        else:\r\n                            self.playerlst[self.turn].card.addone(tko)                                 \r\n                else:\r\n                    print(&quot;\u6b64\u5361\u4e0d\u5b58\u5728\uff01&quot;)\r\n                    continue\r\n            \r\n\r\ngc=GameCtrl(4)\r\nwhile(gc.runing):\r\n    #gc._showall()\r\n    gc.dointurn()\r\n    gc.nextturn()\r\n\r\nprint(&quot;\u6e38\u620f\u7ed3\u675f\uff01\u83b7\u80dc\u7684\u662f&quot;,gc.winner,&quot;\u53f7\u73a9\u5bb6\u3002&quot;,sep=&quot;&quot;)\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u3010\u5199\u5728\u524d\u9762\uff1a\u5176\u5b9e\u6211\u4e5f\u4e0d\u77e5\u9053\u8fd9\u662f\u4e0d\u662f\u9762\u5411\u5bf9\u8c61\uff0c\u611f\u89c9\u4e0a\u662f\u5427= =\u6bd5\u7adf\u975e\u8ba1\u7b97\u673a\u4e13\u4e1a\u7684\u8bfe\u6559\u5f97\u592a\u6d45\uff0c\u6bd4\u8f83\u6df1\u7684\u8ba1\u7b97\u673a\u4e13\u4e1a\u8bfe [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[22,11],"tags":[24],"views":5787,"_links":{"self":[{"href":"https:\/\/www.4-xx.com\/index.php\/wp-json\/wp\/v2\/posts\/176"}],"collection":[{"href":"https:\/\/www.4-xx.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.4-xx.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.4-xx.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.4-xx.com\/index.php\/wp-json\/wp\/v2\/comments?post=176"}],"version-history":[{"count":4,"href":"https:\/\/www.4-xx.com\/index.php\/wp-json\/wp\/v2\/posts\/176\/revisions"}],"predecessor-version":[{"id":182,"href":"https:\/\/www.4-xx.com\/index.php\/wp-json\/wp\/v2\/posts\/176\/revisions\/182"}],"wp:attachment":[{"href":"https:\/\/www.4-xx.com\/index.php\/wp-json\/wp\/v2\/media?parent=176"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.4-xx.com\/index.php\/wp-json\/wp\/v2\/categories?post=176"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.4-xx.com\/index.php\/wp-json\/wp\/v2\/tags?post=176"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}