From 193696f4dc3ee662d3db18b87967405a4a1bbe81 Mon Sep 17 00:00:00 2001 From: MarcUs7i Date: Wed, 6 Nov 2024 22:59:32 +0100 Subject: [PATCH] added checkers for tests --- assignment/chess | Bin 47584 -> 0 bytes assignment/chess.c | 27 ++++++++++++++++++++++----- assignment/chess.o | Bin 16552 -> 0 bytes assignment/chess_main_driver.o | Bin 5288 -> 0 bytes assignment/chess_printer.o | Bin 7560 -> 0 bytes assignment/shortcut.o | Bin 10064 -> 0 bytes assignment/test_chess.o | Bin 39080 -> 0 bytes 7 files changed, 22 insertions(+), 5 deletions(-) delete mode 100644 assignment/chess delete mode 100644 assignment/chess.o delete mode 100644 assignment/chess_main_driver.o delete mode 100644 assignment/chess_printer.o delete mode 100644 assignment/shortcut.o delete mode 100644 assignment/test_chess.o diff --git a/assignment/chess b/assignment/chess deleted file mode 100644 index 214175d924dc7475a2c80478bc2d8d9ef3b796a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47584 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 diff --git a/assignment/chess.c b/assignment/chess.c index 09ac099..a480d14 100644 --- a/assignment/chess.c +++ b/assignment/chess.c @@ -21,10 +21,11 @@ int abs(int value) { } struct ChessPiece get_piece(ChessBoard chess_board, File file, Rank rank) { - struct ChessPiece piece; - piece.color = chess_board[file - 'a'][rank - 1].piece.color; - piece.type = chess_board[file - 'a'][rank - 1].piece.type; - return piece; + if (file < 'a' || file > 'h' || rank < 1 || rank > 8) { + struct ChessPiece empty = {NO_COLOR, NoPiece}; + return empty; + } + return chess_board[file - 'a'][rank - 1].piece; } struct ChessSquare* get_square(ChessBoard chess_board, File file, Rank rank) { @@ -35,6 +36,10 @@ struct ChessSquare* get_square(ChessBoard chess_board, File file, Rank rank) { } bool squares_share_pawns_move(Color color, MoveType move, File filePiece1, Rank rankPiece1, File filePiece2, Rank rankPiece2) { + if ((color == White && rankPiece1 < 2) || (color == Black && rankPiece1 > 7)) { + return false; + } + int rank_diff = rankPiece2 - rankPiece1; int file_diff = filePiece2 - filePiece1; @@ -110,14 +115,26 @@ bool is_square_occupied(ChessBoard chess_board, File file, Rank rank) { } bool squares_share_file(File file1, Rank rank1, File file2, Rank rank2) { + if (file1 < 'a' || file1 > 'h' || file2 < 'a' || file2 > 'h' || + rank1 < 1 || rank1 > 8 || rank2 < 1 || rank2 > 8) { + return false; + } return file1 == file2; } bool squares_share_rank(File file1, Rank rank1, File file2, Rank rank2) { + if (file1 < 'a' || file1 > 'h' || file2 < 'a' || file2 > 'h' || + rank1 < 1 || rank1 > 8 || rank2 < 1 || rank2 > 8) { + return false; + } return rank1 == rank2; } bool squares_share_diagonal(File file1, Rank rank1, File file2, Rank rank2) { + if (file1 < 'a' || file1 > 'h' || file2 < 'a' || file2 > 'h' || + rank1 < 1 || rank1 > 8 || rank2 < 1 || rank2 > 8) { + return false; + } return abs(file1 - file2) == abs(rank1 - rank2); } @@ -154,7 +171,7 @@ bool is_piece(struct ChessPiece piece, Color color, PieceType type) { } bool add_piece(ChessBoard chess_board, File file, Rank rank, struct ChessPiece piece) { - if (is_square_occupied(chess_board, file, rank)) { + if (file < 'a' || file > 'h' || rank < 1 || rank > 8 || is_square_occupied(chess_board, file, rank)) { return false; } diff --git a/assignment/chess.o b/assignment/chess.o deleted file mode 100644 index 72ec27c7373434671dd049ed0742d8aef633688a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16552 zcmbtc4Rlpic0TvLoa8}55(okcg@hj=F!@Cw{Qo`);a7wjPz*20OY$VVWRmv~lt89Y z%v%f=s-tunk!c-Q?P6xls#fVhDMc&JbjF1%rK%+WpdratEgNM$p+B#>%S~_FV>#<9* z^;cKLF06{JzYH~rU26AVIqbhY%YPMO120!H&iSw9UWje&X=~|J(O_H4brmg!;yO_X zsYgXdLEjS{gZ*e`Tgz2Xbogl;u8*FD8-@GP6VL-aC*#pas0X@ZAnVx0>p-fu9w(YY zDj)AQ>D7QMCwecr`WBe)bGiCsG>cq~09PrZH^=DZqm$?q(iq%9ni160{4_ozF8X^h zl8@eo+eLp5^8yvH7y0Xyh;YPZ{dR#^&>e`Ws`j!%!#D z<{SRLz{e{x&P8FB!V;hi-u?+{NhZvDU3e*O-YfpTw)0NAzpu5WukOHUu+b@U=;U0$ zB|Lyxm&m-9pjr84%-Tfel?2VIFJsmuGT%witWIS9Jb@WZWS$kK4{$rrM5dMJ%L$rR zo{3B=&r=DSR-TDWE6?W>G_5>45}58hkH*(@d?&s6tuo^kW!6h9+JoCVw5>BU7VSbC*U?6IyT22*)o$2cJ997b0*t+O*xxnF zf1SzsuYrE);T=7kQCnxW?ABo?)=g_8@nZnLw(0R@ZSiNapl#rV$L&f-qWrp!#oEHAa zA@DC?S*mDSYs(+W{}*4w|Bclm;USj$|0p`Tp)`2Al}< z{auN*lufmB9Bis)-j%{g<3u^PzWeajE|{)8vA1M@dgOd$IGsNqJ&G$7Dsgis`5Vf) zS>+?69f;|AX>3IjZNKq3mKo1rsOa0eoc;uU_6-yG2HE$Ymp5AkdW_>!ldJF`?2TGE zxI?ORyyf7{eJvc`PbK;AXi-T?rZH+s9;WaxR!JT_vs6Zs4uvBs$wyR@L%dYvq~#xj zJ2@;Ez7~%l>KBfk4*euGYz`o!;h(}%w} zcc+l<7*P&gD#HuNr6?M+e$-`?!DrTuw(W#7A~I#=CuVPz~ywL!%$ENk54t>-Djvm z6JEKY78%|aLzNodCK`u7ABJ`J9IGelC{uMr{RK@t&#_vfo?xoR1a$}la0k_j09;PT z_avx8)7(KFDsl&PXt6t}Lu=eYJ;tsY$Z@RbN(UMS`0|~WhnE z_vRbNJ1OA33)}(ky^{krvnw)Sc1<$I!TN_{Ju=Z)s3&`onZ|;dYmvEb&yf}E*;sEJ zU_Co-eI+a%ve%eky)nUhV}kX@MCZ&Pd%zLco0P*gm{S($1QLCA{kEl|nwh*<3sdYq^F|~@QwM2Q3ojpk8 zdL~~sx} z)67O@_MvHW@VJ1Dkp!nLGr^mEXxd$7C^s2irQxkJRI}lgQqs34ti$QD4$Xv}cne1L z8#+X=r_?UfKvam5y@|8jQ)(h_J!a`mN%E*JDqfmH99b$>vXJvqm3A2 zXK-Z=#cS3iH`dR|Q3B&=RN=HzqXU)A%E_d1Vs+)Zl{+wS*vq8T5O!s7rIj~*L5{O9 zb$;raEYCP7=N&fUodL)MIDM0*s?^jasa|+S(fQ8OTSYS`Ih?*GYos$OW!bp>w>pqr zvYVaS&wYrvDPzcm$2f%(e1w}W0Z+q{oFzFasX0k&vKHi^Tuyp89SsjpbSvCHrz6e=3ZCgWYqHS9$Q-pM zs{jHR#R;ThjA793&n;^(mPu?hv3v_yOKS2E)*laP8ZPs|g5yA!`_WD?Y~O-oPJ?U# z^c~0fzw{B<;P}Bm=uD!a^f;3|8RmfrmCU6_t6|0!(B2G3>!==CtJC&qXR%&es3&#n z+;Uy$JEa%a=#joZ(-Rl#8RfbFfCV)=6M(eE+F7eN6l(n`81p1KHF`2Mo*JDGjTeM! z^{spKlyW^2l=5n{<15ey3-vJ16~ml4^7rG`dFL z2Te+iMsQe-4wqAJcscemx9KU*>0ID|<0;sjfSWhDT$jK<1d{S~Nx4n~kF~m_R!=jc zCCI7K>!1M#_d^2?5CjK}pbWj?`Pj=W&{J#mOrXI5MJEpCg98M>!F+H~tetJTpirl` zX&up{w&`IJed{)TTaBLOgPyOgzxyF}X97A5)V;nB^msH6Re;9xtR8D9=LfoQoxbIa z9((3Jye`vSXI$30Ophw?{gC9nzQ5JksBl83@A92V_}|$C>I{_rj9$G&kNZ?lF4ws* z9QimL+w_`3eTxsq@ws^Km|kB9!`r6EmFbK!Q?yfhHpcfR=6P40p5%+_>1BFi*%_VN zjR7Rrz};I@4tFTYaA=aDLb;2F=4CAbo+nYyN#3S673vwjDA+HAe^Y#W^ca*gB!bc&MxLOtp|owLY{XSvQnu|;r$3Bz%t*gb`MJQ&2` zaC~JtbFCiveLcQhPll4s#&xhwD45S_Fc46Y<%N0z)DTA$bx3#7m#LDWGh(P14Z#R) z^LSv%ZVEgYRu$We3TuOriso-e15LqA%S$SXidNPIo15<@pem%A0^wanbT3v9)`cR$ zil&B!UCJmlS2WjwUd66ZxVE`scf+2b#b^X4%%};~2P>*WH8sJeV7ST_L^mq3uQ3QA z&BuruL&2&+11eb$ZnmJL3Fq6Knqf+4%Zeh1IF3YzQ<}a{!p5+R)InJ5Z0IDT-We z#wu0T2dZ{ab)*{()z(EodK0EcVI@`)>rfTqx>LER_9SkGfx5+5ra*P|kYy?=q+v8} znu1s!BdeleE(~U40;~)**EKY%W-K2LlgV}vK}vP4$pK0_uQ?crHdeSwGN7Uqy#n)1 zk?cVXn!!sf!7j4Tv&M|EfykD73gM_G>SFX%zRHG%dPUjOR55v)nTuJ{bgS52d`F^s z|2!rmb5=IgH#DiuI5*?7Za~f|6b?n)MX=UDd_uZL#2Ahjgyv{sC^QbHZa7dx!mMnh zd9x=_9}TLzXyy-`)@lV#JD#1G5^0;sRIwe`0a!VS^pylD8rP`ElT5~!>X zHmen8l4Bu@s3663r<4sq-D0&e&=`p}1!*lq*mD!ZcF#`Etf<(%zy>SdBv8l1CAh<#Zd!QZTD@}R zg6tWqf|a2_n1?!Vb}sk$A(B4-LEm|3vvT%kI^)w)d`ID#a{^%a4=;MJSe~AF$g^@p z@)i&P40(%?30DW+gztHp1dx9p;&9QsRGeQE=kGUcMQ?z@_a-|ifchQG{}fx{dwv(! zKg)c2V;8>nibwRXFrPjT2;Wl{*Y9P1HnzgQm)ItMdiGX|K8*-}dp~~>^XbEk@cnJx zhd^Wkm^81iO3~LO;d>s7``^#{t#1FGhvR(n8mAO}sf+6e4WcnDen!|Ocb|G_xTJ-|O;d^N{Ua}IEP1I0M!V8P*%&+NPl zRmJzhuX_B1-TNz^n7{6(ePibVNZrWe*4KF~1d})TP>hm^XG{D+YalEB2>TUh{tcb2 zH}G8X<jC_aPzfqVElQ!Z=jkxud*TV+9B{qhQPl+ z1b%J^{QV*Do+0p;cwfT!achxryf6g**${X#?^m{+LoPhiW&eZ=$1_3vzT(31*8#yj zyzkleM-72@xbO^@o$b6&q8&HR;&k#MPcAvx@I=Ja|B9LP%LUMgW5@;Y53ez%iQ`PF z+qeVUIDelsz)Z%`4i6C_cpl;A|gKV~{?;ia6{9>%djm-1Y7#FC%K^fMOzBli2Eg`1z4mHLH+&*M7$ z(!&3V>3`=I8;nPuUw?1OOFVrRF7e1YF7=dn#&cZ-mvuMO!e8RN3N8FI#!DENIOREY zqa`o)cUZX0hg}vf^Wh;2Ujntj%lzWnzfYP!no;U8mX~5zF_$`E%`i_f7ikr8NX)XFERazg^yy|{9#VN-yX*0S15_+9iF$Nc^m{^$8k+si% zOTO~n^%F~8@_p07CEs@~T=KnU;gats7B1sX54^7VBjcXV<0IphE8}J1g-p+~@O#;x z@WoD;>wJM$3-WVTXlF9d=o`)M1~6OC8!Ryp_lCaSMM01B2@+#wAX9ul}JW zFL9o+aEbG$7A|qVXWPB|w9mpG?e@)GA9 z3zs-oS-8wsdA|_*zcuAln^|7slf$gO7dyUld1J3I<3(sf! zxfcFg#!D=`f#Y9o;hN?D)WYRF3tG7OGZ&@IACA#qC(!f2uQ|>~EqNKo?^$>m%Xe7# zKCa72#$~+Z``W9Pe0;nt`PrP;e_Hrb#?2ql_MdC_aQ#zKOh@YfJjav4xWtpq^}OAZ zm*o=Fxi z@#I;!#Iw-C<+<@L3-|Io+s3%W!(pm=Oa3g^pVjEOjv-RPZxndhb|xE`h|0&G7*&2{bF<1Pv^rQBt*r=!YZ`z@ z{Xk`9Q*ciLI{;slYvC7Mw@Q5|926DsBVB|mh^}hbO+QxVhZ`cneE2CjuQ`IhiW?)r zx{8`6_(K3w+;4Et23;(btP?S{j63$<({WivOpS*gZXwI!i0K@k#sDum{EmjYyiCLlrHqov4e^>%W5H4F5*Z-jT&meKtg&!Z`!u)ZM z7ju&T3czfe0IART!{Y-M(<0T@A@q0h56*>X%yrrNn}9c1{Ou)1N%S!sjNOhOzYE$n zQS&JK|D`oBwrn-X4(9(f``?Sk;6nd6C2apuz|f||30=A>xxn(gC%E{RwiOtI>F=ih z)<&rVqR6f2Nqck%{f}8+em4{|q9^TNvcB-89d0W!L-a)MN6*M&()Y W+xg>f3WMqYc!AMBZJPMq*8hK>hjP;Z diff --git a/assignment/chess_main_driver.o b/assignment/chess_main_driver.o deleted file mode 100644 index a6a215d935085199c60ae0eae46f6871e0fe57a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5288 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 M_G#5*p1S>i0FGJ?HUIzs diff --git a/assignment/test_chess.o b/assignment/test_chess.o deleted file mode 100644 index 62d7e714e222af66bc314c03df60649dd0bcffc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39080 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 Y`t~Tl{p?dv{U%w+-s39Dw~pWc13J;A?*IS*