Untitled
unknown
plain_text
a year ago
3.2 kB
7
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