Merge remote-tracking branch 'origin/cleaner' into cleaner
このコミットが含まれているのは:
コミット
194825db5a
55
uttt.c
55
uttt.c
|
@ -189,17 +189,17 @@ void ut_drawBoard(void (*mvch)(void*, int, int, char), void *arg, const char *ti
|
|||
*/
|
||||
for(int r = 0; r < 3; r++) // tiles
|
||||
for(int c = 0; c < 3; c++)
|
||||
mvch(arg, iy + 2 * r, ix + 2 * c, T(r, c) != '\0' ? T(r, c) : ' ');
|
||||
mvch(arg, iy + 2 * r + 1, ix + 2 * c + 1, T(r, c) != '\0' ? T(r, c) : ' ');
|
||||
//char info = winner != '\0' ? winner : highlight ? '*' : ' ';
|
||||
for(int r = 0; r < 3; r++) // |
|
||||
for(int c = 0; c < 2; c++)
|
||||
mvch(arg, iy + 2 * r, ix + 2 * c + 1, winner != '\0' ? winner : '|');
|
||||
mvch(arg, iy + 2 * r + 1, ix + 2 * c + 1 + 1, winner != '\0' ? winner : '|');
|
||||
for(int r = 0; r < 2; r++) // -
|
||||
for(int c = 0; c < 3; c++)
|
||||
mvch(arg, iy + 2 * r + 1, ix + 2 * c, winner != '\0' ? winner : '-');
|
||||
mvch(arg, iy + 2 * r + 1 + 1, ix + 2 * c + 1, winner != '\0' ? winner : '-');
|
||||
for(int r = 0; r < 2; r++) // +
|
||||
for(int c = 0; c < 2; c++)
|
||||
mvch(arg, iy + 2 * r + 1, ix + 2 * c + 1, winner != '\0' ? winner : highlight ? '*' : '+');
|
||||
mvch(arg, iy + 2 * r + 1 + 1, ix + 2 * c + 1 + 1, winner != '\0' ? winner : highlight ? '*' : '+');
|
||||
for(int r = 0; r < 7; r++) // | boundary
|
||||
for(int c = 0; c < 2; c++)
|
||||
mvch(arg, iy + r, ix + 6 * c, ' ');
|
||||
|
@ -215,7 +215,7 @@ void ut_drawTiles(void (*mvch)(void*, int, int, char), void *arg, const struct u
|
|||
for(int c = 0; c < 3; c++)
|
||||
ut_drawBoard(mvch, arg, (char *)state->tiles,
|
||||
27 * r + 3 * c, 9,
|
||||
7 * r + 1, 7 * c + 1,
|
||||
7 * r, 7 * c,
|
||||
state->boards[r][c],
|
||||
state->playBoard == -1 || state->playBoard == 3 * r + c);
|
||||
if(numbers)
|
||||
|
@ -251,6 +251,7 @@ void ut_bmvch(void *arg, int y, int x, char c)
|
|||
((char (*)[DBOARDS_X])arg)[y][x] = c;
|
||||
}
|
||||
|
||||
#define DTILES_LINE 1
|
||||
void ut_cursdraw(const struct ut_state *state)
|
||||
{
|
||||
ut_cursprintf("Turn: %c Play board: %d\n", (int)state->player, state->playBoard);
|
||||
|
@ -360,7 +361,7 @@ int ut_cursgetpos(const struct ut_state *state, int *r, int *c)
|
|||
*r = 3 * (*r / 3) + 1;
|
||||
*c = 3 * (*c / 3) + 1;
|
||||
}*/
|
||||
move((7 * (*r / 3) + 1) + (2 * (*r % 3)),
|
||||
move(DTILES_LINE + (7 * (*r / 3) + 1) + (2 * (*r % 3)),
|
||||
(7 * (*c / 3) + 1) + (2 * (*c % 3)));
|
||||
refresh();
|
||||
switch(getch())
|
||||
|
@ -368,6 +369,7 @@ int ut_cursgetpos(const struct ut_state *state, int *r, int *c)
|
|||
case KEY_MOUSE:
|
||||
if(getmouse(&event) == OK && (event.bstate & BUTTON1_CLICKED))
|
||||
{
|
||||
event.y -= DTILES_LINE;
|
||||
if(event.y < 0 || event.y >= 21) {break;}
|
||||
if(event.x < 0 || event.x >= 21) {break;}
|
||||
*r = (event.y % 7 - 1) / 2 + 3 * (event.y / 7);
|
||||
|
@ -704,47 +706,6 @@ void begin(void)
|
|||
mousemask(BUTTON1_CLICKED, NULL);
|
||||
}
|
||||
|
||||
/*int main(int argc, char *argv[]) {
|
||||
signal(SIGINT, finish);
|
||||
initscr();
|
||||
keypad(stdscr, TRUE);
|
||||
nonl(); // \r instead of \r\n
|
||||
cbreak();
|
||||
noecho();
|
||||
mousemask(BUTTON1_CLICKED, NULL);
|
||||
|
||||
struct ut_state state = ut_initial;
|
||||
while (true) {
|
||||
int r, c, err;
|
||||
erase();
|
||||
ut_draw(&state);
|
||||
char w = ut_winner((char *)state.boards, 0, 3);
|
||||
if(w)
|
||||
{
|
||||
if(w == ' ')
|
||||
{
|
||||
mvaddstr(21, 0, "Draw!");
|
||||
}
|
||||
else
|
||||
{
|
||||
mvaddch(21, 0, w);
|
||||
mvaddstr(21, 1, " Wins!");
|
||||
}
|
||||
mvaddstr(22, 0, "Press any key to exit.");
|
||||
refresh();
|
||||
mousemask(0, NULL);
|
||||
getch();
|
||||
break;
|
||||
}
|
||||
err = ut_click(&state, &r, &c);
|
||||
if (err) {continue;}
|
||||
err = ut_move(&state, &state, r, c);
|
||||
if (err) {continue;}
|
||||
}
|
||||
finish(0);
|
||||
return 0;
|
||||
}*/
|
||||
|
||||
int main(int argc, char **argv) {
|
||||
|
||||
struct ut_state state = ut_initial;
|
||||
|
|
読み込み中…
新しいイシューから参照