static void printOut(Player[] array, int playerAmount, errorCount err) { int total = 0; int frameS = 0; for (int i = 0; i < playerAmount; i++) { total = 0; for (int j = 0; j < MAXFRAME; j++) { Console.WriteLine("Player: " + i + " FRAME: " + array[i].getFrame(j)); frameS = array[i].getFrameScore(j); Console.WriteLine("BALL ONE: " + array[i].getBallOne(j)); Console.WriteLine("BALL TWO: " + array[i].getBallTwo(j)); Console.WriteLine("Frame Score: " + frameS); total += frameS; } Console.WriteLine("------------------------------------"); Console.WriteLine("Player: " + i + " Total Score: " + total + " Total Errors: " + err.count); Console.WriteLine("------------------------------------"); } }
static bool frameOk(int frame, int ball1, int ball2, errorCount err) { int TEN = 10; if (ball1 < 0) { Console.WriteLine("Frame: " + frame + " Roll Error: " + ball1); err.count++; return(false); } if (ball1 > TEN || ball2 > TEN) { Console.WriteLine("Frame: " + frame + " Roll Error: " + ball1); err.count++; return(false); } if (ball1 + ball2 > TEN) { Console.WriteLine("Frame: " + frame + " Frame Error: " + ball1 + ", " + ball2); err.count++; return(false); } return(true); }
static void Main(string[] args) { //vars //string fileName = ""; int curBall = 0; //read in file FROM INSTRUCTIONS data will be either on ONE line or split on lines so split on space and new line //Console.WriteLine("Enter bowling text file please:"); //fileName = Console.ReadLine(); try { // List<string> list = new List<string>(); List <int> list = new List <int>(); string line; do { line = Console.ReadLine(); if (line != "END") { bool check = int.TryParse(line, out curBall); if (check == true) { list.Add(curBall); //Console.WriteLine(curBall); } } } while (line != "END"); //handle the values Console.WriteLine("------------------------------------"); // Console.WriteLine(list[0] + " is the Number of players"); //get number of players for game(one for now //int numPlayers = list[0]; int numPlayers = 1; //list.RemoveAt(0);//we don't need that number anymore, pop it //int count = 0; Player[] playerArray = new Player[numPlayers]; for (int i = 0; i < numPlayers; i++) { playerArray[i] = new Player(); playerArray[i].playerNum = i; } int curPlayer = 0; errorCount errCnt = new errorCount(); if (numPlayers > 0) { curPlayer = 0; int ballNum = 1; // bool ballFilled = false; //bool strike = false; int frame = 1; int tenOne = 0; int tenTwo = 0; int past = 0; bool isStrike = false; bool isStrike2 = false; bool isSpare = false; bool isNormal = false; bool skip = false; bool skip2 = false; //valueHandler(frame, item, curPlayer, ballNum, playerArray); foreach (int item in list) { //Console.WriteLine(item + " CURRENT ITEM"); if (curPlayer > numPlayers - 1 && skip2 == false) { curPlayer = 0; frame++; } if (frame == MAXFRAME) { break; } if (frame < TEN) { switch (ballNum) { case 1: if (frameOk(frame, item, 0, errCnt) == true) { //ballFilled = true; if (item != TEN) { ballNum = 2; } if (item == TEN) { valueHandler(frame, item, curPlayer, ballNum, playerArray); curPlayer++; } past = item; } //Console.WriteLine("ball 1 " + item); break; case 2: // if (ballFilled == false && strike == false) // { if (frameOk(frame, item, 0, errCnt) == true) { if (frameOk(frame, past, item, errCnt) == true && past != TEN) { if (past + item <= TEN) { valueHandler(frame, past, curPlayer, 1, playerArray); valueHandler(frame, item, curPlayer, ballNum, playerArray); curPlayer++; ballNum = 1; skip2 = false; } } else { ballNum = 1; skip2 = true; } //Console.WriteLine("ball 2 " + item); // } } break; } } //jumbled code for handling 10th frame and extra frame if (frame == MAXFRAME - 1 && frameOk(frame, item, 0, errCnt) == true) { if (isSpare == true) { ballNum = 1; //Console.WriteLine("TEST"); valueHandler(MAXFRAME, item, curPlayer, ballNum, playerArray); isSpare = false; curPlayer++; skip = true; } if (isStrike2 == true) { ballNum = 2; valueHandler(MAXFRAME, item, curPlayer, ballNum, playerArray); skip = true; isStrike2 = false; ballNum = 1; curPlayer++; } if (isStrike == true) { //Console.WriteLine("STRIKE1"); ballNum = 1; valueHandler(MAXFRAME, item, curPlayer, ballNum, playerArray); isStrike = false; isStrike2 = true; skip = true; } isNormal = false; if (frame == MAXFRAME - 1 && skip == false) { if (ballNum == 1) { //Console.WriteLine("BALLNUMFRAME10-----Ball1--------------" + item); valueHandler(frame, item, curPlayer, ballNum, playerArray); if (item != TEN) { tenOne = item; //ballNum = 2; //break; } if (item == TEN) { isStrike = true; valueHandler(frame, item, curPlayer, ballNum, playerArray); //curPlayer++; } skip2 = false; } if (ballNum == 2) { //Console.WriteLine("BALLNUMFRAME10-----Ball2--------------" + item); tenTwo = item; if (frameOk(frame, tenOne, tenTwo, errCnt) == true) { //valueHandler(frame, tenOne, curPlayer, 1, playerArray); valueHandler(frame, item, curPlayer, ballNum, playerArray); if (tenOne + tenTwo == TEN) { isSpare = true; //ballNum = 1; //break; } if (tenOne + tenTwo < TEN) { curPlayer++; isNormal = true; } skip2 = false; } else { skip2 = true; } ballNum = 1; } if (isNormal == false && skip2 == false) { ballNum = 2; } } } skip = false; } } printOut(playerArray, numPlayers, errCnt); Console.WriteLine("------------------------------------"); // Console.WriteLine(count); } catch (Exception e) { Console.WriteLine("error: '{0}'", e); } Console.WriteLine("Press Enter to exit"); Console.ReadLine(); }
static void printOut(Player[] array, int playerAmount, errorCount err) { int total = 0; int frameS = 0; for (int i = 0; i < playerAmount; i++) { total = 0; for (int j = 0; j < MAXFRAME; j++) { Console.WriteLine("Player: " + i + " FRAME: " + array[i].getFrame(j)); frameS = array[i].getFrameScore(j); Console.WriteLine("BALL ONE: " + array[i].getBallOne(j)); Console.WriteLine("BALL TWO: " + array[i].getBallTwo(j)); Console.WriteLine("Frame Score: " + frameS); total += frameS; } Console.WriteLine("------------------------------------"); Console.WriteLine("Player: " + i + " Total Score: " + total + " Total Errors: " + err.count ); Console.WriteLine("------------------------------------"); } }
static void Main(string[] args) { //vars //string fileName = ""; int curBall = 0; //read in file FROM INSTRUCTIONS data will be either on ONE line or split on lines so split on space and new line //Console.WriteLine("Enter bowling text file please:"); //fileName = Console.ReadLine(); try { // List<string> list = new List<string>(); List<int> list = new List<int>(); string line; do { line = Console.ReadLine(); if (line != "END") { bool check = int.TryParse(line, out curBall); if (check == true) { list.Add(curBall); //Console.WriteLine(curBall); } } } while (line != "END"); //handle the values Console.WriteLine("------------------------------------"); // Console.WriteLine(list[0] + " is the Number of players"); //get number of players for game(one for now //int numPlayers = list[0]; int numPlayers = 1; //list.RemoveAt(0);//we don't need that number anymore, pop it //int count = 0; Player[] playerArray = new Player[numPlayers]; for (int i = 0; i < numPlayers; i++) { playerArray[i] = new Player(); playerArray[i].playerNum = i; } int curPlayer = 0; errorCount errCnt = new errorCount(); if (numPlayers > 0) { curPlayer = 0; int ballNum = 1; // bool ballFilled = false; //bool strike = false; int frame = 1; int tenOne = 0; int tenTwo = 0; int past = 0; bool isStrike = false; bool isStrike2 = false; bool isSpare = false; bool isNormal = false; bool skip = false; bool skip2 = false; //valueHandler(frame, item, curPlayer, ballNum, playerArray); foreach (int item in list) { //Console.WriteLine(item + " CURRENT ITEM"); if (curPlayer > numPlayers - 1 && skip2 == false) { curPlayer = 0; frame++; } if (frame == MAXFRAME) { break; } if (frame < TEN) { switch (ballNum) { case 1: if (frameOk(frame, item, 0, errCnt) == true) { //ballFilled = true; if (item != TEN) { ballNum = 2; } if (item == TEN) { valueHandler(frame, item, curPlayer, ballNum, playerArray); curPlayer++; } past = item; } //Console.WriteLine("ball 1 " + item); break; case 2: // if (ballFilled == false && strike == false) // { if (frameOk(frame, item, 0, errCnt) == true) { if(frameOk(frame, past, item, errCnt) == true && past != TEN) { if (past + item <= TEN) { valueHandler(frame, past, curPlayer, 1, playerArray); valueHandler(frame, item, curPlayer, ballNum, playerArray); curPlayer++; ballNum = 1; skip2 = false; } } else { ballNum = 1; skip2 = true; } //Console.WriteLine("ball 2 " + item); // } } break; } } //jumbled code for handling 10th frame and extra frame if (frame == MAXFRAME - 1 && frameOk(frame, item, 0, errCnt) == true) { if (isSpare == true) { ballNum = 1; //Console.WriteLine("TEST"); valueHandler(MAXFRAME, item, curPlayer, ballNum, playerArray); isSpare = false; curPlayer++; skip = true; } if (isStrike2 == true) { ballNum = 2; valueHandler(MAXFRAME, item, curPlayer, ballNum, playerArray); skip = true; isStrike2 = false; ballNum = 1; curPlayer++; } if (isStrike == true) { //Console.WriteLine("STRIKE1"); ballNum = 1; valueHandler(MAXFRAME, item, curPlayer, ballNum, playerArray); isStrike = false; isStrike2 = true; skip = true; } isNormal = false; if (frame == MAXFRAME - 1 && skip == false) { if (ballNum == 1) { //Console.WriteLine("BALLNUMFRAME10-----Ball1--------------" + item); valueHandler(frame, item, curPlayer, ballNum, playerArray); if (item != TEN) { tenOne = item; //ballNum = 2; //break; } if (item == TEN) { isStrike = true; valueHandler(frame, item, curPlayer, ballNum, playerArray); //curPlayer++; } skip2 = false; } if (ballNum == 2) { //Console.WriteLine("BALLNUMFRAME10-----Ball2--------------" + item); tenTwo = item; if (frameOk(frame, tenOne, tenTwo, errCnt) == true) { //valueHandler(frame, tenOne, curPlayer, 1, playerArray); valueHandler(frame, item, curPlayer, ballNum, playerArray); if (tenOne + tenTwo == TEN) { isSpare = true; //ballNum = 1; //break; } if (tenOne + tenTwo < TEN) { curPlayer++; isNormal = true; } skip2 = false; } else { skip2 = true; } ballNum = 1; } if (isNormal == false && skip2 == false) { ballNum = 2; } } } skip = false; } } printOut(playerArray, numPlayers, errCnt); Console.WriteLine("------------------------------------"); // Console.WriteLine(count); } catch (Exception e) { Console.WriteLine("error: '{0}'", e); } Console.WriteLine("Press Enter to exit"); Console.ReadLine(); }
static bool frameOk(int frame, int ball1, int ball2, errorCount err) { int TEN = 10; if (ball1 < 0) { Console.WriteLine("Frame: " + frame + " Roll Error: " + ball1); err.count++; return false; } if(ball1 > TEN || ball2 > TEN) { Console.WriteLine("Frame: " + frame + " Roll Error: " + ball1); err.count++; return false; } if(ball1 + ball2 > TEN) { Console.WriteLine("Frame: " + frame + " Frame Error: " + ball1 + ", " + ball2); err.count++; return false; } return true; }