Untitled
unknown
plain_text
a year ago
3.2 kB
6
Indexable
#include <xc.h> #include <libpic30.h> #include <stdio.h> #include <string.h> #include "lcd.h" #include "buttons.h" #define TOTAL_TIME (1500) // Czas dla obu graczy volatile unsigned int seconds = TOTAL_TIME; void delay_ms(unsigned long milliseconds) { // Funkcja opóźniająca while (milliseconds--) { __delay32(4000); // Zakładając 8 MHz FCY (8 MIPS) } } int main(void) { char bufor[32]; LCD_Initialize(); unsigned int czas_bialego = seconds; unsigned int czas_czarnego = seconds; int faza_gry = 3; // Początkowa faza: wybór rozpoczynającego while (true) { // Obsługa przycisku reset (S5) if (BUTTON_IsPressed(BUTTON_S5)) { faza_gry = 3; czas_bialego = seconds; czas_czarnego = seconds; } switch (faza_gry) { case 0: // Koniec czasu LCD_ClearScreen(); LCD_PutString(czas_bialego < 1 ? "Biale przegrywaja" : "Czarne przegrywaja", 17); delay_ms(10000); // Czekamy 10 sekund czas_bialego = seconds; czas_czarnego = seconds; faza_gry = 3; break; case 2: // Tura czarnych if (BUTTON_IsPressed(BUTTON_S4)) { // Zmiana tury faza_gry = 1; break; } sprintf(bufor, "%02u:%02u czarne", czas_czarnego / 60, czas_czarnego % 60); LCD_ClearScreen(); LCD_PutString(bufor, strlen(bufor)); LCD_PutString("\n", 1); sprintf(bufor, "%02u:%02u biale", czas_bialego / 60, czas_bialego % 60); LCD_PutString(bufor, strlen(bufor)); delay_ms(1000); // Czekamy sekundę if (--czas_czarnego < 1) { faza_gry = 0; } break; case 1: // Tura białych if (BUTTON_IsPressed(BUTTON_S3)) { // Zmiana tury faza_gry = 2; break; } sprintf(bufor, "%02u:%02u biale", czas_bialego / 60, czas_bialego % 60); LCD_ClearScreen(); LCD_PutString(bufor, strlen(bufor)); LCD_PutString("\n", 1); sprintf(bufor, "%02u:%02u czarne", czas_czarnego / 60, czas_czarnego % 60); LCD_PutString(bufor, strlen(bufor)); delay_ms(1000); // Czekamy sekundę if (--czas_bialego < 1) { faza_gry = 0; } break; case 3: // Kto zaczyna? LCD_PutString("Kto zaczyna?\n s3=biale s4=czarne", 32); delay_ms(4000); // Czekamy 4 sekundy LCD_ClearScreen(); if (BUTTON_IsPressed(BUTTON_S3)) { faza_gry = 1; } else if (BUTTON_IsPressed(BUTTON_S4)) { faza_gry = 2; } break; default: break; } } return 0; }
Editor is loading...
Leave a Comment