7
7
//
8
8
9
9
#include <uvm/syscalls.h>
10
- #include <uvm/utils .h>
10
+ #include <uvm/window .h>
11
11
#include <stdlib.h>
12
12
#include <string.h>
13
13
#include <stdio.h>
@@ -429,7 +429,7 @@ void computer_callback()
429
429
X (0 ,0 ,0 ,21 ,u ,1 );
430
430
}
431
431
432
- void anim_callback ()
432
+ void draw_board ()
433
433
{
434
434
if (left_key ) {
435
435
left_key = false;
@@ -473,7 +473,10 @@ void anim_callback()
473
473
X (0 ,0 ,0 ,21 ,u ,1 );
474
474
selected = 0 ;
475
475
if (y != prev_turn ) {
476
- time_delay_cb (100 , computer_callback );
476
+ // Draw the newly moved piece
477
+ draw_board ();
478
+ // Let the computer do its move
479
+ computer_callback ();
477
480
}
478
481
}
479
482
}
@@ -566,10 +569,9 @@ void anim_callback()
566
569
}
567
570
568
571
window_draw_frame (0 , frame_buffer );
569
- time_delay_cb (33 , anim_callback );
570
572
}
571
573
572
- void keydown (u64 window_id , u16 keycode )
574
+ void keydown (u16 keycode )
573
575
{
574
576
if (keycode == KEY_LEFT )
575
577
{
@@ -593,7 +595,7 @@ void keydown(u64 window_id, u16 keycode)
593
595
}
594
596
}
595
597
596
- void keyup (u64 window_id , u16 keycode )
598
+ void keyup (u16 keycode )
597
599
{
598
600
if (keycode == KEY_LEFT )
599
601
{
@@ -617,15 +619,35 @@ void keyup(u64 window_id, u16 keycode)
617
619
}
618
620
}
619
621
622
+ Event event ;
623
+
620
624
void main ()
621
625
{
622
626
init ();
623
627
624
628
window_create (FRAME_WIDTH , FRAME_HEIGHT , "Toledo Nanochess for UVM" , 0 );
625
- window_on_keydown (0 , keydown );
626
- window_on_keyup (0 , keyup );
627
629
628
- time_delay_cb (0 , anim_callback );
630
+ draw_board ();
631
+
632
+ for (;;)
633
+ {
634
+ window_wait_event (& event );
629
635
630
- enable_event_loop ();
636
+ if (event .kind == EVENT_QUIT )
637
+ {
638
+ exit (0 );
639
+ }
640
+
641
+ if (event .kind == EVENT_KEYDOWN )
642
+ {
643
+ keydown (event .key );
644
+ }
645
+
646
+ if (event .kind == EVENT_KEYUP )
647
+ {
648
+ keyup (event .key );
649
+ }
650
+
651
+ draw_board ();
652
+ }
631
653
}
0 commit comments