From 354b07d50e8e0023533e68f776a23655cdaf2fdf Mon Sep 17 00:00:00 2001 From: magenoxx Date: Thu, 28 Jun 2012 19:32:32 +0400 Subject: [PATCH] Draft bot - only draft picks, will be auto eliminated and doesn't participate in tournament --- .../Mage.Player.AI.DraftBot/pom.xml | 56 +++++++++++++++ .../mage/player/ai/ComputerDraftPlayer.java | 68 ++++++++++++++++++ Mage.Server.Plugins/pom.xml | 1 + Mage.Server/config/config.xml | 1 + .../plugins/mage-player-ai-draft-bot.jar | Bin 0 -> 2945 bytes Mage.Server/plugins/mage-player-ai-ma.jar | Bin 62799 -> 62799 bytes Mage.Server/plugins/mage-player-ai.jar | Bin 55905 -> 55945 bytes Mage.Server/plugins/mage-player-aimcts.jar | Bin 28467 -> 28463 bytes Mage.Server/plugins/mage-player-aiminimax.jar | Bin 39937 -> 39932 bytes Mage.Server/plugins/mage-player-human.jar | Bin 13534 -> 13535 bytes .../tournament/TournamentController.java | 7 +- .../mage/game/tournament/TournamentImpl.java | 30 ++++---- .../game/tournament/TournamentPairing.java | 13 +++- .../TournamentSingleElimination.java | 11 +++ Mage/src/mage/players/Player.java | 1 + Mage/src/mage/players/PlayerImpl.java | 5 ++ 16 files changed, 176 insertions(+), 17 deletions(-) create mode 100644 Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml create mode 100644 Mage.Server.Plugins/Mage.Player.AI.DraftBot/src/mage/player/ai/ComputerDraftPlayer.java create mode 100644 Mage.Server/plugins/mage-player-ai-draft-bot.jar diff --git a/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml b/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml new file mode 100644 index 00000000000..78d2eb0267c --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI.DraftBot/pom.xml @@ -0,0 +1,56 @@ + + + + 4.0.0 + + + org.mage + mage-server-plugins + 0.8.6 + + + mage-player-ai-draft-bot + jar + Mage Player AI.DraftBot + + + + ${project.groupId} + mage + ${project.version} + + + ${project.groupId} + mage-player-ai + ${project.version} + + + + + src + + + org.apache.maven.plugins + maven-compiler-plugin + 2.0.2 + + 1.6 + 1.6 + + + + maven-resources-plugin + + UTF-8 + + + + + + mage-player-ai-draft-bot + + + + + diff --git a/Mage.Server.Plugins/Mage.Player.AI.DraftBot/src/mage/player/ai/ComputerDraftPlayer.java b/Mage.Server.Plugins/Mage.Player.AI.DraftBot/src/mage/player/ai/ComputerDraftPlayer.java new file mode 100644 index 00000000000..31e514b2387 --- /dev/null +++ b/Mage.Server.Plugins/Mage.Player.AI.DraftBot/src/mage/player/ai/ComputerDraftPlayer.java @@ -0,0 +1,68 @@ +/* + * Copyright 2010 BetaSteward_at_googlemail.com. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, are + * permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * + * 2. Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY BetaSteward_at_googlemail.com ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND + * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BetaSteward_at_googlemail.com OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON + * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF + * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * The views and conclusions contained in the software and documentation are those of the + * authors and should not be interpreted as representing official policies, either expressed + * or implied, of BetaSteward_at_googlemail.com. + */ + +package mage.player.ai; + +import mage.Constants.RangeOfInfluence; +import mage.game.Game; +import mage.players.Player; + +/** + * + * @author nantuko + */ +public class ComputerDraftPlayer extends ComputerPlayer implements Player { + + public ComputerDraftPlayer(String name, RangeOfInfluence range) { + super(name, range); + } + + public ComputerDraftPlayer(String name, RangeOfInfluence range, int skill) { + super(name, range); + } + + public ComputerDraftPlayer(final ComputerDraftPlayer player) { + super(player); + } + + @Override + public ComputerDraftPlayer copy() { + return new ComputerDraftPlayer(this); + } + + @Override + public boolean autoLoseGame() { + return true; + } + + @Override + public boolean priority(Game game) { + game.concede(playerId); + return true; + } +} diff --git a/Mage.Server.Plugins/pom.xml b/Mage.Server.Plugins/pom.xml index 55cb409cfc4..21e48d2e945 100644 --- a/Mage.Server.Plugins/pom.xml +++ b/Mage.Server.Plugins/pom.xml @@ -23,6 +23,7 @@ Mage.Player.AIMinimax Mage.Player.AI.MA Mage.Player.AIMCTS + Mage.Player.AI.DraftBot Mage.Player.Human Mage.Tournament.BoosterDraft Mage.Tournament.Sealed diff --git a/Mage.Server/config/config.xml b/Mage.Server/config/config.xml index cc832e984a7..1fa37199651 100644 --- a/Mage.Server/config/config.xml +++ b/Mage.Server/config/config.xml @@ -7,6 +7,7 @@ + diff --git a/Mage.Server/plugins/mage-player-ai-draft-bot.jar b/Mage.Server/plugins/mage-player-ai-draft-bot.jar new file mode 100644 index 0000000000000000000000000000000000000000..add4c0bafd0a39bb026e1ca51544fe124053316c GIT binary patch literal 2945 zcmWIWW@h1H0D-l$?l^!MP=XUk`?`iW>U#RQ=?6fSaWJd_D$6PBTAK}&ZUkZxWM#gN zex7cw!6ACSZl8V6oc8h7)w{^+t*dqJ%=yhh23L$9JT21kI(I_HTi1z${mGKBDPr0O zR4R7P=?)V14hk-rtF=}{hFfT|agb<@@adq>Kp8LNVy^>_Dmzs(ms(oRtn3uHC=$DV zO3nn)v?{ibZp-$>?1^E3IS$hgtU$-*CZ?yt-H)k+2d1PTC$TcM2#-pBG?j^&aK#+p z(38KRs(Y1*fgyyQfk6XPv2%WIL1{^9kxNlxT1f!dHofGW#Ny(mQ*!+;2Z$X1U+yov z_z=qz#~LQVZG0=6ns#+6xLi&VeB9!4FV=15(RH!6&b7RM!tLAR;`@i8PUG>;?Pp~s zGd7xkfBEP9`#HtubL;>A{K$R4Cd|m=@j8iTA}=J56s~V?`@J_MTHrQ2mz-8aipNx) z<6P53ZIVvxd+2xe&JE)^w!1T}LMJ<#${hc4E$7|uW#>1{(0>29KW4kN{SMQPBk$T-c{?wtzJO7wD?|K-y zE}fM{swZg0#7Oa3iv(1%g66*6a`9;i|D7(&qL9b0bx#XK{=0ko*tva?ye}&LRIo3; zx8dZi;Eh>){Ildzx6~GWxD=_Ey7PwWZl9yMRiU3-RqtJWVYseXsa#a@OXoww!%tp5 zY$=L4Dl8&8CB)|FrmojJ4i@}9;%$d?ttn1!qgw0rB?=E%4_SeajjAh=7H_k6(i+p6F z9hLY^;0?EK@(HiV9yeZ1k%F0F+nprY3^-0)6<8e^4yk&NKTdcN0#%Q51O66=BZ`l$rHu4TF$x|@e}{_ zh4AF|Y?u)`YyNi8#oM|93#Ee-ZiZ?-^K-efIA+o4lnAclKV}PBU_s$D*uE2P5QS!R7 zuBvZkyIF7dPuuP@iTg)-?f1hrYXW>`Ug}8PG~@iD6E=~W-S-Q7OrE~s+51A`FjHai z&j~gv3ClmZn$6#;6*wi#M*V5N($tA3a;Avz8JrjK5L&kRUCKnKPf>TC&78;}s^!5| zt)if~@+Dhh?uBW>+Dg(&$${5eS6Z|lto^X6@D=9{rujiPex$t7{j$>{K}X4Ji@8$A zv7Ii`vi3!`3sbxf)lc+Xd}7|joWQKae;f6iGmwydCQOD^1BT|DR6q0UyW z>KSDcnU9x*ey#}Jah2spqxIJpRW=7I?3uUmZM_v?XSjUf*15J>qAJ(FzG~MwxKDFK zn2PGTFFO1Gv`32HisW&9-1;nOStV z7q=;(;um4c9z3StDU4ypV=s?HXT{E ZAhKwHH!H9%VPN0}LOo^%23rmg4*+mj9BBXm literal 0 HcmV?d00001 diff --git a/Mage.Server/plugins/mage-player-ai-ma.jar b/Mage.Server/plugins/mage-player-ai-ma.jar index cac60a4d375564638b293c62964fcc4928ed980e..7880ac081c4cd07da1ea47efda88e6adbd83d35a 100644 GIT binary patch delta 3919 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 CrM(dV delta 5499 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 Oea7RWp>-nuc>e<`mSEWc diff --git a/Mage.Server/plugins/mage-player-aimcts.jar b/Mage.Server/plugins/mage-player-aimcts.jar index c586e569bfd152d84d91a1b11c71c08c8e0097a0..1d820de797d984976deab64db6912e1c3ca941a1 100644 GIT binary patch delta 1032 zcmdmdk8%AyM&1B#W)?065Lh$o&O}}n=G8#TWEL}scToXMeNhKdljRt-K=fvB#wKwv zHbLU+g zdBs6`#?Pf{ObiV3C%;c~s^@=VKVw6-YM zy4`s;b0UMNmIs%#ih|$>+v$amS%5k0Uz{?w_!7!HN279@qHI-0RN=xNcfnsl97^zN>uR;-|-t zw~O4G9cHQCv|)~cPbU}emLG}^)+?v(nX$fI>9zHzBL^2)CHfxZ@p=AtOVlhojz@QH ztzQsf5%HE)?%v;T#*8+fiaHgqYv=#A-1lzcbjAGti+?3I{|%OBd~)mbVSDo}Z+f~P zNq3%9*Q)R3nBMN=Ip>g_#D~9MzH*lp@V|8l>)#cxlXrScv5m}~*B@T_wp6NS+{|k< zmMklpGxMv7_0@aRIxV9wCMmx?CZoWTI5Tr+mXX!bD;{Dl*316O3A8>BIh!TP_0{Lf z`b(3Jgs#-^PkN7Yr zVOzkO2WtbgDmKaAcxA?W#pRmIhwr)1Ew1(|bEnRGSb4y~+I{V+zj&>l)dtt($WckFML+Yn%O4b?R5Ua?d@nCpL$vSnkO|9`DBB85`)3D%=_T1dVES{m7npX) z@c`4^IiXAU7DyZ_9<~Kb-3f=5ywSqvfC6ybyVKm;f_&DG*zMayS$$Y4o4` MAkUXgG7BUC0Jr(tHUIzs delta 1051 zcmZ2~k8$%oM&1B#W)?065a12JGLct>nFmOj%wh)dE-HYjFX|v_vK*rph~DhY*dz{S zT#z`*3TDiZ3uXc{-YFDHfEh`aiy$KGHqm@wkyNh>(jdlUi!`t?lT*`-!Ti~2?z|i` z4m&uf14#?Q%bbI6WMJKyfpPAOOq{i^q zeRc0m%Derck`aeNj?w1KYhD*XT-u8MoR?`rx?k(PTaYvK0s{$ zQ;Ez|H(9GLYPPXHdizJS((6Fn)5&YDt=O;Or9E%*C+Uf&I#RyP6)D@$pglpwC;eT@ zM5j-^J5CxaGi!xR5Ha&`a0y(N-n-)j|7-Cl}VAxaM)q-^^V;eTCA^OM67`-rT;3-~8gI z$A@dVa#L)o9(P&_wmfY~^a_b^?v`iTk{olg`)AdOt#zLBEM9~jU#~f%@#UWU2=B}6 zjxjsG>3fLrrByrf=GXtc$RJm_bBV%rz4~>}f9!IPYs>mAe^cK2&HQVE4(s;LTK9Y7 z!qoH>k^1`{K6ZhbAvvXKqaDF#X=ZxOe2WVQ z1w+1S)w~m&d-PV>^linwe2>@eC|kfcO?SzS=wee{4gJh``QrIUX1CfjE1i7k9IW?~ ze{bE(l#3!?jGppd;Sca;WD;S9=cvgVStg(?H90=Z9-Q14W*LC#D_Q1XnlIZ5OnYYs zf$0U=K4AKNwilST$?*Ww?Kz=f`hE^XTqide%;(FNo;){K9?agK>kOt@^TN@xRAyd? YJZ1oaay z;Uq5}Fe4!^0%Gd!f?W_sMRB(%Sc6;Cfn#?s3?3Bso6OBOI?F7^(u06j)uf`-!>4a;eTR3feh=5PFP$os<cx7?lVi@$egT(xH=qR-8!BNekH9Z#Ah$O^J|+; zp}|_eBx4iz&93&Frls`>WgUK}ts%xAR^8fezW+~xLjRtaw%rbhrb-(xYs?DyVbd7R{8$e zSD}~rJ{J_MKfL;ypy<*R*WFxtDK}0Q=9ORh6H{%iCR%g$)7ql!;s$}1)a6f?oqQp4 zSzv1O%9;PF9Yo@Tw%$(FxWXN{-^<%EcIiH&b*r5==&EkYdRqJYms4TY><8ceh_fAz zvn!2gSSP7|ba__&yvVESPR0zrtIcOeb8=p@&3NOW9nwF|_AeVOJ8*!qgF{t@vNyMrG<-$7LI4D{xuAJ1dA0-3k1{0ptRIclrJ>H4J;l#BM3}ym=O%7*=9o2 zM?mRSGyTBgzh?%3X}?)kV7hyjGnl?OE0Px_7fv>x9i{*eM_>_C4#YN~vIYv4G%8O4 Q<oif>cqA^Hfa_&S=!L%7W z9rg(>F41CQVA#gaz+gJrZi;DrMQ+Z~klS6i4FqcQ6#geT#VcE8MofDk#kF+9hD`CQ zh56lD{(HP~Jv~nKZu%d0bCT@M*Gn3MekE+^>w9)aCN0gzYl)Eb0yV2Ctk?6^{g0hc zJ*Ik-(cMMp7mLRV8T*>3hpb(JHic)NI&Pk}_x}5f|9sERKK_xXKK^d~HhyoTRQDL^ zLz+Iv7He$spSJ7Rdsfvp&brpPlDu&2h zRK09XSHSTQ?O6}(BtHC=_-0&I!2h-)?ChTVMtM)SFx$Sl{9Dqv{NCQn zDNt33;CDzi7Y#e#JHz%L8!YK_fRet$!}Z_z3n!aR@vPs-b;v+~;eu_!e}NZwCa~xP zy-@3LTF!TFx$WUb&r>s}eS6>gxccl=Ax^PbUq4?^&YR+3+JEZztS#Gb-TZgu>%EtS zyF#q_vy^`p`8AuSUvA`@bp5Fre`Hgq1c!*%L-T!JXY03|X6K(IW?A&8!+M2$fHxzP z2s1nnI!yjQ#Tb+eC!0>S2dD1xso-ohdDT>NFyC{Q^yL3j!5L|?;xtc44wx1QrVm1C z(dqtRe)@EX_--hlcZM5SJZwe~m|i_27)&$Hgs2aO(o1LhfyKYg3;@%fv#h{$+bm}= oeP&i9FG`M^Y&1KJ6A_LRXNxjvPMK^!#cuMm*#c}|rhrNq04?h9y8r+H diff --git a/Mage.Server/plugins/mage-player-human.jar b/Mage.Server/plugins/mage-player-human.jar index ae701fbf9caef4d8d0e8a443cb4e823b9f66ee46..fa972867142f670efb84dc7a3d3e4568eb61d8a1 100644 GIT binary patch delta 332 zcmcbYc|Vgkz?+$civa}I&bl*^SA}^EkTRLY4B}l>08?MoLDXb9MqLoS*^lv>CYYhF zJ&g%0b3j)MOuyAN21_XG)iZGdl{(C@b&xHXyxPFIUi8dHu4V%Ph6}b6>MaV)W-J!b z-XZG6y8IXO^0>tT!j{4Z_pe`Vr4G4=JPPwCuQqV54=(dR>#gghIk match.getPlayer(player2Id).getWins()) { + int points = players.get(player1Id).getPoints(); + players.get(player1Id).setPoints(points + 3); + } else if (match.getPlayer(player1Id).getWins() < match.getPlayer(player2Id).getWins()) { + int points = players.get(player2Id).getPoints(); + players.get(player2Id).setPoints(points + 3); + } else { + int points = players.get(player1Id).getPoints(); + players.get(player1Id).setPoints(points + 1); + points = players.get(player2Id).getPoints(); + players.get(player2Id).setPoints(points + 1); + } } } diff --git a/Mage/src/mage/game/tournament/TournamentPairing.java b/Mage/src/mage/game/tournament/TournamentPairing.java index b1c76da2d0d..c2976dccb92 100644 --- a/Mage/src/mage/game/tournament/TournamentPairing.java +++ b/Mage/src/mage/game/tournament/TournamentPairing.java @@ -28,9 +28,10 @@ package mage.game.tournament; -import java.util.UUID; import mage.game.match.Match; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -75,4 +76,14 @@ public class TournamentPairing { player2.setEliminated(); } } + + public void eliminateComputer() { + if (!player1.getPlayer().isHuman()) { + player1.setEliminated(); + return; + } + if (!player2.getPlayer().isHuman()) { + player2.setEliminated(); + } + } } diff --git a/Mage/src/mage/game/tournament/TournamentSingleElimination.java b/Mage/src/mage/game/tournament/TournamentSingleElimination.java index a2b35c3b7ed..ed3437c8efb 100644 --- a/Mage/src/mage/game/tournament/TournamentSingleElimination.java +++ b/Mage/src/mage/game/tournament/TournamentSingleElimination.java @@ -28,6 +28,9 @@ package mage.game.tournament; +import java.util.Map; +import java.util.UUID; + /** * * @author BetaSteward_at_googlemail.com @@ -40,6 +43,14 @@ public abstract class TournamentSingleElimination extends TournamentImpl { @Override protected void runTournament() { + + for (Map.Entry entry: players.entrySet()) { + if (entry.getValue().getPlayer().autoLoseGame()) { + entry.getValue().setEliminated(); + entry.getValue().setResults("Auto Eliminated"); + } + } + while (this.getActivePlayers().size() > 1) { Round round = createRoundRandom(); playRound(round); diff --git a/Mage/src/mage/players/Player.java b/Mage/src/mage/players/Player.java index 4151d2f0f0f..60a79475deb 100644 --- a/Mage/src/mage/players/Player.java +++ b/Mage/src/mage/players/Player.java @@ -110,6 +110,7 @@ public interface Player extends MageItem, Copyable { public UserData getUserData(); public void setUserData(UserData userData); public boolean canLose(Game game); + public boolean autoLoseGame(); /** * Returns a set of players which turns under you control. diff --git a/Mage/src/mage/players/PlayerImpl.java b/Mage/src/mage/players/PlayerImpl.java index 5a39ee7a619..89a69954020 100644 --- a/Mage/src/mage/players/PlayerImpl.java +++ b/Mage/src/mage/players/PlayerImpl.java @@ -1440,4 +1440,9 @@ public abstract class PlayerImpl> implements Player, Ser public void setCanPaySacrificeCost(boolean canPaySacrificeCost) { this.canPaySacrificeCost = canPaySacrificeCost; } + + @Override + public boolean autoLoseGame() { + return false; + } }