go-tui

Une TUI pour jouer au go - retour accueil

git clone git://bebou.netlib.re/go-tui

Log | Files | Refs |

commit a038abe8d99531fd063bbcfa0cc1278784389807
parent ed4732fef380d4383c0db356ebb7e9413137ab73
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Wed, 16 Jul 2025 16:56:07 +0200

On peut capturer des pierres avec clique droit !

Diffstat:
Mgotui.c | 23+++++++++++++++++++++--
1 file changed, 21 insertions(+), 2 deletions(-)

diff --git a/gotui.c b/gotui.c @@ -61,13 +61,20 @@ void print_line(int y, int size) { } } -void display(struct stone_list s_list, int size) { +void display(struct stone_list s_list, struct stone_list c_list, int size) { for (int i=0;i<size;i++) print_line(i,size); for(int i=0;i<s_list.count;i++) { if(s_list.list[i].color==BLACK) tb_printf(s_list.list[i].x,s_list.list[i].y,0,0,"○"); else tb_printf(s_list.list[i].x,s_list.list[i].y,0,0,"●"); } + int bc=0; int ac=0; + for(int i=0;i<c_list.count;i++) { + if(c_list.list[i].color==BLACK) bc++; + else ac++; + } + tb_printf(0,size,0,0,"%d ○ captured",bc); + tb_printf(0,size+1,0,0,"%d ● captured",ac); } /* Main */ @@ -86,7 +93,7 @@ int main(int argc, char **argv) { while(1) { tb_clear(); - display(s_list,size); + display(s_list,c_list,size); tb_present(); tb_poll_event(&ev); @@ -110,6 +117,18 @@ int main(int argc, char **argv) { s_list.count++; if(color==BLACK) { color=WHITE; } else { color=BLACK; } break; + case 65511: /*MouseRight*/ + if(ev.x<0 || ev.x>size*2+2 || ev.x <0 || ev.y>size-1 || ev.x%2) break; + spot=spot_is_taken(s_list,ev.x,ev.y); + if(spot!=-1) { + int captured_color=s_list.list[spot].color; + s=create_stone(ev.x,ev.y,captured_color); + c_list.list[c_list.count]=s; + c_list.count++; + for (int j=spot;j<s_list.count;j++) s_list.list[j]=s_list.list[j+1]; + s_list.count--; + } + break; case 113: tb_shutdown(); return 0;