I'm trying to create a bingo game using Turing 4.1.1 and I have the cards, and I have the board, and I have it so it picks numbers and colours the ones that are unpicked. I have no idea how to compare the numbers on the card to check for 5 in a row horizontal, vertical or diagonal. I've thought about my code, but I just can't come to a solution.
So far I have this:
Turing: |
% %
%%%%Variables%%%%
var NR : int := 5 %Number of Rows
var NC : int := 5 %Number of Columns
var NCARDS : int := 5 %Number of Cards
var CARD : array 1 .. NCARDS, 1 .. NR, 1 .. NC of int
var RAND : int
var key : string (1)
var A : int
var B : int
var CARDFACTORforROW := 0
var CARDFACTORforCOLUMN := 0
var NUMS : array 1 .. 75 of int
var NUMBER : int
var MIN : int
var SPOT : int
var TEMP : array 1 .. NR of int
var SORTCARD : array 1 .. NCARDS, 1 .. NR, 1 .. NC of int
var Board : array 1 .. 75 of int
var Hopper : array 1 .. 75 of int
var ColourPalette : array 0 .. 1 of int
var Boardcolour : array 1 .. 75 of int
var Choice : int
var Picked : array 1 .. 75 of int
var CardColour : array 1 .. NCARDS, 1 .. NR, 1 .. NC of int
var BALLNUM : int := 0
var BINGO : boolean := false
ColourPalette (0) := brightblue
ColourPalette (1) := brightred
%%%%%%%%%%%%%%%%%
% %
proc Init
for i : 1 .. 75
Board (i ) := i
end for
for i : 1 .. 75
Picked (i ) := 0
end for
for i : 1 .. 75
Boardcolour (i ) := 0
end for
for x : 1 .. NCARDS
for k : 1 .. 75
NUMS (k ) := 0
end for
for i : 1 .. NR
for j : 1 .. NC
loop
NUMBER := Rand.Int ((j - 1) * 15 + 1, j * 15)
exit when NUMS (NUMBER ) = 0
end loop
CARD (x, i, j ) := NUMBER
NUMS (NUMBER ) := 1
end for
end for
end for
for x : 1 .. NCARDS
for i : 1 .. NR
for j : 1 .. NC
TEMP (j ) := CARD (x, i, j )
SORTCARD (x, i, j ) := 0
CardColour (x, i, j ) := 0
end for
end for
end for
end Init
proc Sort
for x : 1 .. NCARDS
for j : 1 .. NC
for i : 1 .. NR
TEMP (i ) := CARD (x, i, j )
end for
for i : 1 .. NR
MIN := 999
for k : 1 .. NR
if TEMP (k ) < MIN then
MIN := TEMP (k )
SPOT := k
end if
end for
TEMP (SPOT ) := 999
SORTCARD (x, i, j ) := MIN
end for
end for
end for
end Sort
proc PreChoose
var Rand1 : int
var Rand2 : int
var HopperTemp : int
for i : 1 .. 75
Hopper (i ) := i
end for
put ""
for i : 1 .. 1000
Rand1 := Rand.Int (1, 75)
Rand2 := Rand.Int (1, 75)
HopperTemp := Hopper (Rand1 )
Hopper (Rand1 ) := Hopper (Rand2 )
Hopper (Rand2 ) := HopperTemp
end for
put ""
end PreChoose
proc Boardproc
for x : 1 .. NCARDS
for i : 1 .. NR
for j : 1 .. NC
if Choice = SORTCARD (x, i, j ) then
CardColour (x, i, j ) := 1
end if
end for
end for
end for
end Boardproc
proc Display
CARDFACTORforROW := 0
CARDFACTORforCOLUMN := 0
for x : 1 .. NCARDS
for i : 1 .. NR
for j : 1 .. NC
A := i + CARDFACTORforROW
B := (j - 1) * 3 + 1 + CARDFACTORforCOLUMN
locate (A, B )
colour (ColourPalette (CardColour (x, i, j )))
put SORTCARD (x, i, j ) : 2
end for
end for
CARDFACTORforCOLUMN + = 22
if x = 4 or x = 8 or x = 12 then
CARDFACTORforROW + = 9
CARDFACTORforCOLUMN - = 88
end if
end for
put ""
for i : 1 .. 75
colour (ColourPalette (Boardcolour (i )))
put Board (i ) : 4 ..
end for
end Display
proc Bingo
for x : 1 .. NCARDS
for i : 1 .. NR
for j : 1 .. NC
%if ... then
BINGO := true
% end if
end for
end for
end for
end Bingo
%
%Mainline
%
Init
Sort
PreChoose
BALLNUM := 0
loop
BALLNUM + = 1
Choice := Hopper (BALLNUM )
Boardproc
Boardcolour (Choice ) := 1
%Picked (Choice) := 1
%locate (24, 30)
%put "The number is ", Hopper (BALLNUM)
Display
getch (key )
%Bingo
exit when BINGO
end loop
|
The Bingo procedure is where I've started the solving of the issue but I just don't know where to go from there. |