Programming C, C++, Java, PHP, Ruby, Turing, VB
Computer Science Canada 
Programming C, C++, Java, PHP, Ruby, Turing, VB  

Username:   Password: 
 RegisterRegister   
 Compsci class help(classes and methods)
Index -> Programming, Turing -> Turing Help
View previous topic Printable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic
Author Message
edwardz




PostPosted: Sun Apr 26, 2009 9:22 pm   Post subject: Compsci class help(classes and methods)

What is it you are trying to achieve?
Create a Chuckaluck dice game for my computer science class
Rules
Chuck-a-luck is very simple. The gambler selects an integer from 1 to 6, and then the three dice are rolled. if exactly k dice show the gambler's number, the payoff is K:1. Design your main to test the outcome of allowing the user to select a value for k and n. have the computer play n simulated rounds of chuck-a-luck using k as the user's value for each of the n rounds. output the outcome of the n plays along with how many time k occured by itself, as a double, as a triple and not at all.
We are learning about classes. So yeah. Dice class and shit like that.>.>

What is the problem you are having?
Program has minor flaws at end

Describe what you have tried to solve this problem
Making the variable global..passing the parameters


Post any relevant code (You may choose to attach the file instead of posting the code if it is too long)
%============================================================================
class Dice

export rollDie, drawDie, valueOfDie, value


var value : int := 1


procedure rollDie
randint (value, 1, 6)
end rollDie

function valueOfDie : int
result value
end valueOfDie

procedure drawDie (x, y, o : int)


if value = 1 then
Draw.FillOval (x + 10, y + 10, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
elsif value = 2 then
Draw.FillOval (5 + x, 5 + y, 2, 2, black)
Draw.FillOval (16 + x, 16 + y, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
elsif value = 3 then
Draw.FillOval (16 + x, 5 + y, 2, 2, black)
Draw.FillOval (10 + x, 10 + y, 2, 2, black)
Draw.FillOval (5 + x, 16 + y, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
elsif value = 4 then
Draw.FillOval (16 + x, 5 + y, 2, 2, black)
Draw.FillOval (5 + x, 16 + y, 2, 2, black)
Draw.FillOval (16 + x, 16 + y, 2, 2, black)
Draw.FillOval (5 + x, 5 + y, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
elsif value = 5 then
Draw.FillOval (16 + x, 16 + y, 2, 2, black)
Draw.FillOval (5 + x, 5 + y, 2, 2, black)
Draw.FillOval (10 + x, 10 + y, 2, 2, black)
Draw.FillOval (5 + x, 16 + y, 2, 2, black)
Draw.FillOval (16 + x, 5 + y, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
elsif value = 6 then
Draw.FillOval (7 + x, 16 + y, 2, 2, black)
Draw.FillOval (7 + x, 10 + y, 2, 2, black)
Draw.FillOval (7 + x, 4 + y, 2, 2, black)
Draw.FillOval (15 + x, 16 + y, 2, 2, black)
Draw.FillOval (15 + x, 10 + y, 2, 2, black)
Draw.FillOval (15 + x, 4 + y, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
end if
end drawDie

end Dice
%=============================================================================
class Chuckaluck
import Dice
export rollDice, drawDice, getPoint

var die1 : ^Dice
var die2 : ^Dice
var die3 : ^Dice

new die1
new die2
new die3

procedure Sort2 (var A : ^Dice, var B : ^Dice)
var C : ^Dice

if A -> valueOfDie > B -> valueOfDie then
C := A
A := B
B := A
end if

end Sort2

procedure Sort
Sort2 (die1, die2)
Sort2 (die2, die3)
Sort2 (die1, die2)
end Sort

procedure rollDice
die1 -> rollDie
die2 -> rollDie
die3 -> rollDie
Sort

end rollDice

procedure drawDice
var number : int
var value : int
var intx : int
var into : int
var inty : int
rollDice
intx := 1
inty := 1
into := 0

die1 -> drawDie (intx, inty, into)
intx := 25
inty := 1
into := 25

die2 -> drawDie (intx, inty, into)
intx := 50
inty := 1
into := 50

die3 -> drawDie (intx, inty, into)
end drawDice

procedure getPoint (var k : int, var point : int)


if die1 -> valueOfDie = k then
point := point + 1
end if
if die1 -> valueOfDie = k then
point := point + 1
end if
if die1 -> valueOfDie = k then
point := point + 1
end if

end getPoint

end Chuckaluck
%=========================================================================


var die1 : int
var die2 : int
var die3 : int
var answer : int
var answer2 : int
var value : int
var n, k : ^Chuckaluck
var rounds : int
var values : int
var point : int
var counter : int
new Chuckaluck, n
new k
counter := 0
randomize
View.Set ("graphics")
point:=0
put "Enter K value"
get answer
put "Enter N value"
get answer2

loop

n -> rollDice
k -> drawDice
n -> getPoint (answer, point)
counter := counter + 1
put "The number of dice equal to the number is", " ", point
%- delay (50)
cls
exit when counter = answer2
end loop

Turing:






Please specify what version of Turing you are using
3.1.1a
Sponsor
Sponsor
Sponsor
sponsor
Dusk Eagle




PostPosted: Sun Apr 26, 2009 9:59 pm   Post subject: Re: Compsci class help(classes and methods)

Your code goes inside the syntax tags, like this:
[syntax="turing"]

CODE HERE!!!

[/syntax]
edwardz




PostPosted: Sun Apr 26, 2009 10:04 pm   Post subject: Re: Compsci class help(classes and methods)

What is it you are trying to achieve?
Create a Chuckaluck dice game for my computer science class
Rules
Chuck-a-luck is very simple. The gambler selects an integer from 1 to 6, and then the three dice are rolled. if exactly k dice show the gambler's number, the payoff is K:1. Design your main to test the outcome of allowing the user to select a value for k and n. have the computer play n simulated rounds of chuck-a-luck using k as the user's value for each of the n rounds. output the outcome of the n plays along with how many time k occured by itself, as a double, as a triple and not at all.
We are learning about classes. So yeah. Dice class and shit like that.>.>

What is the problem you are having?
Program has minor flaws at end

Describe what you have tried to solve this problem
Making the variable global..passing the parameters


Post any relevant code (You may choose to attach the file instead of posting the code if it is too long)
Turing:

%============================================================================
class Dice

export rollDie, drawDie, valueOfDie, value


var value : int := 1


procedure rollDie
randint (value, 1, 6)
end rollDie

function valueOfDie : int
result value
end valueOfDie

procedure drawDie (x, y, o : int)


if value = 1 then
Draw.FillOval (x + 10, y + 10, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
elsif value = 2 then
Draw.FillOval (5 + x, 5 + y, 2, 2, black)
Draw.FillOval (16 + x, 16 + y, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
elsif value = 3 then
Draw.FillOval (16 + x, 5 + y, 2, 2, black)
Draw.FillOval (10 + x, 10 + y, 2, 2, black)
Draw.FillOval (5 + x, 16 + y, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
elsif value = 4 then
Draw.FillOval (16 + x, 5 + y, 2, 2, black)
Draw.FillOval (5 + x, 16 + y, 2, 2, black)
Draw.FillOval (16 + x, 16 + y, 2, 2, black)
Draw.FillOval (5 + x, 5 + y, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
elsif value = 5 then
Draw.FillOval (16 + x, 16 + y, 2, 2, black)
Draw.FillOval (5 + x, 5 + y, 2, 2, black)
Draw.FillOval (10 + x, 10 + y, 2, 2, black)
Draw.FillOval (5 + x, 16 + y, 2, 2, black)
Draw.FillOval (16 + x, 5 + y, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
elsif value = 6 then
Draw.FillOval (7 + x, 16 + y, 2, 2, black)
Draw.FillOval (7 + x, 10 + y, 2, 2, black)
Draw.FillOval (7 + x, 4 + y, 2, 2, black)
Draw.FillOval (15 + x, 16 + y, 2, 2, black)
Draw.FillOval (15 + x, 10 + y, 2, 2, black)
Draw.FillOval (15 + x, 4 + y, 2, 2, black)
Draw.Box (1 * x, 1 * y, 20 + o, 20, black)
end if
end drawDie

end Dice
%=============================================================================
class Chuckaluck
import Dice
export rollDice, drawDice, getPoint

var die1 : ^Dice
var die2 : ^Dice
var die3 : ^Dice

new die1
new die2
new die3

procedure Sort2 (var A : ^Dice, var B : ^Dice)
var C : ^Dice

if A -> valueOfDie > B -> valueOfDie then
C := A
A := B
B := A
end if

end Sort2

procedure Sort
Sort2 (die1, die2)
Sort2 (die2, die3)
Sort2 (die1, die2)
end Sort

procedure rollDice
die1 -> rollDie
die2 -> rollDie
die3 -> rollDie
Sort

end rollDice

procedure drawDice
var number : int
var value : int
var intx : int
var into : int
var inty : int
rollDice
intx := 1
inty := 1
into := 0

die1 -> drawDie (intx, inty, into)
intx := 25
inty := 1
into := 25

die2 -> drawDie (intx, inty, into)
intx := 50
inty := 1
into := 50

die3 -> drawDie (intx, inty, into)
end drawDice

procedure getPoint (var k : int, var point : int)


if die1 -> valueOfDie = k then
point := point + 1
end if
if die1 -> valueOfDie = k then
point := point + 1
end if
if die1 -> valueOfDie = k then
point := point + 1
end if

end getPoint

end Chuckaluck
%=========================================================================


var die1 : int
var die2 : int
var die3 : int
var answer : int
var answer2 : int
var value : int
var n, k : ^Chuckaluck
var rounds : int
var values : int
var point : int
var counter : int
new Chuckaluck, n
new k
counter := 0
randomize
View.Set ("graphics")
point:=0
put "Enter K value"
get answer
put "Enter N value"
get answer2

loop

n -> rollDice
k -> drawDice
n -> getPoint (answer, point)
counter := counter + 1
put "The number of dice equal to the number is", " ", point
%- delay (50)
cls
exit when counter = answer2
end loop







Please specify what version of Turing you are using
3.1.1a
wtd




PostPosted: Sun Apr 26, 2009 10:22 pm   Post subject: RE:Compsci class help(classes and methods)

Indenting helps.
Dusk Eagle




PostPosted: Sun Apr 26, 2009 10:38 pm   Post subject: Re: Compsci class help(classes and methods)

In your getPoint procedure, (which should be a function, btw), you are calling "die1 -> valueOfDie" three times. Shouldn't you be using die2 and die3? (It would also be better practice to make die1, die2, and die3 into a single array, but this isn't essential.)
Display posts from previous:   
   Index -> Programming, Turing -> Turing Help
View previous topic Tell A FriendPrintable versionDownload TopicSubscribe to this topicPrivate MessagesRefresh page View next topic

Page 1 of 1  [ 5 Posts ]
Jump to:   


Style:  
Search: