From 427986f599228d914467ca97de03d2bf60ed6fb7 Mon Sep 17 00:00:00 2001 From: Ziedelth Date: Wed, 6 Apr 2022 11:15:55 +0200 Subject: [PATCH 1/3] Add render --- App.xaml | 3 +- App.xaml.cs | 23 +++--- AssemblyInfo.cs | 2 +- Models/Game.cs | 38 +++++---- Models/Grid.cs | 57 +++++++------ Models/Tetrominoe.cs | 168 ++++++++++++++++++++++----------------- Resources/icon.ico | Bin 0 -> 17671 bytes Resources/tetris.png | Bin 0 -> 48975 bytes Tetris.csproj | 8 ++ Views/GameWindow.xaml | 11 +++ Views/GameWindow.xaml.cs | 17 ++++ Views/MainWindow.xaml | 8 +- Views/MainWindow.xaml.cs | 46 ++++++----- ViewsModels/ViewModel.cs | 12 +-- 14 files changed, 229 insertions(+), 164 deletions(-) create mode 100644 Resources/icon.ico create mode 100644 Resources/tetris.png create mode 100644 Views/GameWindow.xaml create mode 100644 Views/GameWindow.xaml.cs diff --git a/App.xaml b/App.xaml index 5ac26ee..fd080c9 100644 --- a/App.xaml +++ b/App.xaml @@ -1,9 +1,8 @@  - + \ No newline at end of file diff --git a/App.xaml.cs b/App.xaml.cs index 3213dd3..e0d82d7 100644 --- a/App.xaml.cs +++ b/App.xaml.cs @@ -1,15 +1,10 @@ -using System; -using System.Collections.Generic; -using System.Configuration; -using System.Data; -using System.Linq; -using System.Threading.Tasks; -using System.Windows; +using System.Windows; -namespace Tetris { - /// - /// Interaction logic for App.xaml - /// - public partial class App : Application { - } -} +namespace Tetris; + +/// +/// Interaction logic for App.xaml +/// +public partial class App : Application +{ +} \ No newline at end of file diff --git a/AssemblyInfo.cs b/AssemblyInfo.cs index b9d746b..4a05c7d 100644 --- a/AssemblyInfo.cs +++ b/AssemblyInfo.cs @@ -7,4 +7,4 @@ using System.Windows; ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located //(used if a resource is not found in the page, // app, or any theme specific resource dictionaries) -)] +)] \ No newline at end of file diff --git a/Models/Game.cs b/Models/Game.cs index a72d73c..e236529 100644 --- a/Models/Game.cs +++ b/Models/Game.cs @@ -1,37 +1,43 @@ -using System; -using System.ComponentModel; +using System.ComponentModel; namespace Tetris.Models; -public class Party : INotifyPropertyChanged { - public event PropertyChangedEventHandler PropertyChanged; +public class Party : INotifyPropertyChanged +{ + private int _score; - private String _userName; + private string _userName; - public String UserName { + public Party(string userName) + { + _userName = userName; + } + + public string UserName + { get => _userName; - set { + set + { _userName = value; OnPropertyChanged("UserName"); } } - private int _score = 0; - - public int Score { + public int Score + { get => _score; - set { + set + { _score = value; OnPropertyChanged("Score"); } } - public Party(String userName) { - _userName = userName; - } + public event PropertyChangedEventHandler PropertyChanged; - protected virtual void OnPropertyChanged(string propertyName) { + protected virtual void OnPropertyChanged(string propertyName) + { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } -} +} \ No newline at end of file diff --git a/Models/Grid.cs b/Models/Grid.cs index b98cb0c..1e1504f 100644 --- a/Models/Grid.cs +++ b/Models/Grid.cs @@ -1,44 +1,49 @@ -using System; -using System.Drawing; -using Color = System.Drawing.Color; +using System.Drawing; -namespace Tetris.Models; +namespace Tetris.Models; -public class Grid { - private Color[,] _grid; +public class Grid +{ + private readonly Color[,] _grid; - public Point MinGrid => new Point(0,0); - public Point MaxGrid => new Point(_grid.GetLength(0)-1, _grid.GetLength(1)-1); - - public Grid(Color[,] grid) { + public Grid(Color[,] grid) + { _grid = grid; } - public bool CanGo(Tetrominoe tetrominoe, Point point) { - bool[,] shape = tetrominoe.Shape; + public Point MinGrid => new(0, 0); + public Point MaxGrid => new(_grid.GetLength(0) - 1, _grid.GetLength(1) - 1); + + public bool CanGo(Tetrominoe tetrominoe, Point point) + { + var shape = tetrominoe.Shape; if (point.X < MinGrid.X || point.Y < MinGrid.Y) return false; - - else if ((point.X + tetrominoe.Shape.GetLength(0)) > MaxGrid.X || (point.Y + tetrominoe.Shape.GetLength(1)) > MaxGrid.Y) + + if (point.X + tetrominoe.Shape.GetLength(0) > MaxGrid.X || point.Y + tetrominoe.Shape.GetLength(1) > MaxGrid.Y) return false; - + for (uint x = 0; x < shape.GetLength(0); x++) - for (uint y = 0; y < shape.GetLength(1); y++) { - Point s = point + new Size((int) x, (int) y); - if (shape[x, y] && _grid[s.X, s.Y] != Color.Empty) - return false; - } - + for (uint y = 0; y < shape.GetLength(1); y++) + { + var s = point + new Size((int)x, (int)y); + if (shape[x, y] && _grid[s.X, s.Y] != Color.Empty) + return false; + } + return true; } - public override string ToString() { - String s = ""; - for (uint y = 0; y < _grid.GetLength(1); y++) { + public override string ToString() + { + var s = ""; + for (uint y = 0; y < _grid.GetLength(1); y++) + { for (uint x = 0; x < _grid.GetLength(0); x++) - s += _grid[x,y].Name + "\t"; + s += _grid[x, y].Name + "\t"; s += "\n"; } + return s; } -} +} \ No newline at end of file diff --git a/Models/Tetrominoe.cs b/Models/Tetrominoe.cs index b793280..5d6227b 100644 --- a/Models/Tetrominoe.cs +++ b/Models/Tetrominoe.cs @@ -1,65 +1,22 @@ -using System; -using System.ComponentModel; +using System.ComponentModel; using System.Drawing; -namespace Tetris.Models; - -public class Tetrominoe { - public event PropertyChangedEventHandler PropertyChanged; - - private Grid _grid; - - private bool[,] _shape; - public bool[,] Shape { - get { - bool[,] shape = (bool[,]) _shape.Clone(); - for (int i = 0; i < _orientation; i++) - shape = _rotateLeft(shape); - return shape; - } - } - - private Point _coordinates; - public Point Coordinates { - get => _coordinates; - set { - if (! _grid.CanGo(this, value)) - return; - _coordinates = value; - OnPropertyChanged("Coordinates"); - } - } - - private short _orientation = 0; - public short Orientation { - get => _orientation; - set { - if (value > 3) - value = 0; - else if (value < 0) - value = 3; - - short oldOrientation = _orientation; - _orientation = value; - - Point newCoords = _coordinates; - //ToDo edit position ? - //ToDo move position when hot a wall - - if (!_grid.CanGo(this, newCoords)) { - _orientation = oldOrientation; - } else { - OnPropertyChanged("Orientation"); - } - } - } +namespace Tetris.Models; +public class Tetrominoe +{ private Color _color; - public Color Color { - get; - } - public Tetrominoe(Grid grid, bool[,] shape, Point coordinates, short orientation, Color color) { + private Point _coordinates; + + private readonly Grid _grid; + + private short _orientation; + + private readonly bool[,] _shape; + + public Tetrominoe(Grid grid, bool[,] shape, Point coordinates, short orientation, Color color) + { _grid = grid; _shape = shape; _coordinates = coordinates; @@ -70,44 +27,104 @@ public class Tetrominoe { // ToDO: ascpect technique test } - private bool[,] _rotateLeft(bool[,] shape) { - bool[,] rotatedArr = new bool[shape.GetLength(1), shape.GetLength(0)]; - - for (int i=shape.GetLength(0)-1;i>=0;--i) - for (int j=0;j _coordinates; + set + { + if (!_grid.CanGo(this, value)) + return; + _coordinates = value; + OnPropertyChanged("Coordinates"); + } + } + + public short Orientation + { + get => _orientation; + set + { + if (value > 3) + value = 0; + else if (value < 0) + value = 3; + + var oldOrientation = _orientation; + _orientation = value; + + var newCoords = _coordinates; + //ToDo edit position ? + //ToDo move position when hot a wall + + if (!_grid.CanGo(this, newCoords)) + _orientation = oldOrientation; + else + OnPropertyChanged("Orientation"); + } + } + + public Color Color { get; } + + public event PropertyChangedEventHandler PropertyChanged; + + private bool[,] _rotateLeft(bool[,] shape) + { + var rotatedArr = new bool[shape.GetLength(1), shape.GetLength(0)]; + + for (var i = shape.GetLength(0) - 1; i >= 0; --i) + for (var j = 0; j < shape.GetLength(1); ++j) + rotatedArr[j, shape.GetLength(0) - 1 - i] = shape[i, j]; return rotatedArr; } - - public void RotateLeft() { + + public void RotateLeft() + { Orientation -= 1; } - public void RotateRight() { + public void RotateRight() + { Orientation += 1; } - public void GoRight() { + public void GoRight() + { Coordinates += new Size(1, 0); } - public void GoLeft() { + public void GoLeft() + { Coordinates -= new Size(1, 0); } - public void GoDown() { + public void GoDown() + { Coordinates += new Size(0, 1); } - - protected virtual void OnPropertyChanged(string propertyName) { + + protected virtual void OnPropertyChanged(string propertyName) + { if (PropertyChanged != null) PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } - public override string ToString() { - String s = ""; - for (uint y = 0; y < Shape.GetLength(1); y++) { + public override string ToString() + { + var s = ""; + for (uint y = 0; y < Shape.GetLength(1); y++) + { for (uint x = 0; x < Shape.GetLength(0); x++) if (Shape[x, y]) s += "x"; @@ -115,6 +132,7 @@ public class Tetrominoe { s += " "; s += "\n"; } + return s; } -} +} \ No newline at end of file diff --git a/Resources/icon.ico b/Resources/icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..1aaab2116266631ce047a8d9aaf9065c94c82a7a GIT binary patch literal 17671 zcmZr%byQT{*S-_L4BZ_=w}6yL4W%?lNrSX>NJ$MT9g@;0-5nw@C@m$@IZ7(6()IEF z{{HT)yXMTAdus2q_kQ+s&IJI_{pY_61R#K8MF60@FUM$WJ|)1V#l0^Qs3n4geI}RTSm){1*3voT~YU^;g>}&t$fj2S42mhz(c@+VMq0;MC-jmMq7( zF&?Nsurs+;nqepxsm>o(MMbvIA<{?Ka)MkO;Lvm`TzShuv6SA1F;uw4JoeI;_(9?P zBd#4!g@;6ANfs4Wo*+_Z*G2IwdqPz6MQ37}sUhfr)3i z_j0>aAM&~{$z14QltS`$7@B)Rv`JKoo^Fwgxcm$}EtE4VfR|Ku&hBp3ai3I5hR%GA zJZEU>5l}7=E7|{4jpr0O;3KrrOuyw*9|PVw1xwD zM6`T{ixFSL{&eYuJ`{a}bRdruk~O&>JvIzQV>*ZVctCrsbtMOI$r zb&a@6{?$+-v=2N8TiZD!2J_i2$zGv@1aN})^U!C~pieat(>w%{D&R<y{b2WtSQc;f+coJdYT=D+kzJIYJvpS|$MPlSrh9{rGJ{&OV; z8)AtI!gL3O)_r4|$kp{xjm54Xd#@*{2Fl61(Q15*J`J#gmAr-`fMgwn8l;e*CFN=0 z+$`{E&f0a1*HanUYC6e7ShJ~pFN85lQeYlsK?bbPYRRb-D2#q}YYC#Wsjp|UC@P;E zyLEcQgbO0?=qO|@%#%|g-uroCr0Eee9I+g}NxX+FS3G@QZd*ya!8fYP0BIazj1>L`BW5-zBA-xCAv zgnZm$?ozqE+}YHF#~_GH4-LQ+P`flP4=A-}LjLgpO7!|tB+GQV0SRquU9CpF^|Om^ zqB|>M+}l@sF9VoSEGB)xa!rK^WT6a8-E8hG@6cQ}gNBv-mpFSgx6PJ1J9fd!VK&ej zqjRs3Sy=BO^dEsAEhu*0S8BoY{agbibniT*fJ{(HxnqA-(VdtcJYVY2f8YJ%LI;ZU z^w=;5XJAsrXOp1tXZg1pG0S&A+v3;p6l-Z0bn`L38Z*j;f|od&#p#zWjCn3)NFpS_ z02HW+)+k?)`tyi>lIWn9rQ8ZkzQE(50cfIbieL2TvO@M5yxpT;SkgMfj;y;UQmjo4 zK)4`h?sGb+*Qa20P~f<)XI`{98JY@aV<7M_52b7AXSFkM1||n{dFJ$w;GmBrw;Z6T z!SPFaKUo--&(E7kSIMWIH0mHhEeE%qlIqq>Wi*QkcWwin;GBftTe*Y9$u84{qEnjh z7-#@UQx&#w^Picv!i|Ig8BT-?u%~+sKuBTp->OA{j|3Nh)wukcIqE+x=*+{Ro*Jms zzS$%XE)HR^k{Coo1uizTlmtD(8H^>XCq^5@a$|47u@Wypfyj4zD@1{Fn?5T~^;c-c7>Foxnk!;-WPSu^z$w|0x$b0QZa2$Pg04Sq)YfqLMEd zjCFbYfMClDnoVPXu?a=$&fe{dVOy}0)>7UJTCLx?TnO`L><{|YiEJkUWAX`51}}V` z@P>wOlRu_eQY9G3Xyk)Xmb(O!ANX9V@29cX@%Cz{JYRqag(%Ib-(Ec=slH zgPub?{E8aIhc~mgyLp>fy=YG(F-Z@R87$EX!Y#PP;CQ$+ppa|D+)!;B-UxLzOB)I_YDRqb8Rl;qzb4$h z<7Ep)b-l&awX(P6M-?_=7J&H0AqMblK!0I62N;8n)qyrU(cB*ElwfNgl0}=JSTY}t@=EBhqu!G8*-nIbyp;wdgu5?H^e9fxPPLhs z)|;5FsPp~KUsR{lmS5XTf(wb!v$!NFF}g`J*#8*fY=J}xBJ0Aq6hP{0S{Lz_qDDCV zFqUj|eOnt&Z+un3tq9{?AE*1PKzeUfzBefsw7$eja%l)upo|K1#LCZAmUauiL3Vom zq0|I*`64Flvh*nu1F)4+8-Wn&EQqd`k?Px)IpH?-|MzTKr}f5WXsGf0IR4GzBq$q7+FilO*P(DUHFel3L`{fN@a!-{1Q5H@!^w zXxWy>9-dtVG$)=hs;W|03JJrX*ibFOH2@#LS2GbFqwrs(iwmsNIDEI2ED6|4H{>O*3e{IbWZ}`1ajR zV&&zOWXZL82Q$VkjO&q5GI=)5sh#5d<^XZu;yxZJt^v^lsP=|f^y?q1t2b*y*8!d( zA+0#>SjjHf?Uu?nd0wtNUHiwrcVc(rSsvR~p<27_J)L&Kqi3g!P7&&v_xfRAVk~Z!fmH&ik8GVX&^E z(#9t?LjzBLHko2NSy%N_Oi*x;F`xTCG{my2>foBe7ejNlM#SQn8kVR^@IW!g!N%j_ zVXf>XS7L@*H1afma*vSUIzwG5=nJFHw2kB!8bgu)EePyQV;r!)gPp(+n!Yp@zvM9t8&BkXmDbKP_Q#hrnN=V3*AE2*V-%QNIx?7$vG zD}df_dmH8Z;gEG%g&SI*jz8H4N=`Qt7m3?)gmi?w>B|dRI(vN9b90q0^PqY{c`dUZ zHK8iU$ne5@6PNONt!0qk`~aCAVM%3$yz*^^q9<3RqGJ z``)3G+yQXAcyq(_oaQag?&CX-bR`KZfZ%p+<_I` z?L1|sid&86eYiyYabjLN>Xsl>#yaVtA(~&2zGzfX8z!Fi53&#T1#x^^nshA(_l zM<-XX7V443*x%K#{#|^ZM+lR@i<(N@EMMfF+zbne|1My_%1oi|P1yvc0M9=G6N7ix zt))(fwXCo$69>k{>U<_?CjttQoLI=m9F{{^g~QeBj#xtg9dlPK2}CM6|Jcg_2;7&d z(t%mV^*aY`0@@gmle0mh3sGVUYQnrtcyG&Z-fIk%1}APh(MLfClFjc?ZJSx3|E`rV z&qGuenM76ZbNyyo)Ctl`%SY{~(fY)z6S}%0~3*|`7CT0;~icfpA(IhxI}y_>FKw zlYJOD87A#*7!khEk-8|}UXSj0$9()JI2rne|4Fd12>DS!iNn37JXu(p*2RF+d371A zYiqrI;-USCfh=I?)9t+2_h_eleQsKGhT79K7siOj*!FV%yEKo7a5z7StK>S-~q-z|uMTXkPI{ZRt{_}_zT2D7WL0@fspN`oicV^^61}eJ4 z$j^0o@sw~udm<7Wx6(6ID0M+rkZS0s^9b(XSfQDuxF_28;|dKLxxC;|MwA}l#ry7* z)D|qY3SqQBUFSe-u47pH0$cJ&?Bqn;(kqNqUdN4jQ78SAVp%EeOIjE zuz~B<`2han{~C+GicFpESt`unX(ZvhExNZ^d&GL!YDRLTYWXN2*6G<4wv zHfhim#hDVnPpGf*SuA~*90oU+_FwgC(G;G6=twY8cCWwtPW@72ilG2=HKwy6M57%= zxO;<){FCLtMH3{-ydq(p=l2 zKQ@(`+0JQ365uz%SRqFewn`L5Fbnbda&hzAjcqqF^zXEa7&k)R=L2hUP{-dQ3 zuX|%$QU*k$f`I^oF_3#a{s7+?!DLy%A z*l4^hcEkSlS9Sp5wv|L8@5mv>ff6!8Y0?cP^wD*)W$lXBGh~Rt=M$0ZXsN2wduPs{ zb`h8uP^HR0yE~!>Z52gv!(}{E?Mo{U+7ZHHH()d_S^_v@Q;rs{Bl>qkROF=}QEe(4 z+dMSl01}P*8gcJ0mLHHD2KfZ9dz@asyn zxJh8o3$oDT&Rlkv`&pjCRZ5OrF$BDYADPb2)c$FpT*!TABfqb@ICiQjwrZix8SVqt zhR=%_>PLP8N5Z1oK@vx)uG*7gVv8qzbto++V1mUmBu9F$meO+HCHjK(J|;A@3vrhH z>V2ou46Z)|js`>#-T3F?^HyMYYpg9m27K*9`$xdx&jkr2m$tM0U`?Rvl>ZF0!&pK3TK0Hh{p(@K zn812EQ6Oy+F#ogwqxB_Rq)X~MTWcB4`^k`;{!o_!L!wt#MBhj<8Aj?8CO-GQ81ueL z{B|xjH~VOjCdLsMC4MtMxL0+{J-sKDwX6QSJqBtSyh<#G_X}5;{dnFagy|mRU(W?! zyg8CJ|BH7Xz~l!j_(t@-FBC(bj54}xgY0cx+6v%0S6NItOgRxS7WO1Jj2+-BXv(yq z-yMURd1drKjzL%_zi|y~asr--|?QDSDpe^d=&0$E9cqbcZl0vr?vRQ z3yl3yy?0$%Bvk!s&kqsfS~u3Z-SqFBSsAlhCWGY00KtB4aV|=6{{gAINz-iN-%sgD z{Va?+v)RpNPoE1S(efazPCAR5EhhB6LfSAmw`=xCh>!dyq)Sy{A0gjLWddX;Tfy9v zGdUy3ZhjZvGl_lYgJdpH@+^@3;G2-n^q<}uim9%{Cnf(h9SC6>RF;bFp(mc07LAsv1p5FvFsANZ%pl`SR#QxDT6f$1entYkjBWnRwIy@ zqbX!MLWqFg;hw?<4=Jp+UderS+2C+49KBSERc8ja?6PgQWbsop622b;0{m`;ih{@ol#`ty0Qa<@$_m`gAq zmSbh)6_LtkZdzmtOAaUS6=!ne=QwaN)>kABgBj!>$%B<*ofCmveH7(gn>7V`7Mx_W`N*sPKMLqyTj>S=c|8&>?uAWQ=wrJeZ}P z$WsV%-y#=Cdlz!V2eArI<+sl#TO=6LyN}F6rEoMN-v2$>k=;A&@ZoM}Y#yBr4q{Yf zyKXW`c{P}lyHN!!$brgp8O*bF)7MTe(@yPTpfW`H5AKrw3RH8yI(EsFTST(0z{Q=ZD!G#*zbH~85 zkvTbvPM{G-hfW&hB8UGT3ImoOn^ps)m;3zK?{f0!HO)|B#trwoD|9SCf|T7LG#a|> zN2GfY)8O;3w=O8vfUS^6tNA~ ze}e1cf(kS6|7#+AN&O6OJ+reYE&-7_9H0QU&lj$>J@j%`FO*XV&gecza56()ZJE` ztlg$F^}7Z3>K=QyeDX(Y;wmMM0YZ>IP$8QFKd3TP@)RWv&#kJ*c4xQ`zCyG~y{#iP zi!VHy7F`40;GX1Lfs?O7qv*D9GwNG<3Nd>5880(j(v`(1Wlui zNv5r^{5Q{pBp>xXl?kBg-sP|R^4H>ev)#`%>hIOG=qDE{iNisW;Jt(^&v)MTwN3*8 zvhV9(|6J*j&P=)<^qRQdT6;YlR}ieNFJC6Xy!$c7%3|aS*W_2`f|a>4Z2Hk-;jxlzgDVLG*;3e*1ebjE1wA9~=wS>4)f+^>#HSyj&8)rNGlvTsM zgkfAX{`0jnpj{>+?6cV!?sd4^jn%0Aw6h(w=r3`iQASqdZtq`)HdIl!IysuD3S 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 b(-TA)Z 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 true net6.0-windows + Resources\icon.ico + + + + Always + + + diff --git a/Views/GameWindow.xaml b/Views/GameWindow.xaml new file mode 100644 index 0000000..66e917f --- /dev/null +++ b/Views/GameWindow.xaml @@ -0,0 +1,11 @@ + + + + + \ No newline at end of file diff --git a/Views/GameWindow.xaml.cs b/Views/GameWindow.xaml.cs new file mode 100644 index 0000000..236afea --- /dev/null +++ b/Views/GameWindow.xaml.cs @@ -0,0 +1,17 @@ +using System.Runtime.InteropServices; +using System.Windows; + +namespace Tetris.Views; + +public partial class GameWindow : Window +{ + public GameWindow() + { + AttachConsole(-1); + InitializeComponent(); + // new GameManager((int)Width, (int)Height, ImageControl); + } + + [DllImport("kernel32.dll")] + private static extern bool AttachConsole(int dwProcessId); +} \ No newline at end of file diff --git a/Views/MainWindow.xaml b/Views/MainWindow.xaml index 805184a..8993ed9 100644 --- a/Views/MainWindow.xaml +++ b/Views/MainWindow.xaml @@ -3,12 +3,14 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:local="clr-namespace:Tetris" xmlns:viewsModels="clr-namespace:Tetris.ViewsModels" mc:Ignorable="d" d:DataContext="{d:DesignInstance viewsModels:ViewModel, IsDesignTimeCreatable=True}" Title="MainWindow" Height="450" Width="800"> - + +