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 r = 0; r < 3; r++) // tiles
|
||||||
for(int c = 0; c < 3; c++)
|
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 ? '*' : ' ';
|
//char info = winner != '\0' ? winner : highlight ? '*' : ' ';
|
||||||
for(int r = 0; r < 3; r++) // |
|
for(int r = 0; r < 3; r++) // |
|
||||||
for(int c = 0; c < 2; c++)
|
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 r = 0; r < 2; r++) // -
|
||||||
for(int c = 0; c < 3; c++)
|
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 r = 0; r < 2; r++) // +
|
||||||
for(int c = 0; c < 2; c++)
|
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 r = 0; r < 7; r++) // | boundary
|
||||||
for(int c = 0; c < 2; c++)
|
for(int c = 0; c < 2; c++)
|
||||||
mvch(arg, iy + r, ix + 6 * 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++)
|
for(int c = 0; c < 3; c++)
|
||||||
ut_drawBoard(mvch, arg, (char *)state->tiles,
|
ut_drawBoard(mvch, arg, (char *)state->tiles,
|
||||||
27 * r + 3 * c, 9,
|
27 * r + 3 * c, 9,
|
||||||
7 * r + 1, 7 * c + 1,
|
7 * r, 7 * c,
|
||||||
state->boards[r][c],
|
state->boards[r][c],
|
||||||
state->playBoard == -1 || state->playBoard == 3 * r + c);
|
state->playBoard == -1 || state->playBoard == 3 * r + c);
|
||||||
if(numbers)
|
if(numbers)
|
||||||
|
@ -251,6 +251,7 @@ void ut_bmvch(void *arg, int y, int x, char c)
|
||||||
((char (*)[DBOARDS_X])arg)[y][x] = c;
|
((char (*)[DBOARDS_X])arg)[y][x] = c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define DTILES_LINE 1
|
||||||
void ut_cursdraw(const struct ut_state *state)
|
void ut_cursdraw(const struct ut_state *state)
|
||||||
{
|
{
|
||||||
ut_cursprintf("Turn: %c Play board: %d\n", (int)state->player, state->playBoard);
|
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;
|
*r = 3 * (*r / 3) + 1;
|
||||||
*c = 3 * (*c / 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)));
|
(7 * (*c / 3) + 1) + (2 * (*c % 3)));
|
||||||
refresh();
|
refresh();
|
||||||
switch(getch())
|
switch(getch())
|
||||||
|
@ -368,6 +369,7 @@ int ut_cursgetpos(const struct ut_state *state, int *r, int *c)
|
||||||
case KEY_MOUSE:
|
case KEY_MOUSE:
|
||||||
if(getmouse(&event) == OK && (event.bstate & BUTTON1_CLICKED))
|
if(getmouse(&event) == OK && (event.bstate & BUTTON1_CLICKED))
|
||||||
{
|
{
|
||||||
|
event.y -= DTILES_LINE;
|
||||||
if(event.y < 0 || event.y >= 21) {break;}
|
if(event.y < 0 || event.y >= 21) {break;}
|
||||||
if(event.x < 0 || event.x >= 21) {break;}
|
if(event.x < 0 || event.x >= 21) {break;}
|
||||||
*r = (event.y % 7 - 1) / 2 + 3 * (event.y / 7);
|
*r = (event.y % 7 - 1) / 2 + 3 * (event.y / 7);
|
||||||
|
@ -704,47 +706,6 @@ void begin(void)
|
||||||
mousemask(BUTTON1_CLICKED, NULL);
|
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) {
|
int main(int argc, char **argv) {
|
||||||
|
|
||||||
struct ut_state state = ut_initial;
|
struct ut_state state = ut_initial;
|
||||||
|
|
読み込み中…
新しいイシューから参照