From 8d2259b6c7f58b8e35a84514102536ffa847495a Mon Sep 17 00:00:00 2001 From: Strangedusk Date: Tue, 5 Jul 2022 23:57:19 +0200 Subject: [PATCH] Basic rotation --- .gitignore | 1 + src/cell.zig | 9 +++---- src/color.zig | 12 ++++++++++ src/grid.zig | 3 ++- src/piece.zig | 22 ++++++++++++++---- .../h/8fb74d559dd889eac55495e9f1d9dc64.txt | 12 +++++----- zig-cache/z/18bf8a0b5cb3a5ab6b683e3ac9c65cf4 | Bin 2832 -> 3605 bytes zig-cache/z/384d4ba1b69a9cf4cc6dc5735e3eafba | Bin 1031 -> 909 bytes zig-cache/z/45051dac5d5fe5c1374af955d57dc1a3 | Bin 7887 -> 8161 bytes zig-cache/z/a4146a97860546c83bdbfe47a036b0af | Bin 18727 -> 19840 bytes 10 files changed, 41 insertions(+), 18 deletions(-) diff --git a/.gitignore b/.gitignore index b4f0029..f7a9913 100644 --- a/.gitignore +++ b/.gitignore @@ -88,3 +88,4 @@ tags zig zig-out zig-cache +zig-cache/* diff --git a/src/cell.zig b/src/cell.zig index cd857c5..71c8aab 100644 --- a/src/cell.zig +++ b/src/cell.zig @@ -1,6 +1,8 @@ const std = @import("std"); const SDL = @import("sdl2"); +const Color = @import("color.zig"); + const Self = @This(); free: bool, @@ -9,11 +11,6 @@ color: SDL.SDL_Color, pub fn init() Self { return Self{ .free = true, - .color = SDL.SDL_Color{ - .r = 0x00, - .g = 0x00, - .b = 0x00, - .a = 0xFF, - }, + .color = Color.dark_grey, }; } diff --git a/src/color.zig b/src/color.zig index 71c665d..f64a5b3 100644 --- a/src/color.zig +++ b/src/color.zig @@ -42,3 +42,15 @@ pub const purple = SDL.SDL_Color{ .b = 203, .a = 255, }; +pub const dark_grey = SDL.SDL_Color{ + .r = 40, + .g = 40, + .b = 40, + .a = 255, +}; +pub const light_grey = SDL.SDL_Color{ + .r = 80, + .g = 80, + .b = 80, + .a = 255, +}; diff --git a/src/grid.zig b/src/grid.zig index 468bba5..7ee7275 100644 --- a/src/grid.zig +++ b/src/grid.zig @@ -1,6 +1,7 @@ const std = @import("std"); const SDL = @import("sdl2"); +const Color = @import("color.zig"); const Cell = @import("cell.zig"); const utils = @import("utils.zig"); @@ -71,7 +72,7 @@ pub fn render(self: Self, renderer: *SDL.SDL_Renderer, cell_size: i32, pos_x: i3 _ = SDL.SDL_SetRenderDrawColor(renderer, r, g, b, a); _ = SDL.SDL_RenderFillRect(renderer, &rect); - _ = SDL.SDL_SetRenderDrawColor(renderer, 0x33, 0x33, 0x33, 0xFF); + _ = SDL.SDL_SetRenderDrawColor(renderer, Color.light_grey.r, Color.light_grey.g, Color.light_grey.b, Color.light_grey.a); _ = SDL.SDL_RenderDrawRect(renderer, &rect); } } diff --git a/src/piece.zig b/src/piece.zig index 139eddc..6176698 100644 --- a/src/piece.zig +++ b/src/piece.zig @@ -6,9 +6,9 @@ const Grid = @import("grid.zig"); const Self = @This(); -pub const Rot = enum(u2) { - right = 0, - left = 2, +pub const Rot = enum { + right, + left, }; pub const Type = enum { @@ -112,7 +112,13 @@ pub fn rotate(self: Self, dir: Rot) Self { inline for (sequences) |seq| { inline for (seq) |_, i| { - new_piece.structure[seq[i][0]][seq[i][1]] = self.structure[seq[(i + @enumToInt(dir) - 1) % 4][0]][seq[(i + @enumToInt(dir) - 1) % 4][1]]; + if (dir == Rot.right) { + const refi = @mod((@intCast(i32, i) - 1), 4); + new_piece.structure[seq[i][0]][seq[i][1]] = self.structure[seq[refi][0]][seq[refi][1]]; + } else { + const refi = @mod((@intCast(i32, i) + 1), 4); + new_piece.structure[seq[i][0]][seq[i][1]] = self.structure[seq[refi][0]][seq[refi][1]]; + } } } } else { @@ -120,7 +126,13 @@ pub fn rotate(self: Self, dir: Rot) Self { inline for (sequences) |seq| { inline for (seq) |_, i| { - new_piece.structure[seq[i][0]][seq[i][1]] = self.structure[seq[(i + @enumToInt(dir) - 1) % 4][0]][seq[(i + @enumToInt(dir) - 1) % 4][1]]; + if (dir == Rot.right) { + const refi = @mod((@intCast(i32, i) - 1), 4); + new_piece.structure[seq[i][0]][seq[i][1]] = self.structure[seq[refi][0]][seq[refi][1]]; + } else { + const refi = @mod((@intCast(i32, i) + 1), 4); + new_piece.structure[seq[i][0]][seq[i][1]] = self.structure[seq[refi][0]][seq[refi][1]]; + } } } } diff --git a/zig-cache/h/8fb74d559dd889eac55495e9f1d9dc64.txt b/zig-cache/h/8fb74d559dd889eac55495e9f1d9dc64.txt index bf1f31a..6180e8b 100644 --- a/zig-cache/h/8fb74d559dd889eac55495e9f1d9dc64.txt +++ b/zig-cache/h/8fb74d559dd889eac55495e9f1d9dc64.txt @@ -1,7 +1,7 @@ 1361 36569768 1657038271710135652 e361ab3d1987688681b5db7b52fd5cba /home/strange/Documentos/Projectes/Programació/usg/src/main.zig 1361 36569768 1657038271710135652 e361ab3d1987688681b5db7b52fd5cba /home/strange/Documentos/Projectes/Programació/usg/src/main.zig 135300 36570392 1655299923670057346 b4c2d851673df5aab566633b89bdaa84 /home/strange/Documentos/Projectes/Programació/usg/lib/SDL.zig/src/binding/sdl.zig -32 36570080 1657053720550249757 91a8da097c7c1645ba2a6217a5171c4e /home/strange/Documentos/Projectes/Programació/usg/zig-cache/options/kh59p23UXKId3bWMadeQ0Yp6cv2kATA4qPk2nBQ2q_3IsG9JTjKRYS1YxdIMHL6s +32 36570080 1657057884680280513 91a8da097c7c1645ba2a6217a5171c4e /home/strange/Documentos/Projectes/Programació/usg/zig-cache/options/kh59p23UXKId3bWMadeQ0Yp6cv2kATA4qPk2nBQ2q_3IsG9JTjKRYS1YxdIMHL6s 5621 36968525 1655270162000000000 66001e1a55f68e4681c1f32a69223647 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/std.zig 5621 36968525 1655270162000000000 66001e1a55f68e4681c1f32a69223647 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/std.zig 29901 36968437 1655270162000000000 5c441d88acbf5e7fe2a26137df2b5376 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/builtin.zig @@ -21,15 +21,15 @@ 121502 36968568 1655270162000000000 4bad05f05e4a10364e515a13d2fa2b3f /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/os/linux/io_uring.zig 135300 36570392 1655299923670057346 b4c2d851673df5aab566633b89bdaa84 /home/strange/Documentos/Projectes/Programació/usg/lib/SDL.zig/src/binding/sdl.zig 1640 36570393 1655299923670057346 c3d50ea43c9e10688a521a9ac927ded4 /home/strange/Documentos/Projectes/Programació/usg/lib/SDL.zig/src/binding/sdl_image.zig -32 36570080 1657053720550249757 91a8da097c7c1645ba2a6217a5171c4e /home/strange/Documentos/Projectes/Programació/usg/zig-cache/options/kh59p23UXKId3bWMadeQ0Yp6cv2kATA4qPk2nBQ2q_3IsG9JTjKRYS1YxdIMHL6s +32 36570080 1657057884680280513 91a8da097c7c1645ba2a6217a5171c4e /home/strange/Documentos/Projectes/Programació/usg/zig-cache/options/kh59p23UXKId3bWMadeQ0Yp6cv2kATA4qPk2nBQ2q_3IsG9JTjKRYS1YxdIMHL6s 7338 36968289 1655270162000000000 ee4fd6c02929ff52d99a8faa2539dce8 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/zig.zig 21121 36968483 1655270162000000000 669c911cf26ce07c5f5516d896b30e33 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/zig/c_translation.zig 113573 36968636 1655270162000000000 2c3980264c753ba754322c7c8c4f2634 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/mem.zig 4399 36570427 1657050625270226896 5a5f1095331817ca2935aae8f1c887ef /home/strange/Documentos/Projectes/Programació/usg/src/game.zig -1985 36569864 1657040654430153251 a4190b51e743c069b95bce0368e169d7 /home/strange/Documentos/Projectes/Programació/usg/src/grid.zig -320 36569823 1657026237740046769 9c0018b94509c3c3f7e8edd793177de6 /home/strange/Documentos/Projectes/Programació/usg/src/cell.zig +2077 36569864 1657057506010277717 a18ae95a6705d7982e23251e180871b3 /home/strange/Documentos/Projectes/Programació/usg/src/grid.zig +256 36569823 1657057405170276972 a69ae39529d33ff9e7623523a1e0dbe9 /home/strange/Documentos/Projectes/Programació/usg/src/cell.zig 1708 36569840 1657038395020136563 151ce67aaf4e36de54f56be701bc0b66 /home/strange/Documentos/Projectes/Programació/usg/src/bag.zig -4796 36569846 1657053719270249748 1273e72a46280cdcf35d48a94d969800 /home/strange/Documentos/Projectes/Programació/usg/src/piece.zig +5393 36569846 1657057045880274318 1150e3c04cfc9dfab11e84e9393b3c7f /home/strange/Documentos/Projectes/Programació/usg/src/piece.zig 16192 36968506 1655270162000000000 744a2bb13e662f350a196780c9fbcad2 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/rand.zig 3105 36968346 1655270162000000000 412e5ff0bcf84571f173caa8acab5393 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/rand/Xoshiro256.zig 45023 36968356 1655270162000000000 c30e605ecc099ad6f5498460429756fa /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/elf.zig @@ -65,7 +65,7 @@ 68808 36968298 1655270162000000000 1428e5a8bcb96a47d038d40214331d68 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/event/loop.zig 32411 36968509 1655270162000000000 a25cf125aa2af22a7263d8104b549cb9 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/unicode.zig 44495 36968491 1655270162000000000 bfcc36624c8f3cb045fc58558f6aa79d /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/process.zig -663 36569831 1656078583710029346 74acba9445f0ebf3147733e83d02a6d1 /home/strange/Documentos/Projectes/Programació/usg/src/color.zig +850 36569831 1657057860690280336 b9ebfb0b293930640bc22ebdf6acab54 /home/strange/Documentos/Projectes/Programació/usg/src/color.zig 76200 36968550 1655270162000000000 35261e8277652ce34bf8d0d6761b4bab /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/os/linux/syscalls.zig 1174 36968430 1655270162000000000 1a71f479a0d0d95f1b0d960381e246ee /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/hash.zig 10122 36968518 1655270162000000000 6372ee29c64a8e176138e879d43eb625 /home/strange/Documentos/Projectes/Programació/usg/zig/lib/std/hash/wyhash.zig diff --git a/zig-cache/z/18bf8a0b5cb3a5ab6b683e3ac9c65cf4 b/zig-cache/z/18bf8a0b5cb3a5ab6b683e3ac9c65cf4 index ce93610f8a79ae466e1bd42e9a030cf323c590b3..82b2b9b5f5241a29f3d4116d949ea504e2d6e48e 100644 GIT binary patch delta 1293 zcmY+DTS!z<6ozNKD+nni1VWD%MP$A8A`%8oCZ^`)6hvT|Wj#n{Vl_;rmSs7etn8+C zd5EaAM0yEBske%>dkIQj%kn7wWKrAbHuEWx^y=BFEJ;iE}e&-C*~7FsY`p%8mPv(1b6BX!th^rf!?w2SR z=>Js<18@S~!72C%XW$FyBhXF0hJK^f`Q6ys2C_1OWZIUv4S0|zyn%cLtXt3dxl2li`>bLMRRSdsjUTlmRe58fJpcU DpDrGR delta 543 zcmXYrPb)-W6o=29Y3{r;X5lW(hLwd`OzB#Tr3t;+DTYRDMa0HJL^M)zBf|;#6QOKG z23rwPHa>t4F!nYUQhvuhi|5|^obx`tce|mS&XkC#3oJWC(M6)qNOJ^AyZ=w3#&mY) zX6t7&6L=08%F8jVW$Ra}-%^Bzw!XC{KBy?SMbUPb(s~sH2{sXeMf#w5G$b~VMuMU!BK`qV z5$aM3y3lRih+AE`i;#^gE8Vygi;KqJmwPhY@6I{r&Y3gwyXUl-T^Chx^Rd~F@K9Jo zvry}8rN+wW@9yS-U}m;8IOVx#%kxu%zBe8(`zs^KTGCI|UKc0Qo)@wK8`Xwwf@JvZ zf|Lo-;pRu3kH}AoouX4j1@Sw?EwRhNT2s~~pB8*SBYMOh(JL-FPi#!w5pCmq&f*M= zc*f+JbIi&U)93ttdFnkVsAHd-A9kJ|*uPhhYgV+4-j56FyXzLm1HV+wSjxX)SIVVw z#ZuW)&I*f#sx4(o7j2%!p$CP$h|bJaiZl62_I@iBi8-h(G@j-unlVKo zEMpqz7PrM^!P+5lM9hnGA|re^AC}LHF_9Asf;}_@G>wRef?)ju!MH65Ms9>6KSCW7 z2r?j|;)KAcm;L09iIbvzdHBZF`TA|~*XsMTk$1gU7yicTl-r64F_3jW|Cs3dx$$|k z-WPu~{c?QhfOK`+7XtTy9)roj%b4+by_+rNXu`gzK)3&4 C8fHuY literal 1031 zcmYk4Jxr5P6oyX=D&h}+DvF8}m7@4*)QB61eryC|YiQ6|(6;FR%N@Sw*`7!>=k>&esR-{*?UGzin?(RKKHo=&fuH#Nyj}Y zds>~gOWAioa36ExqyVgE94To%9`uC3cf{#Q>27h_X;j)Qh_Na#<^ux1hXrvFD-hR~ za-Wh?J5TWak-$c3vbdDCxIbp`Om@cRbMs5Kn9g3ZnL;LGseCqH;Oo?lU{tVKdtmp2 zgHQF3+j?72N=T}VNrmty1Szman>xj`=n{DH#k3&(v|umgJSMtDkLVS%;)0kH!)|_2 z`f%I)vc}nM^D7$XL|$+|>2ojTq4h0-wzUb`)FEgaandegrL0E;=Z*^E;t3HOG53gw zAVyktN{~aJ=ohpNqgD7P4qA9tG`KnW63Dk7xu0*}_cy+48=dBYzK z=Jn0bf6E<1Pm(Lctn+k&^U{sMPtRU0Bwv3m6$cXGa*4A%4fX`KzWn=NrSD5u=ga4% j_SWz8i2SJwMvUy|Nnzwno*20%f>A98eA91gMLqumW@~3P diff --git a/zig-cache/z/45051dac5d5fe5c1374af955d57dc1a3 b/zig-cache/z/45051dac5d5fe5c1374af955d57dc1a3 index bcabc1552ebbe47eac492517493de1a10b9a0718..d81e7ebf9c0f93638d5be3e220a82f4ff7fc24f2 100644 GIT binary patch literal 8161 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 literal 7887 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 diff --git a/zig-cache/z/a4146a97860546c83bdbfe47a036b0af b/zig-cache/z/a4146a97860546c83bdbfe47a036b0af index 2b691e7aa02e6595fceb3302249bd7f3516b6651..7ebee058d32c6d53b95012c244da57f81901f1f9 100644 GIT binary patch literal 19840 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 AG5`Po