<mosaic.cnfolio.com>
PROGRAM
1. /*Coursework 1*/
2. /*Start
3.       Input 'quantity of cards player 1'
4.       Input 'card values player 1'
5.       Input 'quantity of cards player 2'
6.     Input 'card values player 2'
7. if 'quantity of cards player 1' is <2 then,
8.    output 'Error - Too Few Cards'
9. End if
10. if 'quantity of cards Player 1' is >10 then,
11.    output 'Error - Too Many Cards
12. End if
13. if 'quantity of cards player 2' is <2 then,
14.    output 'Error - Too Few Cards'
15. End if
16. if 'quantity of cards Player 2' is >10 then,
17.    output 'Error - Too Many Cards
18. End if
19.       bubble sort cards into descending order player 1
20.       bubble sort cards into descending order player 2
21. Player 1 displays top card
22. Player 2 displays top card
23. quantity of cards player 1 = 'quantity of cards player 1' -1
24. quantity of cards player 2 = 'quantity of cards player 2' -1
25. if player 1 card > player 2 card then,
26.    output 'player 1 wins'
27. end if
28. if player 2 card > player 1 card then,
29.    output 'player 2 wins'
30. end if
31. if player 1 card = player 2 card then,
32.    output 'draw'
33. end if
34. if cards remaining = 0 then,
35.    output 'draw'
36. end if*/
37.
38.
39.
40. #include <stdio.h>
41.
42. /* Add card values  */
43.
44. int p1num,p2num; /* Add integers for the number of cards held by each player */
45. int p,q,digit1,digit2,unit1,unit2,swap,error,p1w,p2w,next,draw;
46. int p1c01,p1c02,p1c03,p1c04,p1c05,p1c06,p1c07,p1c08,p1c09,p1c10;
47. int p2c01,p2c02,p2c03,p2c04,p2c05,p2c06,p2c07,p2c08,p2c09,p2c10;
48.
49. void errors (void) /*If statements to enforce the game rules*/
50. {
51.     if (p1num > 10) /* If more than 10 is entered, error message is printed*/
52.     {
53.         printf("Error, Player 1 has too many cards /n");
54.         error = 1; /*if it meets that criteria the code won't continue*/
55.     }
56.
57.     if (p1num < 2) /* If less than 10 is entered, error message will be displayed */
58.     {
59.         printf("Error, player 1 does not have enough cards /n");
60.         error = 1; /*integer error = 1, programme ends */
61.     }
62.
63.     if (p2num > 10) /* too many cards */
64.     {
65.         printf("Error, Player 2 has too many cards /n");
66.         error = 1; /* integer error is made to be 1 so that the code won't go past this subroutine */
67.     }
68.
69.     if (p2num < 2) /* If less than 2 is entered, error message will be printed*/
70.     {
71.         printf("Error, Player 2 does not have enough cards /n");
72.         error = 1;
73.     }
74.
75.     if (p1c01 > 10) /*Is the first card > 10?*/
76.     {
77.         printf("Error, Player 1 Card 10 (Incorrect) /n");
78.         error = 1;
79.     }
80.
81.     if (p1c01 < 0)
82.     {
83.         printf("Error, card value incorrect /n"); /*should that value be <1 rather than <0?*/
84.         error = 1;
85.     }
86.
87.     if (p2c01 > 10)
88.     {
89.         printf("Error - Player 2 Card 10 Incorrect /n");
90.         error = 1;
91.
92.     }
93.
94.     if (p1c02 < 0) /*same error checking for the remainder of the cards*/
95.     {
96.         printf("Error - Player 1 Card 2 Incorrect /n");
97.         error = 1;
98.     }
99.
100.     if (p2c02 > 10)
101.     {
102.         printf("Error - Player 2 Card 2 Incorrect /n");
103.         error = 1;
104.     }
105.
106.     if (p2c02 < 0)
107.     {
108.         printf("Error - Player 2 Card 2 Incorrect /n");
109.         error = 1;
110.     }
111.         if (p2c02 < 0)
112.     {
113.         printf("Error - Player 2 Card 2 Incorrect /n");
114.         error = 1;
115.     }
116.     if (p1c03 > 10
117.     {
118.         printf("Error - Player 1 Card 3 Incorrect /n");
119.         error = 1;
120.     }
121.
122.     if (p1c03 < 0)
123.     {
124.         printf("Error - Player 1 Card 3 Incorrect /n");
125.         error = 1;
126.     }
127.
128.     if (p2c03 > 10)
129.     {
130.         printf("Error - Player 2 Card 3 is Incorrect /n");
131.         error = 1;
132.     }
133.
134.     if (p2c03 < 0)
135.     {
136.         printf("Error - Player 2 Card 3 is Incorrect /n");
137.         error = 1;
138.     }
139.
140. if (p1c04 > 10)
141.     {
142.         printf("Error - Player 1 Card 4 Incorrect /n");
143.         error = 1;
144.     }
145.
146.     if (p1c04 < 0)
147.     {
148.         printf("Error - Player 1 Card 4 Incorrect /n");
149.         error = 1;
150.     }
151.
152.     if (p2c04 > 10)
153.     {
154.         printf("Error - Player 2 Card 4 Incorrect /n");
155.         error = 1;
156.     }
157.
158.     if (p2c04 < 0)
159.     {
160.         printf("Error - Player 2 Card 4 Incorrect /n");
161.         error = 1;
162.     }
163.
164.     if (p1c05 > 10)
165.     {
166.         printf("Error - Player 1 Card 5 Incorrect /n");
167.         error = 1;
168.     }
169.
170.     if (p1c05 < 0)
171.     {
172.         printf("Error - Player 1 Card 5 Incorrect /n");
173.         error = 1;
174.     }
175.
176.     if (p2c05 > 10)
177.     {
178.         printf("Error - Player 2 Card 5 Incorrect /n");
179.         error = 1;
180.     }
181.
182.     if (p2c05 < 0)
183.     {
184.         printf("Error - Player 2 Card 5 Incorrect /n");
185.         error = 1;
186.     }
187.
188.     if (p1c06 > 10) /*  */
189.     {
190.         printf("Error - Player 1 Card 6 Incorrect /n");
191.         error = 1;
192.     }
193.
194.     if (p1c06 < 0)
195.     {
196.         printf("Error - Player 1 Card 6 Incorrect /n");
197.         error = 1;
198.     }
199.
200.     if (p2c06 > 10)
201.     {
202.         printf("Error - Player 2 Card 6 Incorrect /n");
203.         error = 1;
204.     }
205.
206.     if (p2c06 < 0)
207.     {
208.         printf("Error - Player 2 Card 7 Incorrect /n");
209.         error = 1;
210.     }
211.     if (p1c07 > 10)
212.     {
213.         printf("Error - Player 1 Card 7 Incorrect /n");
214.         error = 1;
215.     }
216.
217.     if (p1c07 < 0)
218.     {
219.         printf("Error - Player 1 Card 7 Incorrect /n");
220.         error = 1;
221.     }
222.
223.     if (p2c07 > 10)
224.     {
225.         printf("Error - Player 2 Card 7 Incorrect /n");
226.         error = 1;
227.     }
228.
229.     if (p2c07 < 0)
230.     {
231.         printf("Error - Player 2 Card 7 Incorrect /n");
232.         error = 1;
233.     }
234.
235.     if (p1c08 > 10)
236.     {
237.         printf("Error - Player 1 Card 8 Incorrect /n");
238.         error = 1;
239.     }
240.
241.     if (p1c08 < 0)
242.     {
243.         printf("Error - Player 1 Card 8 Incorrect /n");
244.         error = 1;
245.     }
246.
247.     if (p2c08 > 10)
248.     {
249.         printf("Error - Player 2 Card 8 Incorrect /n");
250.         error = 1;
251.     }
252.
253.     if (p2c08 < 0)
254.     {
255.         printf("Error - Player 2 Card 8 Incorrect /n");
256.         error = 1;
257.     }
258.
259.     if (p1c09 > 10)
260.     {
261.         printf("Error - Player 1 Card 9 Incorrect /n");
262.         error = 1;
263.     }
264.
265.     if (p1c09 < 0)
266.     {
267.         printf("Error - Player 1 Card 9 Incorrect /n");
268.         error = 1;
269.     }
270.
271.     if (p2c09 > 10)
272.     {
273.         printf("Error - Player 2 Card 9 Incorrect /n");
274.         error = 1;
275.     }
276.
277.     if (p2c09 < 0)
278.     {
279.         printf("Error - Player 2 Card 9 Incorrect /n");
280.         error = 1;
281.     }
282.
283.     if (p1c10 > 10)
284.     {
285.         printf("Error - Player 1 Card 10 Incorrect /n");
286.         error = 1;
287.     }
288.
289.     if (p1c10 < 0)
290.     {
291.         printf("Error - Player 1 Card 10 Incorrect /n");
292.         error = 1;
293.     }
294.
295.     if (p2c10 > 10)
296.     {
297.         printf("Error - Player 2 Card 10 Incorrect /n");
298.         error = 1;
299.     }
300.
301.     if (p2c10 < 0)
302.     {
303.         printf("Error - Player 2 Card 10 Incorrect /n");
304.         error = 1;
305.     }
306.
307.     while (error = 1) /* integer error is made to be 1 so that the code won't go past this subroutine */
308.     {
309.         error = 1;
310.     }
311. }
312. void bubblesortplayer1 (void) /* Sort player 1 input cards into descending order */
313. {
314.     q = 1;
315.     while (q != 0)
316.     {
317.     p = 1;
318.     while (p != 0)
319.     {
320.         if (digit1 == 1) {unit1 = p1c01;} /*  */
321.         if (digit1 == 2) {unit1 = p1c02;}
322.         if (digit1 == 3) {unit1 = p1c03;}
323.         if (digit1 == 4) {unit1 = p1c04;}
324.         if (digit1 == 5) {unit1 = p1c05;}
325.         if (digit1 == 6) {unit1 = p1c06;}
326.         if (digit1 == 7) {unit1 = p1c07;}
327.         if (digit1 == 8) {unit1 = p1c08;}
328.         if (digit1 == 9) {unit1 = p1c09;}
329.         if (digit2 == 2) {unit2 = p1c02;}
330.         if (digit2 == 3) {unit2 = p1c03;}
331.         if (digit2 == 4) {unit2 = p1c04;}
332.         if (digit2 == 5) {unit2 = p1c05;}
333.         if (digit2 == 6) {unit2 = p1c06;}
334.         if (digit2 == 7) {unit2 = p1c07;}
335.         if (digit2 == 8) {unit2 = p1c08;}
336.         if (digit2 == 9) {unit2 = p1c09;}
337.         if (digit2 == 10) {unit2 = p1c10;}
338.
339.         if (unit1<unit2) /*compares the card values for player 1 and 2 */
340.         {
341.             swap = unit1;
342.             unit1 = unit2;
343.             unit2 = swap;
344.         }
345.         digit1++;
346.         digit2++;
347.         p++;
348.         if (p == p1num + 1)
349.         {
350.             digit1 = 1;
351.             digit2 = 2;
352.             p = 0;
353.         }
354.     }
355.         q++;
356.         if (q == 10)
357.         {q = 0;}
358.     }
359.     if (q = 0) {return;}
360. }
361. /*that was bloody difficult*/
362.
363. void bubblesortplayer2 (void)
364. {
365.     q = 1;
366.     while (q != 0)
367.     {
368.     p = 1;
369.     while (p != 0)
370.     {
371.         if (digit1 == 1) {unit1 = p2c01;}
372.         if (digit1 == 2) {unit1 = p2c02;}
373.         if (digit1 == 3) {unit1 = p2c03;}
374.         if (digit1 == 4) {unit1 = p2c04;}
375.         if (digit1 == 5) {unit1 = p2c05;}
376.         if (digit1 == 6) {unit1 = p2c06;}
377.         if (digit1 == 7) {unit1 = p2c07;}
378.         if (digit1 == 8) {unit1 = p2c08;}
379.         if (digit1 == 9) {unit1 = p2c09;}
380.         if (digit2 == 2) {unit2 = p2c02;}
381.         if (digit2 == 3) {unit2 = p2c03;}
382.         if (digit2 == 4) {unit2 = p2c04;}
383.         if (digit2 == 5) {unit2 = p2c05;}
384.         if (digit2 == 6) {unit2 = p2c06;}
385.         if (digit2 == 7) {unit2 = p2c07;}
386.         if (digit2 == 8) {unit2 = p2c08;}
387.         if (digit2 == 9) {unit2 = p2c09;}
388.         if (digit2 == 10) {unit2 = p2c10;}
389.
390.         if (unit1<unit2)
391.         {
392.             swap = unit1;
393.             unit1 = unit2;
394.             unit2 = swap;
395.         }
396.         digit1++;
397.         digit2++;
398.         p++;
399.         if (p == p2num + 1)
400.         {
401.             digit1 = 1;
402.             digit2 = 2;
403.             p = 0;
404.         }
405.     }
406.         q++;
407.         if (q == 10)
408.         {q = 0;}
409.     }
410.     if (q = 0) {return;}
411.
412.     /*All cards are now sorted into descending order, ready for the game to start*/
413.
414.
415.     void game (void) /*begins comparing the players cards */
416.     /*Runs through a maximum of 10 times due to the numbers of cards in the game*/
417. {
418.     if (p1c01 > p2c01)
419.     {
420.         p1w = 1;
421.     }
422.
423.     if (p1c01 < p2c01)
424.     {
425.         p2w = 1;
426.     }
427.
428.     if (p1c01 == p2c01)
429.     {
430.         next = 1;
431.     }
432.
433.     if (next = 1)
434.     {
435.         next = 0;
436.
437.         if (p1c02 > p2c02)
438.         {
439.             p1w = 1;
440.         }
441.
442.         if (p1c02 < p2c02)
443.         {
444.             p2w = 1;
445.         }
446.
447.         if (p1c02 == p2c02)
448.         {
449.             next = 1;
450.         }
451.
452.         if (next = 1)
453.         {
454.             next = 0;
455.
456.             if (p1c03 > p2c03)
457.             {
458.                 p1w = 1;
459.             }
460.
461.             if (p1c03 < p2c03)
462.             {
463.                 p2w = 1;
464.             }
465.
466.             if (p1c03 == p2c03)
467.             {
468.                 next = 1;
469.             }
470.
471.             if (next = 1)
472.             {
473.                 next = 0;
474.
475.                 if (p1c04 > p2c04)
476.                 {
477.                     p1w = 1;
478.                 }
479.
480.                 if (p1c04 < p2c04)
481.                 {
482.                     p2w = 1;
483.                 }
484.
485.                 if (p1c04 == p2c04)
486.                 {
487.                     next = 1;
488.                 }
489.
490.                 if (next = 1)
491.                 {
492.                     next = 0;
493.
494.                     if (p1c05 > p2c05)
495.                     {
496.                         p1w = 1;
497.                     }
498.
499.                     if (p1c05 < p2c05)
500.                     {
501.                         p2w = 1;
502.                     }
503.
504.                     if (p1c05 == p2c05)
505.                     {
506.                         next = 1;
507.                     }
508.
509.                     if (next = 1)
510.                     {
511.                         next = 0;
512.
513.                         if (p1c06 > p2c06)
514.                         {
515.                             p1w = 1;
516.                         }
517.
518.                         if (p1c06 < p2c06)
519.                         {
520.                             p2w = 1;
521.                         }
522.
523.                         if (p1c06 == p2c06)
524.                         {
525.                             next = 1;
526.                         }
527.
528.                         if (next = 1)
529.                         {
530.                             next = 0;
531.
532.                             if (p1c07 > p2c07)
533.                             {
534.                                 p1w = 1;
535.                             }
536.
537.                             if (p1c07 < p2c07)
538.                             {
539.                                 p2w = 1;
540.                             }
541.
542.                             if (p1c07 == p2c07)
543.                             {
544.                                 next = 1;
545.                             }
546.
547.                             if (next = 1)
548.                             {
549.                                 next = 0;
550.
551.                                 if (p1c08 > p2c08)
552.                                 {
553.                                     p1w = 1;
554.                                 }
555.
556.                                 if (p1c08 < p2c08)
557.                                 {
558.                                     p2w = 1;
559.                                 }
560.
561.                                 if (p1c08 == p2c08)
562.                                 {
563.                                     next = 1;
564.                                 }
565.
566.                                 if (next = 1)
567.                                 {
568.                                     next = 0;
569.
570.                                     if (p1c09 > p2c09)
571.                                     {
572.                                         p1w = 1;
573.                                     }
574.
575.                                     if (p1c09 < p2c09)
576.                                     {
577.                                         p2w = 1;
578.                                     }
579.
580.                                     if (p1c09 == p2c09)
581.                                     {
582.                                         next = 1;
583.                                     }
584.
585.                                     if (next = 1)
586.                                     {
587.                                         next = 0;
588.
589.                                         if (p1c10 > p2c10)
590.                                         {
591.                                             p1w = 1;
592.                                         }
593.
594.                                         if (p1c10 < p2c10)
595.                                         {
596.                                             p2w = 1;
597.                                         }
598.
599.                                         if (p1c10 == p2c10)
600.                                         {
601.                                             draw = 1;
602.                                         }
603.                                     }
604.                                 }
605.                             }
606.                         }
607.                     }
608.                 }
609.             }
610.         }
611.     }
612. }
613.
614. void results (void) /* Results subroutine displays the results of the card game */
615. {
616.     if (p1w = 1) /*If statement for the condition of player 1 winning*/
617.     {
618.         printf ("Player 1 is the Winner");
619.     }
620.
621.     if (p2w = 1) /*If statement for the condition of player 2 winning*/
622.     {
623.         printf ("Player 2 is the Winner"); /* Display Player 2 is the Winner */
624.     }
625.
626.     if (draw = 1) /*If statement for the condition of a draw*/
627.     {
628.         printf ("Draw"); /* Display Draw */
629.     }
630.
631. }
632.
633.
634.
635. void main (void)
636. {
637.
638.     error = 0; /* Set error to 0 be be changed and read within the error subroutine */
639.     p1w = 0; /* Set player 1 win to 0 to be changed and read in results subroutine */
640.     p2w = 0; /* Set player 2 win to 0 to be changed and read in results subroutine */
641.     draw = 0; /* Set draw to 0 to be changed and read in results subroutine */
642.
643. /* Scan for inputs */
644.     scanf( "%d", &p1num);
645.     scanf( "/n %d %d %d %d %d %d %d %d %d %d %d %d", &p1c01,&p1c02,&p1c03,&p1c04,&p1c05,&p1c06,&p1c07,&p1c08,&p1c09,&p1c10);
646.     scanf( "/n /n %d", &p2num);
647.     scanf( "/n /n /n %d %d %d %d %d %d %d %d %d %d %d %d", &p2c01,&p2c02,&p2c03,&p2c04,&p2c05,&p2c06,&p2c07,&p2c08,&p2c09,&p2c10);
648. /* Scan inputs for any errors */
649.     errors();
650. /*call bubblesort subroutine*/
651.     bubblesortplayer2();
652.     bubblesortplayer1();
653. /*Call the subroutine for comparison of cards*/
654.     game();
655. /*Call the subroutine for results*/
656.     results();
657. }