PK B META-INF/PK BO#META-INF/MANIFEST.MFManifest-Version: 1.0 Ant-Version: Apache Ant 1.8.3 Created-By: 1.7.0_07-b11 (Oracle Corporation) Main-Class: student.RandomReversiPlayer X-COMMENT: Main-Class will be added automatically by build PK Breversi/PK B~ reversi/Board.class3 #R ST U VW SX YZ[\ R] ^ _` a b cd Se Sfg R Sh ij kl kmn o Vp iq #rs Stu v wxy_board[I()VCodeLineNumberTableLocalVariableTablethisLreversi/Board;getField#(Lreversi/Position;)Lreversi/Field;valueIpositionLreversi/Position;move StackMapTable ExceptionsmakeMove%(Lreversi/Player;Lreversi/Position;)ZplayerLreversi/Player;color legalMoves"(Lreversi/Player;)Ljava/util/List;i$Ljava/util/Iterator;Ljava/util/List;LocalVariableTypeTable$Ljava/util/List;z{ Signature6(Lreversi/Player;)Ljava/util/List;clone()Lreversi/Board;eLjava/lang/Exception;newBoardsu()Ljava/lang/Object;| SourceFile Board.java '(} ~ %&   reversi/InvalidPositionExceptionjava/lang/StringBuilder Position  is out of bounds. ' : 7java/util/ArrayList <z { Njava/lang/Integer GN reversi/Board java/lang/Exception ( GHjava/lang/Objectjava/lang/Cloneablejava/util/Listjava/util/Iterator$java/lang/CloneNotSupportedExceptionreversi/BoardImpl initialBoard()[Ireversi/PositiontoInt()I validPosition(I)Z reversi/Fieldvalues()[Lreversi/Field;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;-(Ljava/lang/Object;)Ljava/lang/StringBuilder;toString()Ljava/lang/String;(Ljava/lang/String;)Vreversi/PlayerBLACK legalPosition(II[I)Z(II[I)V(I[I)Ljava/util/List;iterator()Ljava/util/Iterator;hasNext()ZnextintValuefromInt(I)Lreversi/Position;add(Ljava/lang/Object;)Z copyBoard([I)[IprintStackTrace!#$%&'()> ***  +  ,-./)9+=*.>2YY  +  * +*019,-9234415678)6+>,6*** (24!+46,-69:623 );1#415  @'<=)N+=YN*:!6-W-*% &(=)I*L,+>= 41$(>?N,-N9: A;19<@A 9<B5 @CD'EFGH)L*L+*M,!+ *13 47568+ IJ,-K-5LLMAGN)/*"*+ ,-6OPQPK B}DDreversi/BoardImpl.class3     -    - - -   - - - - - - - - - - - - - -_allDirections[I_emptyI ConstantValue_black_white_outerBLACKWHITE()VCodeLineNumberTableLocalVariableTablethisLreversi/BoardImpl;nameOf(I)Ljava/lang/Character;piece opponentOf(I)Iplayer StackMapTable copyBoard([I)[Iboard allSquares()Ljava/util/List;iresultLjava/util/List;LocalVariableTypeTable%Ljava/util/List; Signature'()Ljava/util/List; initialBoard()[ILjava/lang/Integer;i$Ljava/util/Iterator;/ printBoard([I)Vcolumn rowNumberLjava/lang/String;rowcount(I[I)Iarr$len$countDifference validPosition(I)Zmove legalPosition(II[I)ZdirmakeMove(II[I)V makeFlips(II[II)Vc bracketer wouldFlip(II[II)Ljava/lang/Integer;findBracketingPiecesquareothello((Lreversi/Strategy;Lreversi/Strategy;Z)VstrategyLreversi/Strategy; blackStrategy whiteStrategyprintZ nextToPlay([IIZ)Ljava/lang/Integer;previousPlayeropp anyLegalMove(I[I)ZgetMove(Lreversi/Strategy;I[IZ)I legalMoves(I[I)Ljava/util/List;*(I[I)Ljava/util/List; SourceFileBoardImpl.java <=.●0?   java/util/ArrayList  MN  java/lang/Integer  ' 1 2 3 4 5 6 7 8 [%c=%d %c=%d (%+d)] java/lang/Object CD ef if %2c = FG ./ wx rs yx WX The game is over. Final result: ^_ %2c has no moves and must pass. mn JK lf jk pqreversi/BoardImpljava/util/Listjava/util/Iteratorjava/lang/Stringreversi/StrategycharAt(I)Cjava/lang/CharactervalueOf(C)Ljava/lang/Character;java/util/ArrayscopyOf([II)[I(I)Ljava/lang/Integer;add(Ljava/lang/Object;)Ziterator()Ljava/util/Iterator;hasNext()Znext()Ljava/lang/Object;intValue()Ijava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamformat<(Ljava/lang/String;[Ljava/lang/Object;)Ljava/io/PrintStream;toString(I)Ljava/lang/String;(Ljava/lang/String;)Vprintln -./0123412561278129:125;127<=>/*?@ AB CD>4 ?@  E1 FG>@ ?@  H1I @ JK>1**?@ L/ MN>5YK <X% p p* W*? !""- 3&@ (O1-PQR -PSI  T!UV WX>Sd K<d *O L+ + M*,O*,O*-O*6O*7O*?2 *, -,031:2=4B5G6L7Q9@*O13OY Z[NL/I\] ^_> YSY*SYSY*SY*SW<K hM,>(* h`.6YSWز?. =<@DALBSD[EeFzDI@K@4eE1U+`1L:ab>Nc1L/I>d* ef>)=+N-66-.6?NPQR!P'V@H E1#g/h1 Z1)H1)L/'e1I \\ if>C++d?Z@H1L/ jk>X# X p p?^@ #l1I!@ mn>5,.N-66-.6,?bcf g+h-f3l@H o1 'g/#h1 Z15l15H15L/I \ pq>+,ON-66-.6,?prs$r*u@Ho1"g/ h1Z1+l1+H1+L/I \ rs>*,:6,O`6?x z{| {)@>t1*l1*H1*L/*o1 !uYI v wx>`6,.`,?@4l1H1L/o1t1I yx>",.,. `,?  @*"z1"H1"L/"o1I  {|>L N:/*+:-!W-":#$-%?& ,;?GK@> }~ 1HYL~L~LHL/I \v@ >9>*&*& 'YSW?" 27@*9L/91941I >/ M, , >+(?(*-@* z1 $Z[/H1/L/I  ]  >4,%*,)*6+,(,,?'+2@44}~4H14L/4l1I" >CYM N- *- 6+(, W,?(2>A@4(l10Z[CH1CL/;PQR ;PSIT],U=>H0 YOYOYOYOYOY OY OY O?PK BFyTreversi/Field.class35 ' ()* + , - . / 01EMPTYLreversi/Field;BLACKWHITE$VALUES[Lreversi/Field;values()[Lreversi/Field;CodeLineNumberTablevalueOf#(Ljava/lang/String;)Lreversi/Field;LocalVariableTablenameLjava/lang/String;(Ljava/lang/String;I)Vthis Signature()V!Ljava/lang/Enum; SourceFile Field.java  23 reversi/Field 4     java/lang/Enumclone()Ljava/lang/Object;5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;@1@@@ "  5 *  1*+  !"#"]AY Y  Y  Y SY SY S '!$%&PK B\w reversi/HumanStrategy.class3< $%& '( ) * + ,-./01()VCodeLineNumberTableLocalVariableTablethisLreversi/HumanStrategy;move(I[I)IreaderLjava/io/BufferedReader;lineLjava/lang/String;exLjava/lang/Exception;playerIboard[I StackMapTable. SourceFile Reversi.java java/io/BufferedReaderjava/io/InputStreamReader2 34 5 6 789 :;java/lang/Exceptionreversi/HumanStrategyjava/lang/Objectreversi/Strategyjava/lang/SysteminLjava/io/InputStream;(Ljava/io/InputStream;)V(Ljava/io/Reader;)VreadLine()Ljava/lang/String;java/lang/IntegerparseInt(Ljava/lang/String;)I   /*  !YYN-:N > !!! ^!"#PK B\||&reversi/InvalidPositionException.class3 (Ljava/lang/String;)VCodeLineNumberTableLocalVariableTablethis"Lreversi/InvalidPositionException;messageLjava/lang/String; SourceFileInvalidPositionException.java  reversi/InvalidPositionExceptionjava/lang/Exception!>*+    PK B(Rg  reversi/Player.class35 ( )*+ , - . / 01BLACKLreversi/Player;WHITE$VALUES[Lreversi/Player;values()[Lreversi/Player;CodeLineNumberTablevalueOf$(Ljava/lang/String;)Lreversi/Player;LocalVariableTablenameLjava/lang/String;(Ljava/lang/String;I)Vthis Signature()Vopponent()Lreversi/Player; StackMapTable+"Ljava/lang/Enum; SourceFile Player.java  23reversi/Player 4    java/lang/Enumclone()Ljava/lang/Object;5(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;@1 @ @ "  5 *  1*+  !H*  " B#$J.Y  Y  YSYS %&'PK BJ4reversi/Position.class36 % & '( %) * + , -. /0_xI_y(II)VCodeLineNumberTableLocalVariableTablethisLreversi/Position;xygetX()IgetYtoString()Ljava/lang/String;fromInt(I)Lreversi/Position;positiontoInt SourceFile Position.java 1  java/lang/StringBuilder 23 24 25 reversi/Position java/lang/Object()Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;(I)Ljava/lang/StringBuilder;(C)Ljava/lang/StringBuilder;! Y***   /*  /* N$Y*`a*`  $  > Y ld pd  !"; *`h*`` #$PK B_t=llreversi/RandomStrategy.class3: " #$% " &' ( &)* +,-.()VCodeLineNumberTableLocalVariableTablethisLreversi/RandomStrategy;move(I[I)IplayerIboard[ImovesLjava/util/List;randomLjava/util/Random;LocalVariableTypeTable%Ljava/util/List; SourceFile Reversi.java / 01java/util/Random2 34 56 78java/lang/Integer 94reversi/RandomStrategyjava/lang/Objectreversi/Strategyreversi/BoardImpl legalMoves(I[I)Ljava/util/List;java/util/Listsize()InextInt(I)Iget(I)Ljava/lang/Object;intValue   /* ',NY:-- 4'''! ! !PK BtL()VCodeLineNumberTableLocalVariableTablethisLreversi/Reversi;main([Ljava/lang/String;)Vargs[Ljava/lang/String; SourceFile Reversi.java reversi/HumanStrategyreversi/RandomStrategy reversi/Reversijava/lang/Objectreversi/BoardImplothello((Lreversi/Strategy;Lreversi/Strategy;Z)V!  /* !   AYY #$ PK BEareversi/ReversiPlayer.class3 ()VCodeLineNumberTableLocalVariableTablethisLreversi/ReversiPlayer;init(Lreversi/Player;)VgetMove()Lreversi/Position; opponentsMove(Lreversi/Position;)V SourceFileReversiPlayer.java reversi/ReversiPlayerjava/lang/Objectclient/PlayerImpl!/*   PK BTFhh#reversi/ReversiPlayerProtocol.class3d Be Afg Ahi Aj Akl Am +n op qrstuvwxyz +{ %| %}~     %  4 % + A  4  A_playerLreversi/ReversiPlayer;(Lreversi/ReversiPlayer;)VCodeLineNumberTableLocalVariableTablethisLreversi/ReversiPlayerProtocol;player gameStart()V StackMapTable gameUpdate(Lutil/Message;)VnameLjava/lang/String;colorLreversi/Player;mvLjava/lang/Integer;moveLreversi/Position;poljeLjava/util/ArrayList;mLutil/Message;response~ SourceFileReversiPlayerProtocol.javareversi E reversi/ReversiPlayer CDIgra zapoceta! N+Student mora naslediti klasu ReversiPlayer! N start playfault opponent-playopponent-faultlostwondrawerrorquit java/lang/Stringreversi/Player java/lang/StringBuilder ENZapoceta partija protiv . Greska u protokolu!(start)java/util/ArrayList   util/Messageplayed E Igrao potez na polju  Greska pri izboru polja za igru!Greska u protokolu!()java/lang/Integer Protivnik odigrao na polju ,Protivnik pogresio pri izboru polja za igru!Partija izgubljena Partija dobijena !Partija neresena  Igra zavrsena.reversi/ReversiPlayerProtocolclient/PlayerProtocol((Lclient/PlayerImpl;Ljava/lang/String;)VpiLclient/PlayerImpl;debug(Ljava/lang/String;)VgameLoop gameShutdown getFormat()Ljava/lang/String;hashCode()Iequals(Ljava/lang/Object;)ZgetList()Ljava/util/ArrayList;sizeget(I)Ljava/lang/Object;init(Lreversi/Player;)Vappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;toStringgetMove()Lreversi/Position;reversi/PositiontoIntvalueOf(I)Ljava/lang/Integer;add*(Ljava/lang/String;Ljava/util/ArrayList;)Vwrite(Ljava/io/Serializable;)VintValuefromInt(I)Lreversi/Position; opponentsMove(Lreversi/Position;)Vclient/PlayerProtocol$StateState InnerClassesGAMEOVERLclient/PlayerProtocol$State;state!ABCDEFG@*+H   IJKLDMNGy-***** * * H "(,I -JKO"PQGZ+ :6 ̖/-D2$44j5"O:"zbZ ; 66z6tj6dZ6TJ6D:63)6"6 6 5<e;+m+b+T+F+:+:**Y !!"!#*$%Y&:*'N-()*W+Y,-M*,.*Y/!-0!"!#++ *1*Y2!+ !3!#+\+Q+4C+4:56N*-7*Y8!-0!"!#$*Y2!+ !3!#++ *9*Y2!+ !3!#+E+:+,*Y:!+!"!#}*Y2!+ !3!#[+E+:+,*Y;!+!<!#*Y2!+ !3!#+E+:+,*Y=!+!"!#*Y2!+ !3!#+.+#+*+S*Y2!+ !3!#1>?*@"*Y2!+ !3!#H5!@#n${%&'()*,-./012 45%7D8G:g;t<}=>?@ACDFGI%JNLmMpOPRSUV$XCYF[f\x^_abcegIR{3RS&TUt0VWXYZ[JK\]^]OKh_`a 6pP!_!!H!H!H!1!_`bc B@PK B  reversi/ReversiPlayerStats.class38 ./ 0 1 2 3 4 567_nameLjava/lang/String;_winsI_draws_losses_errors_points()VCodeLineNumberTableLocalVariableTablethisLreversi/ReversiPlayerStats;getName()Ljava/lang/String;setName(Ljava/lang/String;)VnamegetWins()IincWinsgetDrawsincDraws getLosses incLosses getErrors incErrors getPoints addPoints(I)Vpoints SourceFileReversiPlayerStats.java      reversi/ReversiPlayerStatsjava/lang/Object!    j$*******"  # $/* >*+   /* !9 *Y` ! "  " /*% #9 *Y` ) *  $ /*- %9 *Y` 1 2  & /*5 '9 *Y` 9 :  ( /*= )*C *Y` A B  +,-PK Bz]`reversi/Strategy.class3 move(I[I)I SourceFile Reversi.javareversi/Strategyjava/lang/ObjectPK B AMETA-INF/PK BO#+META-INF/MANIFEST.MFPK BA)reversi/PK B~ Oreversi/Board.classPK B}DDv reversi/BoardImpl.classPK BFyT#reversi/Field.classPK B\w 'reversi/HumanStrategy.classPK B\||&+reversi/InvalidPositionException.classPK B(Rg  -reversi/Player.classPK BJ41reversi/Position.classPK B_t=ll6reversi/RandomStrategy.classPK BtL