/* Laget av Ringen
dato:08.03.2024
edid:
dato:12.03.2024
av: Ringen
la til void game, void player1/2_Win
dato:
av:
*/
//input knaper
const int knap1 = 13;
const int knap2 = 12;
const int knap3 = 8;
const int knap4 = 7;
const int knap5 = 6;
const int knap6 = 5;
const int knap7 = 4;
const int knap8 = 3;
const int knap9 = 2;
//output til uno Lys
const int Led_uno = 9;
//game progres er 18 variaber for hver rute som spiles der 0 = ingenting
int game_Progres = 0;
//tik tak tow ruter
bool rute1 = true, player1_rute1 = false, player2_rute1 = false;
bool rute2 = true, player1_rute2 = false, player2_rute2 = false;
bool rute3 = true, player1_rute3 = false, player2_rute3 = false;
bool rute4 = true, player1_rute4 = false, player2_rute4 = false;
bool rute5 = true, player1_rute5 = false, player2_rute5 = false;
bool rute6 = true, player1_rute6 = false, player2_rute6 = false;
bool rute7 = true, player1_rute7 = false, player2_rute7 = false;
bool rute8 = true, player1_rute8 = false, player2_rute8 = false;
bool rute9 = true, player1_rute9 = false, player2_rute9 = false;
//player turn
bool player = 0;
//player1 is 0
//player2 is 1
//game ongowing or don
bool gameStop = 0;
void setup() {
//input
pinMode(knap1, INPUT_PULLUP);
pinMode(knap2, INPUT_PULLUP);
pinMode(knap3, INPUT_PULLUP);
pinMode(knap4, INPUT_PULLUP);
pinMode(knap5, INPUT_PULLUP);
pinMode(knap6, INPUT_PULLUP);
pinMode(knap7, INPUT_PULLUP);
pinMode(knap8, INPUT_PULLUP);
pinMode(knap9, INPUT_PULLUP);
//for og se hva som skjer
Serial.begin(9600);
}
void loop() {
// game stop
if(gameStop == 0){
Game();
player1_Win();
player2_Win();
}
unoLys();
}
void Game(){
if( (digitalRead(knap1) == LOW) and (rute1 == true)){
//Setter rute1 utilgjenglig
rute1 = false;
Serial.print("rute1");
// velgger hvilke spiler som får ruten og bytter spiler
if(player == 0){
player = 1;
player1_rute1 = true;
Serial.println(" player1");
game_Progres = 1;
}
else{
player = 0;
player2_rute1 = true;
Serial.println(" player2");
game_Progres = 2;
}
}
if( (digitalRead(knap2) == LOW) and (rute2 == true)){
//Setter rute1 utilgjenglig
rute2 = false;
Serial.print("rute2");
// velgger hvilke spiler som får ruten og bytter spiler
if(player == 0){
player = 1;
player1_rute2 = true;
Serial.println(" player1");
game_Progres = 3;
}
else{
player = 0;
player2_rute2 = true;
Serial.println(" player2");
game_Progres = 4;
}
}
if( (digitalRead(knap3) == LOW) and (rute3 == true)){
//Setter rute1 utilgjenglig
rute3 = false;
Serial.print("rute3");
// velgger hvilke spiler som får ruten og bytter spiler
if(player == 0){
player = 1;
player1_rute3 = true;
Serial.println(" player1");
game_Progres = 5;
}
else{
player = 0;
player2_rute3 = true;
Serial.println(" player2");
game_Progres = 6;
}
}
if( (digitalRead(knap4) == LOW) and (rute4 == true)){
//Setter rute1 utilgjenglig
rute4 = false;
Serial.print("rute4");
// velgger hvilke spiler som får ruten og bytter spiler
if(player == 0){
player = 1;
player1_rute4 = true;
Serial.println(" player1");
game_Progres = 7;
}
else{
player = 0;
player2_rute4 = true;
Serial.println(" player2");
game_Progres = 8;
}
}
if( (digitalRead(knap5) == LOW) and (rute5 == true)){
//Setter rute1 utilgjenglig
rute5 = false;
Serial.print("rute5");
// velgger hvilke spiler som får ruten og bytter spiler
if(player == 0){
player = 1;
player1_rute5 = true;
Serial.println(" player1");
game_Progres = 9;
}
else{
player = 0;
player2_rute5 = true;
Serial.println(" player2");
game_Progres = 10;
}
}
if( (digitalRead(knap6) == LOW) and (rute6 == true)){
//Setter rute1 utilgjenglig
rute6 = false;
Serial.print("rute6");
// velgger hvilke spiler som får ruten og bytter spiler
if(player == 0){
player = 1;
player1_rute6 = true;
Serial.println(" player1");
game_Progres = 11;
}
else{
player = 0;
player2_rute6 = true;
Serial.println(" player2");
game_Progres = 12;
}
}
if( (digitalRead(knap7) == LOW) and (rute7 == true)){
//Setter rute1 utilgjenglig
rute7 = false;
Serial.print("rute7");
// velgger hvilke spiler som får ruten og bytter spiler
if(player == 0){
player = 1;
player1_rute7 = true;
Serial.println(" player1");
game_Progres = 13;
}
else{
player = 0;
player2_rute7 = true;
Serial.println(" player2");
game_Progres = 14;
}
}
if( (digitalRead(knap8) == LOW) and (rute8 == true)){
//Setter rute1 utilgjenglig
rute8 = false;
Serial.print("rute8");
// velgger hvilke spiler som får ruten og bytter spiler
if(player == 0){
player = 1;
player1_rute8 = true;
Serial.println(" player1");
game_Progres = 15;
}
else{
player = 0;
player2_rute8 = true;
Serial.println(" player2");
game_Progres = 16;
}
}
if( (digitalRead(knap9) == LOW) and (rute9 == true)){
//Setter rute1 utilgjenglig
rute9 = false;
Serial.print("rute9");
// velgger hvilke spiler som får ruten og bytter spiler
if(player == 0){
player = 1;
player1_rute9 = true;
Serial.println(" player1");
game_Progres = 17;
}
else{
player = 0;
player2_rute9 = true;
Serial.println(" player2");
game_Progres = 18;
}
}
}
void player1_Win(){
//vannret
//1rad
if((player1_rute1 == 1)and(player1_rute2 == 1)and(player1_rute3 == 1)){
gameStop = 1;
Serial.println("winner_Player1");
}
//2rad
if((player1_rute4 == 1)and(player1_rute5 == 1)and(player1_rute6 == 1)){
gameStop = 1;
Serial.println("winner_Player1");
}
//3rad
if((player1_rute7 == 1)and(player1_rute8 == 1)and(player1_rute9 == 1)){
gameStop = 1;
Serial.println("winner_Player1");
}
//Loddret
//1rad
if((player1_rute1 == 1)and(player1_rute4 == 1)and(player1_rute7 == 1)){
gameStop = 1;
Serial.println("winner_Player1");
}
//2rad
if((player1_rute2 == 1)and(player1_rute5 == 1)and(player1_rute8 == 1)){
gameStop = 1;
Serial.println("winner_Player1");
}
//3rad
if((player1_rute3 == 1)and(player1_rute6 == 1)and(player1_rute9 == 1)){
gameStop = 1;
Serial.println("winner_Player1");
}
//krys
//venstre bun til høyre top
if((player1_rute7 == 1)and(player1_rute5 == 1)and(player1_rute3 == 1)){
gameStop = 1;
Serial.println("winner_Player1");
}
//venstre top til høyre buna
if((player1_rute1 == 1)and(player1_rute5 == 1)and(player1_rute9 == 1)){
gameStop = 1;
Serial.println("winner_Player1");
}
}
void player2_Win(){
//vannret
//1rad
if((player2_rute1 == 1)and(player2_rute2 == 1)and(player2_rute3 == 1)){
gameStop = 1;
Serial.println("winner_Player2");
}
//2rad
if((player2_rute4 == 1)and(player2_rute5 == 1)and(player2_rute6 == 1)){
gameStop = 1;
Serial.println("winner_Player2");
}
//3rad
if((player2_rute7 == 1)and(player2_rute8 == 1)and(player2_rute9 == 1)){
gameStop = 1;
Serial.println("winner_Player2");
}
//Loddret
//1rad
if((player2_rute1 == 1)and(player2_rute4 == 1)and(player2_rute7 == 1)){
gameStop = 1;
Serial.println("winner_Player2");
}
//2rad
if((player2_rute2 == 1)and(player2_rute5 == 1)and(player2_rute8 == 1)){
gameStop = 1;
Serial.println("winner_Player2");
}
//3rad
if((player2_rute3 == 1)and(player2_rute6 == 1)and(player2_rute9 == 1)){
gameStop = 1;
Serial.println("winner_Player2");
}
//krys
//venstre bun til høyre top
if((player2_rute7 == 1)and(player2_rute5 == 1)and(player2_rute3 == 1)){
gameStop = 1;
Serial.println("winner_Player2");
}
//venstre top til høyre buna
if((player2_rute1 == 1)and(player2_rute5 == 1)and(player2_rute9 == 1)){
gameStop = 1;
Serial.println("winner_Player2");
}
}
void unoLys(){
//det er lagt in 1 til 18 game_Progres variabler
//disse variablene er lagt in i void_game
int outputValue = map(game_Progres, 0, 18, 0, 255);
analogWrite(Led_uno,outputValue);
}