Code giving me a blank console

The goal is to make a random war game each time you run the program. I already got it working before using if statements but I need to do it with switch statements. When I run this program it just gives me a blank console. How do I get it to work?

#include<iostream>
#include <string>
using namespace std;


int main()

{
srand((unsigned)time(0));
int x;
x = (rand() % 4) + 3;
int y;
y = (rand() % 4) + 3;
int Fcd;
Fcd = (rand() % 13) + 2;
int Scd;
Scd = (rand() % 13) + 2;

switch (Fcd) {
case 11: Fcd = 74;
break;
case 12: Fcd = 81;
break;
case 13: Fcd = 75;
break;
case 14: Fcd = 65;
break;
}
switch (Scd) {
case 11: Scd = 74;
break;
case 12: Scd = 81;
break;
case 13: Scd = 75;
break;
case 14: Scd = 65;
break;
}

int A;
while (Fcd < 10 && Scd < 10) {
A = 1;
}
while (Fcd > 10 && Scd > 10) {
A = 2;
}
while (Fcd < 10 && Scd > 10) {
A = 3;
}
while (Fcd > 10 && Scd < 10) {
A = 4;
}
while (Fcd == 10 && Scd == 10) {
A = 5;
}
while (Fcd == 10 && Scd > 10) {
A = 6;
}
while (Fcd < 10 && Scd < 10) {
A = 7;
}
while (Fcd > 10 && Scd == 10) {
A = 8;
}
while (Fcd < 10 && Scd == 10) {
A = 9;
}


cout << " "; cout << (char)201 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)187;
cout << "\n "; cout << (char)186; cout << " The card game : \"WAR\" "; cout << (char)186;
cout << "\n "; cout << (char)200 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)188;
cout << "\n Your card Opponent's card ";
cout << "\n "; cout << (char)218 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)191; cout << " "; cout << (char)218 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)191;
switch (A) {
case 1: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 2: cout << "\n "; cout << (char)179 << (char)Fcd << " " << (char)179 << " " << (char)179 << (char)Scd << " " << (char)179;
break;
case 3: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << (char)Scd << " " << (char)179;
break;
case 4: cout << "\n "; cout << (char)179 << (char)Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 5: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 6: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << (char)Scd << " " << (char)179;
break;
case 7: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 8: cout << "\n "; cout << (char)179 << (char)Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 9: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
}
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)x << " " << (char)179 << " " << (char)179 << " " << (char)y << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
switch (A) {
case 1: cout << "\n "; cout << (char)179 << " " << Fcd << (char)179 << " " << (char)179 << " " << Scd << (char)179;
break;
case 2: cout << "\n "; cout << (char)179 << " " << (char)Fcd << (char)179 << " " << (char)179 << " " << (char)Scd << (char)179;
break;
case 3: cout << "\n "; cout << (char)179 << " " << Fcd << (char)179 << " " << (char)179 << " " << (char)Scd << (char)179;
break;
case 4: cout << "\n "; cout << (char)179 << " " << (char)Fcd << (char)179 << " " << (char)179 << " " << Scd << (char)179;
break;
case 5: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 6: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << (char)Scd << " " << (char)179;
break;
case 7: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 8: cout << "\n "; cout << (char)179 << (char)Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 9: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
}
cout << "\n "; cout << (char)192 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)217; cout << " "; cout << (char)192 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)217;
return 0;
}
ah, the joy of debugging gibberish.
you need to debug it yourself. Here is an idea to help.

also, use code tags.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145

int main()


{
srand((unsigned)time(0));
int x;
x = (rand() % 4) + 3;
int y;
y = (rand() % 4) + 3;
int Fcd;
Fcd = (rand() % 13) + 2;
int Scd;
Scd = (rand() % 13) + 2;

switch (Fcd) 
{
case 11: Fcd = 74;
break;
case 12: Fcd = 81;
break;
case 13: Fcd = 75;
break;
case 14: Fcd = 65;
break;
}
switch (Scd) 
{
case 11: Scd = 74;
break;
case 12: Scd = 81;
break;
case 13: Scd = 75;
break;
case 14: Scd = 65;
break;
}

int A;
int wh{1};
while (Fcd < 10 && Scd < 10) 
{
	cout << "stuck in while " << wh << endl;
A = 1;
} wh++;
while (Fcd > 10 && Scd > 10) 
{
cout << "stuck in while " << wh << endl;
A = 2;
}wh++;
while (Fcd < 10 && Scd > 10) 
{
	cout << "stuck in while " << wh << endl;
A = 3;
}wh++;
while (Fcd > 10 && Scd < 10) 
{
	cout << "stuck in while " << wh << endl;
A = 4;
}wh++;
while (Fcd == 10 && Scd == 10) 
{
	cout << "stuck in while " << wh << endl;
A = 5;
}wh++;
while (Fcd == 10 && Scd > 10) 
{
	cout << "stuck in while " << wh << endl;
A = 6;
}wh++;
while (Fcd < 10 && Scd < 10) 
{
	cout << "stuck in while " << wh << endl;
A = 7;
}wh++;
while (Fcd > 10 && Scd == 10) 
{
	cout << "stuck in while " << wh << endl;
A = 8;
}wh++;
while (Fcd < 10 && Scd == 10) 
{
	cout << "stuck in while " << wh << endl;
A = 9;
}wh++;


cout << " "; cout << (char)201 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)187;
cout << "\n "; cout << (char)186; cout << " The card game : \"WAR\" "; cout << (char)186;
cout << "\n "; cout << (char)200 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)188;
cout << "\n Your card Opponent's card ";
cout << "\n "; cout << (char)218 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)191; cout << " "; cout << (char)218 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)191;
switch (A) 
{
case 1: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 2: cout << "\n "; cout << (char)179 << (char)Fcd << " " << (char)179 << " " << (char)179 << (char)Scd << " " << (char)179;
break;
case 3: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << (char)Scd << " " << (char)179;
break;
case 4: cout << "\n "; cout << (char)179 << (char)Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 5: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 6: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << (char)Scd << " " << (char)179;
break;
case 7: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 8: cout << "\n "; cout << (char)179 << (char)Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 9: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
}
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)x << " " << (char)179 << " " << (char)179 << " " << (char)y << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
switch (A) 
{
case 1: cout << "\n "; cout << (char)179 << " " << Fcd << (char)179 << " " << (char)179 << " " << Scd << (char)179;
break;
case 2: cout << "\n "; cout << (char)179 << " " << (char)Fcd << (char)179 << " " << (char)179 << " " << (char)Scd << (char)179;
break;
case 3: cout << "\n "; cout << (char)179 << " " << Fcd << (char)179 << " " << (char)179 << " " << (char)Scd << (char)179;
break;
case 4: cout << "\n "; cout << (char)179 << " " << (char)Fcd << (char)179 << " " << (char)179 << " " << Scd << (char)179;
break;
case 5: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 6: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << (char)Scd << " " << (char)179;
break;
case 7: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 8: cout << "\n "; cout << (char)179 << (char)Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
case 9: cout << "\n "; cout << (char)179 << Fcd << " " << (char)179 << " " << (char)179 << Scd << " " << (char)179;
break;
}
cout << "\n "; cout << (char)192 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)217; cout << " "; cout << (char)192 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)196 << (char)217;
return 0;
}


when i run it, I get stuck in while most of the time. now and then, I get 3. Once I got 4. Conclusion: whatever those whiles are supposed to do, they are not updating something that lets them exit the loops. This is obvious when you read the code more carefully... the loops do not modify the condition, so once inside, its forever.
Last edited on
Hello Aftertimewaster,

After getting the code more readable I noticed:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include<iostream>
#include <string>

using namespace std;


int main()
{
    //srand((unsigned)time(0));
    srand(static_cast<unsigned int>(time(nullptr)));

    int x;
    x = (rand() % 4) + 3;

    int y;
    y = (rand() % 4) + 3;

    int Fcd;
    Fcd = (rand() % 13) + 2;

    int Scd;
    Scd = (rand() % 13) + 2;

    switch (Fcd)
    {
        case 11: 
            Fcd = 74;
            break;
        case 12: 
            Fcd = 81;
            break;
        case 13: 
            Fcd = 75;
            break;
        case 14: 
            Fcd = 65;
            break;
    }
    switch (Scd)
    {
        case 11: Scd = 74;
            break;
        case 12: Scd = 81;
            break;
        case 13: Scd = 75;
            break;
        case 14: Scd = 65;
            break;
    }

    int A;

    while (Fcd < 10 && Scd < 10)
    {
        A = 1;
    }

Looking at lines 19 and 22 the "rand" will first return a number between (0 and 12) then you add 2 to that, so the lowest number this will return is 2.

In the switch statements you have nothing to deal with any of the other possible numbers or a default case. So you could leave the switch with "Fcd" and "Scd" having the random number first assigned and this may not be what you want.

In the first while loop if "Fcd" and "Scd" both happen to be less than 11 you end up with an endless while loop because "Fcd" and "Scd" never change.

Then I noticed:
 
cout << " "; cout << (char)201 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)205 << (char)187;


You could write that as:
 
cout << " " << (char)201 << std::string(24, (char)205) << (char)187;

It would save you a lot of work in the end.

It is Unnecessary for a "cout" statement for each line, but when you do cout << " "; cout << (char)201 it is hard to read and easy to miss that there are 2 "cout" statements in 1 line.

The standard string is usually written as std::string(24, '-'). This is the standard string's fill constructor and creates a string with a size of 24 and fills all those elements with the minus sign. Be careful not all consoles could print the same character. A different type face could give (205) a completely different character or nothing printable.

Before your last switch you have:
1
2
3
4
5
6
7
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)x << " " << (char)179 << " " << (char)179 << " " << (char)y << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;
cout << "\n "; cout << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;


You could simplify that to:
1
2
3
4
5
6
7
8
    std::cout 
        << "\n " << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179
        << "\n " << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179
        << "\n " << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179
        << "\n " << (char)179 << " " << (char)x << " " << (char)179 << " " << (char)179 << " " << (char)y << " " << (char)179
        << "\n " << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179
        << "\n " << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179
        << "\n " << (char)179 << " " << (char)179 << " " << (char)179 << " " << (char)179;

As you can see they both produce the same output:

 │ │ │ │
 │ │ │ │
 │ │ │ │
 │ A │ │ K │
 │ │ │ │
 │ │ │ │
 │ │ │ │

 │ │ │ │
 │ │ │ │
 │ │ │ │
 │ A │ │ K │
 │ │ │ │
 │ │ │ │
 │ │ │ │

 Press Enter to continue:



Andy
@Aftertimewaster,
PLEASE USE CODE TAGS (the <> formatting button to the right of this box), when posting code.

Along with the proper indenting, it makes it easier to read your code, and thus also easier to respond to your post.

Tutorials on how to use code tags:

http://www.cplusplus.com/articles/jEywvCM9/
http://www.cplusplus.com/articles/z13hAqkS/

I found the second link to be the most help.

Hint: You can hit "edit post", highlight your code and then press the <> formatting button. This will not automatically indent your code. That part is up to you.

You can use the "preview" button at the bottom to see how it looks.


Thank you,
max
Topic archived. No new replies allowed.