-
Notifications
You must be signed in to change notification settings - Fork 0
/
war1-algorithm.txt
390 lines (362 loc) · 12.2 KB
/
war1-algorithm.txt
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
@copyrighted 1999 Valerie Colber
Full Name and Student ID Number:
Course and section: COMSC-110-5003
1. Objective (1 sentence brief description of what this will do): to play the card game war
2. Requirements (any and all requirements organized by input, processing, output, data):
INPUT (any data items to be input):
-answer
PROCESSING (list of significant parts of the objective that will become the list of code blocks in program):
1. data definitions
2. user introduction
3. set random number to the values
4. determine suit of the cards
5. determine who is the winner
OUTPUT (list of anything output: introduction, data items, labels, prompts) :
-user introduction: introduction of objective, author, user instructions/rules
-prompt "Computer's card is a " + computerCardvalue + " of " + computerCardsuit
-prompt "Human's card is a " + playerCardvalue + " of " + playerCardsuit
-label : "Computer wins : " + countC + "," + " Human wins: " + countU
-feedback "It's a tie. "
-feedback "Humans wins!"
-feedback "Computer wins!"
DATA (list of all data items: definition, data type, formatting, or any other specifications):
-cardValue = (integer) determine the number of card
-cardSuit = (integer) determine the shape of card
-answer = (character) user answer to choose whether to stop the program or not
-countC = (integer) determine computer win
-countU + (integer) determine user win
3. Algorithm instructions (recipe)
***data
1 set cardValue
2 set cardSuit
3 set answer
4 set countC=0
5 set countU=0
***introduction
6 output introduction: objective, author, instructions/rules
*** set random number to the values
7 set computer for table PlayingCard object
8 set user for table PlayingCard object
10 set computer's cardValue = random number from 2 to 14 [make up a number, or use a random number generator...]
20 set computer's cardSuit = random number from 0 to 3 [make up a number, or use a random number generator...]
30 set user's cardValue = random number from 2 to 14 [make up a number, or use a random number generator...]
40 set user's cardSuit = random number from 0 to 3 [make up a number, or use a random number generator...]
*** determine suit of the cards
41 if computer's cardValue is equal to 11 then output "Computer's card is a Jack" then skip to instruction 51
42 if computer's cardValue is equal to 12 then output "Computer's card is a Queen" then skip to instruction 51
43 if computer's cardValue is equal to 13 then output "Computer's card is a King" then skip to instruction 51
44 if computer's cardValue is equal to 14 then output "Computer's card is a Ace" then skip to instruction 51
45 if computer's cardValue is less than 11 then output "Computer's card is a" + computer's cardValue
51 if computerCardsuit is 0 then output " of Spades" then skip to instruction 60
52 if computerCardsuit is 1 then output " of Hearts" then skip to instruction 60
53 if computerCardsuit is 2 then output " of diomonds" then skip to instruction 60
54 if computerCardsuit is 3 then output " of Clubs"
60 if user's cardValue is equal to 11 then output "Player's card is a Jack" then skip to instruction 71
61 if user's cardValue is equal to 12 then output "Player's card is a Queen" then skip to instruction 71
62 if user's cardValue is equal to 13 then output "Player's card is a King" then skip to instruction 71
63 if user's cardValue is equal to 14 then output "Player's card is a Ace" then skip to instruction 71
70 if user's cardValue is less than 11 then output "Human's card is a " + player's cardValue
71 if playerCardsuit is 0 then output " of Spades" then skip to instruction 80
72 if playerCardsuit is 1 then output " of Hearts" then skip to instruction 80
73 if playerCardsuit is 2 then output " of diomonds" then skip to instruction 80
74 if playerCardsuit is 3 then output " of Clubs"
***determine who is the winner
80 if computerCardvalue is not equal to playerCardvalue then skip to 110
90 output feedback "It's a tie. "
100 skip to instruction 150
110 if computerCardvalue is less then playerCardvalue then skip to 140
120 countC = countC + 1
130 skip to instruction 150
140 countU = countU + 1
150 output label "Computer wins : " + countC + "," + " Human wins: " + countU
***subprogram for getYesOrNo
1600 set useranswer
1610 output label : "Continue ? [Y/N] "
1620 input user answer
1630 return useranswer to main function
160 answer = getYesOrNO
170 if answer is not eqaul to y or answer is not eqaul to Y or answer is not eqaul to n or answer is not eqaul to N skip to 1610
180 if answer is equal to n or N then skip to instruction 190
185 skip to instruction 7
190 output prompt "Thank you for playing the card game war"
999 END
4. Test cases (list purpose of each test case, any input values, and expected results)
Test case #1:
purpose : playing again
input value: y ,
expected result
Computer's card is a 10 of Hearts
Human's card is a 4 of Clubs
Computer wins : 1, Human wins: 0
Continue? [Y/N] y
Computer's card is a 7 of Diamonds
Human's card is a 2 of Clubs
Computer wins : 2, Human wins: 0
Continue? [Y/N]
...
1 set cardValue
2 set cardSuit
3 set answer
4 set countC
5 set countU
***introduction
6 output introduction: objective, author, instructions/rules
*** set random number to the values
7 set computer for table PlayingCard object
8 set user for table PlayingCard object
10 set computer's cardValue = 10
20 set computer's cardSuit = 1
30 set user's cardValue = 4
40 set user's cardSuit = 3
*** determine suit of the cards
41 false
42 false
43 false
44 false
45 true "Computer's card is a" + 10
51 false
52 true then output " of Hearts" then skip to instruction 60
60 false
61 false
62 false
63 false
70 true then output "Human's card is a " + 4
71 false
72 false
73 false
74 true then output " of Clubs"
***determine who is the winner
80 true then skip to 110
110 false
120 countC = 0 + 1 = 1
130 skip to instruction 150
150 output label "Computer wins : " + 1 + "," + " Human wins: " +0
***subprogram for getYesOrNo
1600 set useranswer
1610 output label : "Continue ? [Y/N] "
1620 input user answer = y
1630 return useranswer to main function
160 answer = getYesOrNO
170 false
180 false
185 skip to instruction 7
7 set computer for table PlayingCard object
8 set user for table PlayingCard object
10 set computer's cardValue = 7
20 set computer's cardSuit = 2
30 set user's cardValue = 2
40 set user's cardSuit = 3
*** determine suit of the cards
41 - 44 false
45 true then output "Computer's card is a" + 7
51 false
52false
53 true output " of diomonds" then skip to instruction 60
60-63 false
70 true then output "Human's card is a " + 2
71-73 false
74 true then output " of Clubs"
***determine who is the winner
80 truee then skip to 110
110 false
120 countC = 1 + 1 = 2
130 skip to instruction 150
150 output label "Computer wins : " + 2 + "," + " Human wins: " + 0
***subprogram for getYesOrNo
...
999 END
Test case #2:
purpose : playing twice
input value: n or N
expected result
Computer's card is a 10 of Hearts
Human's card is a 4 of Clubs
Computer wins : 1, Human wins: 0
Continue? [Y/N] y
Computer's card is a 7 of Diamonds
Human's card is a 2 of Clubs
Computer wins : 2, Human wins: 0
Continue? [Y/N] n
Thank you for playing the card game war
...
999 END
1 set cardValue
2 set cardSuit
3 set answer
4 set countC
5 set countU
***introduction
6 output introduction: objective, author, instructions/rules
*** set random number to the values
7 set computer for table PlayingCard object
8 set user for table PlayingCard object
10 set computer's cardValue = 10
20 set computer's cardSuit = 1
30 set user's cardValue = 4
40 set user's cardSuit = 3
*** determine suit of the cards
41 false
42 false
43 false
44 false
45 true "Computer's card is a" + 10
51 false
52 true then output " of Hearts" then skip to instruction 60
60 false
61 false
62 false
63 false
70 true then output "Human's card is a " + 4
71 false
72 false
73 false
74 true then output " of Clubs"
***determine who is the winner
80 true then skip to 110
110 false
120 countC = 0 + 1 = 1
130 skip to instruction 150
150 output label "Computer wins : " + 1 + "," + " Human wins: " +0
***subprogram for getYesOrNo
1600 set useranswer
1610 output label : "Continue ? [Y/N] "
1620 input user answer = y
1630 return useranswer to main function
160 answer = getYesOrNO
170 false
180 false
185 skip to instruction 7
7 set computer for table PlayingCard object
8 set user for table PlayingCard object
10 set computer's cardValue = 7
20 set computer's cardSuit = 2
30 set user's cardValue = 2
40 set user's cardSuit = 3
*** determine suit of the cards
41 - 44 false
45 true then output "Computer's card is a" + 7
51 false
52false
53 true output " of diomonds" then skip to instruction 60
60-63 false
70 true then output "Human's card is a " + 2
71-73 false
74 true then output " of Clubs"
***determine who is the winner
80 truee then skip to 110
110 false
120 countC = 1 + 1 = 2
130 skip to instruction 150
150 output label "Computer wins : " + 2 + "," + " Human wins: " + 0
***subprogram for getYesOrNo
1600 set useranswer
1610 output label : "Continue ? [Y/N] "
1620 input user answer = n
1630 return useranswer to main function
160 answer = getYesOrNO
170 false
180 true then skip to instruction 190
190 output prompt "Thank you for playing the card game war"
999 END
Test case #3 :
purpose : invalid input for useranswer
input values : 3 , k
expected result
Computer's card is a 10 of Hearts
Human's card is a 4 of Clubs
Computer wins : 1, Human wins: 0
Continue? [Y/N] 3
Continue? [Y/N] k
Continue? [Y/N] y
Computer's card is a 7 of Diamonds
Human's card is a 2 of Clubs
Computer wins : 2, Human wins: 0
Continue? [Y/N] n
Thank you for playing the card game war
1 set cardValue
2 set cardSuit
3 set answer
4 set countC
5 set countU
***introduction
6 output introduction: objective, author, instructions/rules
*** set random number to the values
7 set computer for table PlayingCard object
8 set user for table PlayingCard object
10 set computer's cardValue = 10
20 set computer's cardSuit = 1
30 set user's cardValue = 4
40 set user's cardSuit = 3
*** determine suit of the cards
41 false
42 false
43 false
44 false
45 true "Computer's card is a" + 10
51 false
52 true then output " of Hearts" then skip to instruction 60
60 false
61 false
62 false
63 false
70 true then output "Human's card is a " + 4
71 false
72 false
73 false
74 true then output " of Clubs"
***determine who is the winner
80 true then skip to 110
110 false
120 countC = 0 + 1 = 1
130 skip to instruction 150
150 output label "Computer wins : " + 1 + "," + " Human wins: " +0
***subprogram for getYesOrNo
1600 set useranswer
1610 output label : "Continue ? [Y/N] "
1620 input user answer = 3
1630 return useranswer to main function
160 answer = getYesOrNO
170 true skip to 1610
1610 output label : "Continue ? [Y/N] "
1620 input user answer = k
1630 return useranswer to main function
160 answer = getYesOrNO
170 true skip to 1610
1610 output label : "Continue ? [Y/N] "
1620 input user answer = y
1630 return useranswer to main function
160 answer = getYesOrNO
170 false
180 false
185 skip to instruction 7
7 set computer for table PlayingCard object
8 set user for table PlayingCard object
10 set computer's cardValue = 7
20 set computer's cardSuit = 2
30 set user's cardValue = 2
40 set user's cardSuit = 3
*** determine suit of the cards
41 - 44 false
45 true then output "Computer's card is a" + 7
51 false
52false
53 true output " of diomonds" then skip to instruction 60
60-63 false
70 true then output "Human's card is a " + 2
71-73 false
74 true then output " of Clubs"
***determine who is the winner
80 truee then skip to 110
110 false
120 countC = 1 + 1 = 2
130 skip to instruction 150
150 output label "Computer wins : " + 2 + "," + " Human wins: " + 0
***subprogram for getYesOrNo
1600 set useranswer
1610 output label : "Continue ? [Y/N] "
1620 input user answer = n
1630 return useranswer to main function
160 answer = getYesOrNO
170 false
180 true then skip to instruction 190
190 output prompt "Thank you for playing the card game war"