-1

Note: started F# 4 days back so consider before giving a negative vote please. Or at least let me know what i am doing wrong to receive all the negative Votes.

Inteligence.fs

module Inteligence
open TTTAiFSharpAlphaBeta
open Boards

type Node(board: Board, moveBox :int, point:int)=
    let mutable _moveBox:int=moveBox
    let mutable _point:int=point
    let mutable _board=new Board(board)
    let mutable _parent= board

    new() = Node(new Board(),0,0)
    new(board: Board)= new Node(new Board(board),0,0)

    member this.MoveBox with get() = _moveBox and set(value) = _moveBox <- value
    member this.Point with get() = _point and set(value) = _point <- value
    member this.Board with get() = _board and set(value) = _board <- value
    member this.Parent with get() = _parent and set(value) = _parent <- value

    member this.Copy(node: Node)= 
             _board<- new Board(node.Board)
             _moveBox<- node.MoveBox
             _point<- node.Point
             _parent<- node.Parent




type Inteligence(board:Board,symbol:int)=
    let mutable _nodeCount=0;
    let mutable _rootNode= new Node(board)
    let mutable _level = 0
    let mutable _symbol = symbol
    let mutable _reff = new Boards.Reffery()

    member this.NodeCount with get() = _nodeCount and set(value) = _nodeCount <- value
    member this.RootNode with get() = _rootNode and set(value) = _rootNode <- value
    member this.Level with get() = _level and set(value) = _level <- value
    member this.Symbol with get() = _symbol and set(value) = _symbol <- value

    member this.Move() :int = 0
    member this.MinMaxAlphaBeta(node:Node, min:bool,  alpha:int,  beta:int):int=0
    member this.BoardPoint(node:Node):int=0

AI.fs

    module TTTAiFSharpAlphaBeta
    open AIInterface
    open Boards
    type AI()= 
            let mutable cboard =new Board()
            let mutable level = 0
            let mutable symbol = 0
            interface IAI with
                member this.SetAi (_board: Board ,_level, _symbol)  =
                     cboard <- _board
                     level  <- _level
                     symbol <- _symbol
                member this.GetAiName()="F#AlphaBetaAi"
                member this.GetAiVersion()="0.0.1"
                member this.GetLevel()= [| 3 |];
                member this.AiMove()=
                           Inteligence.Inteligence(cboard,symbol).Move()

The problem is i can't access

Move()

from Inteligence.fs

member this.AiMove()=
         Inteligence.Inteligence(cboard,symbol).Move()

in AI.fs

Getting Error The namespace or module 'Inteligence' is not defined What am i doing wrong?

Taufiq Abdur Rahman
  • 1,348
  • 4
  • 24
  • 44
  • possible duplicate of [F# defining and using a namespace in the same project](http://stackoverflow.com/questions/172888/f-defining-and-using-a-namespace-in-the-same-project) – Ruben Bartelink Oct 07 '13 at 23:23
  • or http://stackoverflow.com/questions/1608240/how-do-i-reference-types-in-different-f-files - either way this is a dup – Ruben Bartelink Oct 07 '13 at 23:25

1 Answers1

2

I am guessing that you are using fsi (from the #r).

If you are you need to use

#load "Intelligence.fs"

If in visual studio you need to make sure Intelligence.fs is before the other file in the project list (F# is sensitive to the order files are compiled in)

Tomas Petricek
  • 240,744
  • 19
  • 378
  • 553
John Palmer
  • 25,356
  • 3
  • 48
  • 67