Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tiennhm/caro-cpp

Game caro chơi trên màn hình console
https://github.com/tiennhm/caro-cpp

caro-game console console-application cpp

Last synced: 24 days ago
JSON representation

Game caro chơi trên màn hình console

Awesome Lists containing this project

README

        

# CỜ CARO

![GitHub contributors](https://img.shields.io/github/contributors/TienNHM/caro_console)
![GitHub issues](https://img.shields.io/github/issues/TienNHM/caro_console?color=red)
![GitHub top language](https://img.shields.io/github/languages/top/TienNHM/caro_console?color=cyan)
![GitHub repo size](https://img.shields.io/github/repo-size/TienNHM/caro_console)
![GitHub code size in bytes](https://img.shields.io/github/languages/code-size/TienNHM/caro_console)
![GitHub commit activity](https://img.shields.io/github/commit-activity/m/TienNHM/caro_console?color=g)
![GitHub last commit](https://img.shields.io/github/last-commit/TienNHM/caro_console?color=yellow)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/TienNHM/caro_console)

1. ***Vẽ bàn cờ***

Bàn cờ thực tế mà người chơi tương tác có kích thước 20 x 20. Tuy nhiên, việc biểu diễn bàn cờ trên màn hình console có chút khác biệt. Vì chúng ta vừa phải in phần không gian trống cho mỗi ô, cùng với phần viền của ô, nên 1 ô vuông 1x1 thực tế lại có kích thước trên màn hình là 5 x 3 (chiều rộng: 2 thanh đứng | và 3 khoảng trắng; chiều cao: 2 thanh ngang ── và 1 khoảng trắng). Có thể các bạn sẽ đặt câu hỏi, tại sao chiều rộng có 3 khoảng trắng, còn chiều cao chỉ có 1 khoảng trắng. Câu trả lời là do mỗi kí tự in trên mang hình console có chiều cao lớn hơn chiều rộng.

![Fig.1](https://github.com/Titytus/caro_console/blob/master/board.png)

```c
void veBanCo(){
int i,j;
gotoXY(LEFT+1,TOP); //TOP
for (i=0;i<(2*SIZE);i++)
if (i%2) printf("%c",194); else printf("%c%c%c",196,196,196);
gotoXY(LEFT+1,BOT); //BOT
for (i=0;i<2*SIZE;i++)
if (i%2) printf("%c",193); else printf("%c%c%c",196,196,196);
for (i=0;i<2*SIZE;i++){
gotoXY(LEFT,TOP+i);
if (i%2) printf("%c",179); else printf("%c",195);
gotoXY(RIGHT,TOP+i);
if (i%2) printf("%c",179); else printf("%c",180);
}
char S0[200], S1[200];
for (int j=0;j<4*SIZE-1;j++)
if (j%4==0) S0[j]=179; else S0[j]=' ';
for (int j=0;j<4*SIZE-1;j++)
if ((j+1)%4==0) S1[j]=197; else S1[j]=196;
S1[4*SIZE-1]='\0'; S0[4*SIZE-1]='\0';
i=1;
while (i<2*SIZE-1){
gotoXY(LEFT,TOP+i++); printf("%s",S0);
gotoXY(LEFT+1,TOP+i++); printf("%s",S1);
}
gotoXY(LEFT,TOP+i); printf("%s",S0);
gotoXY(LEFT,TOP); printf("%c",218);
gotoXY(RIGHT,TOP); printf("%c",191);
gotoXY(LEFT,BOT); printf("%c",192);
gotoXY(RIGHT,BOT); printf("%c",217);
}
```