• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Programming |OT| C is better than C++! No, C++ is better than C

upandaway

Member
Double precision floating point is a binary format. I do not recommend trying to process it using decimal arithmetic. It will be a lot easier to avoid rounding errors if you work with base-2 arithmetic.

I would suggest denormalizing the number by repeatedly multiplying or dividing it by 2 until you have converted the mantissa to an unsigned 64-bit integer and have the exponent for the denormalized number.

Alternatively, you could do this by bit casting the double to a long int and extracting the bit fields, but it sounds like you are saying you are not allowed to use pointers.

From that point, you should be able to separate the the mantissa into the integral and fractional parts using bit operations. At that point, it is safe to do the conversion with base-10 arithmetic.

There are a couple things to be careful about with this approach. Don't forget about the implicit leading one. Make sure to take the absolute value of the input number. Figure out whether you are expected to handle special cases, like zero, subnormals, NaN, or infinity.

Let me also add that doing a C-style cast of double to int
Code:
(int) my_double
is not safe, because it is possible for a double to hold values that are larger than the maximum int value.
tokkun I'll die. This is just week 5 homework in an intro course, there's no way it's that complicated!

I desperately wanted to avoid this, but maybe they wanted me to do the entire calculation while going over the buffer with a single char?

Took a quick look at it:

0FkKSm2.png


meh
 
What's the scale of the problem supposed to be? You could do Monte Carlo integration which does not seem overly difficult to implement (in its simplest form). There's also a lot of ways in which you could refine the process.
It needs to be a bit more complex than that.

I told my professor that I'd do something with hill climbing using Monte Carlo simulation, but I am just unsure what to do (well, I could always change it to something else).

In class, we did Monte Carlo simulation for blackjack (getting probabilities of to hit or to stay against the dealer).

Have any idea of games that I can apply Monte Carlo simulation to?
 
It needs to be a bit more complex than that.

I told my professor that I'd do something with hill climbing using Monte Carlo simulation, but I am just unsure what to do (well, I could always change it to something else).

In class, we did Monte Carlo simulation for blackjack (getting probabilities of to hit or to stay against the dealer).

Have any idea of games that I can apply Monte Carlo simulation to?

If you want to apply it to games you could go for something like Chess or Go? http://en.wikipedia.org/wiki/Monte_Carlo_tree_search

Definitely pick something very hard to do with more traditional tree search approaches.
 
tokkun I'll die. This is just week 5 homework in an intro course, there's no way it's that complicated!

I desperately wanted to avoid this, but maybe they wanted me to do the entire calculation while going over the buffer with a single char?

Took a quick look at it:


meh

You definitely have the right idea here. There's no need to do anything more complex than a simple state machine and sum as you go.
 

diaspora

Member
I'm unfamiliar with both Java and C#, is it possible to learn both concurrently? I've gotten my feet wet with some C++ console applications and I want to move into Android development so I figured both Java and C# would be useful.
 

Granadier

Is currently on Stage 1: Denial regarding the service game future
I'm unfamiliar with both Java and C#, is it possible to learn both concurrently? I've gotten my feet wet with some C++ console applications and I want to move into Android development so I figured both Java and C# would be useful.

If you want to learn Android development, just start with Java. It is the native language for Android applications.

Use Android Studio instead of Visual Studio if you're going to be building Android apps.
 

diaspora

Member
It's purpose built for Android development, and it doesn't run like ass.

Fair enough. I was mostly curious about what advantages it would normally hold over using Xamarin in VS. IIRC the latter is getting an emulator too. At least it's supposed to be better than Eclipse.
 
Could use some help with some very basic Python. I'm having trouble understanding something:

I am working on an exercise from this website: http://learnpythonthehardway.org/book/ex35.html

Line of interest is:
def cthulhu_room():
print "Here you see the great evil Cthulhu."
print "He, it, whatever stares at you and you go insane."
print "Do you flee for your life or eat your head?"

choice = raw_input("> ")

if "flee" in choice:
start()
elif "head" in choice:
dead("Well that was tasty!")
else:
cthulhu_room()

I was trying to expand upon it by adding more options for what the raw input could be.

I tried doing:

if "flee" or "run" in choice:
start()
elif "head" or "eat" in choice:
dead("Well that was tasty!")
else:
cthulu_room()

However this didn't work. When I ran the program it would always do the flee sequence. Even if I typed nonsense inputs. It never did the cthulu_room() or dead() sequences. I don't get why it somehow defaulted to the if statement and not the elif or else statements.

I was able to fix it by doing:

if "flee" in choice or "run" in choice:

and

if "eat" in choice or "head" in choice:

But I don't understand why I needed to repeat "in choice" for each new term I wanted to add as a valid input. Can anyone explain?
 

hitsugi

Member
Wait, visual studio for Java? I've tried eclipse about a billion times and always loathed it's UI, but intellij has been pretty nice so far.
 

Saprol

Member
But I don't understand why I needed to repeat "in choice" for each new term I wanted to add as a valid input. Can anyone explain?

You use OR to separate two different conditions that you want to check for truth. So it's viewed as either ("flee") or ("run" in choice). Non-empty strings evaluate to true causing you to ignore any other if-else statements.
 

Granadier

Is currently on Stage 1: Denial regarding the service game future
Fair enough. I was mostly curious about what advantages it would normally hold over using Xamarin in VS. IIRC the latter is getting an emulator too. At least it's supposed to be better than Eclipse.

It just seems backwards to try and use VS for developing instead of the program that Google created with Jetbrains to make development easier.
It includes emulators, SDK downloads/update, code completion, Gradle builds, full debugging, Logcat output, and much more.

The IDE is still in beta, but it has outpaced Eclipse by leaps and bounds already.
 

Atruvius

Member
Fair enough. I was mostly curious about what advantages it would normally hold over using Xamarin in VS. IIRC the latter is getting an emulator too. At least it's supposed to be better than Eclipse.

And Intellij is a great IDE. Though VS with ReSharper is nearly as good as Intellij.
 
just a quick question

as is stated im still pretty early in Java
Im doing flow charts and i must say i find using "Switch statements" over "If statements"why more better
it gives me less clutter and i find myself easily being able to track back with it in comparison to "If statements".

but as to my question,
is there any scenarios where "If statements" are better use than "switch statements" ?

in other words, can If Statements do anything that Switch statements cant?
 
in other words, can If Statements do anything that Switch statements cant?

Sure, just an example off the top of my head, think of compound conditionals. Write a switch statement for this

Code:
if (isMario && !isEnemyBowser)
{
}
If you're telling me you'd write

Code:
switch (isEnemyBowser)
{
       case false:
             switch (isMario)
             {
                    case true:
                         // do whatever
                         break;
             }
             break;
}

I'd tell you you're smoking crack. But then, I'm not terribly familiar with Java in particular, so maybe it provides a simpler "switch" syntax than, say, C#.
 
Sure, just an example off the top of my head, think of compound conditionals. Write a switch statement for this

Code:
if (isMario && !isEnemyBowser)
{
}
If you're telling me you'd write

Code:
switch (isEnemyBowser)
{
       case false:
             switch (isMario)
             {
                    case true:
                         // do whatever
                         break;
             }
             break;
}

I'd tell you you're smoking crack. But then, I'm not terribly familiar with Java in particular, so maybe it provides a simpler "switch" syntax than, say, C#.

Hahahaha i found that more funny than i should of haha

yeah your right i didn't think about "Ands" "Nands" and "Ors"
 
just a quick question

as is stated im still pretty early in Java
Im doing flow charts and i must say i find using "Switch statements" over "If statements"why more better
it gives me less clutter and i find myself easily being able to track back with it in comparison to "If statements".

but as to my question,
is there any scenarios where "If statements" are better use than "switch statements" ?

in other words, can If Statements do anything that Switch statements cant?

Switch is better for evaluating a single condition that might have a bunch of different results, I often use it for state machines.

ie switch(m_eGameState)
{
case eGameState_PlayerTurn:
{
}
break;
case eGameState_ComputerTurn:
{
}
break;
case eGameState_GameOver:
{
}
break;
}

If conditionals are better for more complex conditions.
 

Slavik81

Member
Code:
switch (isEnemyBowser)
{
       case false:
             switch (isMario)
             {
                    case true:
                         // do whatever
                         break;
             }
             break;
}

I'd tell you you're smoking crack. But then, I'm not terribly familiar with Java in particular, so maybe it provides a simpler "switch" syntax than, say, C#.

In C++, you'd just be able to write this: (not that you would, just that you could)
Code:
switch (isMario && !isEnemyBowser)
{
       case true:
            // do whatever
            break;
}

I'm kind of surprised that you'd be unable to do the same in C#. My expectation would be that a switch would take the result of an expression.
 
In C++, you'd just be able to write this: (not that you would, just that you could)
Code:
switch (isMario && !isEnemyBowser)
{
       case true:
            // do whatever
            break;
}

I'm kind of surprised that you'd be unable to do the same in C#. My expectation would be that a switch would take the result of an expression.

C# and Java are able to do that. You just wouldn't for readability reasons. Switches are unnecessary for boolean values since your limit is only ever two values.
 
In C++, you'd just be able to write this: (not that you would, just that you could)
Code:
switch (isMario && !isEnemyBowser)
{
       case true:
            // do whatever
            break;
}

I'm kind of surprised that you'd be unable to do the same in C#. My expectation would be that a switch would take the result of an expression.

C# and Java are able to do that. You just wouldn't for readability reasons. Switches are unnecessary for boolean values since your limit is only ever two values.

You're, of course, correct, you could use the expression and I didn't fully think that part through as I typed the otherwise simple example. I ultimately agree with what Purple Cheeto said, however, about "switch" being more ideal for when multiple values need to be handled, and "if" for when it's essentially a binary choice (a single if/else) or when there are multiple possibly mixed conditions to evaluate (such as if (x && y) else if (a && b) else...).
 

Ya no

Member
Wasn't really sure where to post this question so I thought I'd try here.

Say I have a file with 1000 IP addresses from a firewall log and I want to find the country each IP is from (for a project where I have to make a map of something). Does anyone know of a script/program I could use to do this for me?

If not, I have some basic programming skills so I might try to do it myself, but I'd love some suggestions on how you guys think I could accomplish what I want. Thanks!
 

diaspora

Member
It just seems backwards to try and use VS for developing instead of the program that Google created with Jetbrains to make development easier.
It includes emulators, SDK downloads/update, code completion, Gradle builds, full debugging, Logcat output, and much more.

The IDE is still in beta, but it has outpaced Eclipse by leaps and bounds already.

I just don't get what makes Android Studio better than Xamarin in VS. The latter has emulators and everything no?

And Intellij is a great IDE. Though VS with ReSharper is nearly as good as Intellij.

ReSharper looks awesome, thanks!
 

danthefan

Member
PythonGAF - I'm making my way through Learn Python The Hard Way at the moment and I expect I'll be finished up soon enough. I don't really have any projects in mind or anything but I know I'm going to need Python for work at some unspecified point in the future, so would like to become at least semi-competent in it, so basically just wondering would anyone have a decent recommendation for where to go once I'm done? Like a book or another slightly more advanced online resource?
 
Using C++, if I have a vector of user-created class, how would I add to it if the class requires more than one argument? Would it be vector.push_back((all arguments in parentheses)) or maybe vector.push_back(all, arguments, between, commas)?

Code:
vector<Edge> Graph;
...
class Edge {
    public:
        explicit Edge(int weight, int source_vertex, int dest_vertex) :
                                   edge_weight{weight}, first_vertex{source_vertex},
                                   second_vertex{dest_vertex} {
        }
...
 
Using C++, if I have a vector of user-created class, how would I add to it if the class requires more than one argument? Would it be vector.push_back((all arguments in parentheses)) or maybe vector.push_back(all, arguments, between, commas)?

Code:
vector<Edge> Graph;
...
class Edge {
    public:
        explicit Edge(int weight, int source_vertex, int dest_vertex) :
                                   edge_weight{weight}, first_vertex{source_vertex},
                                   second_vertex{dest_vertex} {
        }
...
You need to explicitly make a temporary copy... Or, if you're using c++11, you can use emplace_back() to pass along the arguments like you've suggested!
 
You need to explicitly make a temporary copy... Or, if you're using c++11, you can use emplace_back() to pass along the arguments like you've suggested!

Unforunately, C++98 :(

Code:
vector<Edge> graph;
Edge temp {10, 1, 2};
graph.push_back(temp);
Like that? That could get tedious fast for medium to large amounts of inserts.

EDIT: Actually, that could be functioned away in a loop after the initialization.
 
Unforunately, C++98 :(

Code:
vector<Edge> graph;
Edge temp {10, 1, 2};
graph.push_back(temp);
Like that? That could get tedious fast for medium to large amounts of inserts.

EDIT: Actually, that could be functioned away in a loop after the initialization.
98? You're stretching the limits of my knowledge, then. ;p

Braces initialization will try to initialize the members directly (better to use parens to hit the constructor), but yeah, that's the gist. You should also be able to do:
Code:
vector<Edge> graph;
graph.push_back( Edge(10, 1, 2) );

Since it's a temporary copy, you don't actually need to name it.
 

Kopite

Member
Any good UML modelling plugins for NetBeans where I can generate UML diagrams from existing code? Everything I've found online hasn't worked for me.
 

Granadier

Is currently on Stage 1: Denial regarding the service game future
"I feel like some of the most productive programming is done on a project when you should be working on something else."
- Einstein
 
Wasn't really sure where to post this question so I thought I'd try here.

Say I have a file with 1000 IP addresses from a firewall log and I want to find the country each IP is from (for a project where I have to make a map of something). Does anyone know of a script/program I could use to do this for me?

If not, I have some basic programming skills so I might try to do it myself, but I'd love some suggestions on how you guys think I could accomplish what I want. Thanks!

You could write a simple Python or bash script to run through the file and hit up https://freegeoip.net or a similar http service. That's a very straighforward task. This Python tutorial pretty much covers everything you need other than reading in the file (which is also very simple).
 

squidyj

Member
So I'm curious how offensive this 'pattern' is.
What I have is a free function, 'identity' that is supposed to construct an identity matrix, but it can't actually do that since it can't deduce the matrix to construct from only a return type.

So instead, it returns a particular type which matches the signature of a particular identity constructor within the matrix itself, allowing the matrix to construct its own identity matrix.


Code:
//something of a unique type that can be returned by the identity function
struct identity_matrix { 
};

.
.
.
	//identity constructor
	Matrix(identity_matrix p)
	{
		for(int i = 0; i < n; i++)
			for(int j = 0; j < m; j++)
				data[i * rowOffset + j * colOffset]  = (i == j) ? 1 : 0; 
	}
.
.
.
//the identity function only pretends to construct an identity matrix
//in reality it just indicates to a given matrix that it should use its
//identity constructor 
identity_matrix identity()
{
	identity_matrix m;
	return m;
}


//and then calling it
Mat4 m = identity();


I have to say I'm really enjoying writing this library so far. it's only a piece of the larger project i'm working on but since it's my own project I get to worry a lot about how maintainable (and eventually performant as I add in SSE definitions, etc for lots of my operations) the code is, and exactly what the syntax of interacting with it should be. I've learned stuff that I probably wouldn't have if this had been a project on a strict schedule where I would have been more likely to use what I already knew and was comfortable with to achieve an expedient result.
 

Heysoos

Member
Hoping someone can help me here. I have to build an ADT in c++ that basically stacks something, in the example it's A-F in a pyramid like structure. So for example when you send it A-F, the pyramid would end up with A B D in the bottom row, C E, in the middle row and F in the top most row. So when you unstack it the order should be F E C D B A.


If someone would so kindly nudge my brain in the right direction of how to solve this I'd appreciate it. Before completely reading the problem I just basically made it a stack, but that ends up coming back in order of F E D C B A. And I have to make sure it deals with any number of blocks. Any help would be appreciated.
 
Hoping someone can help me here. I have to build an ADT in c++ that basically stacks something, in the example it's A-F in a pyramid like structure. So for example when you send it A-F, the pyramid would end up with A B D in the bottom row, C E, in the middle row and F in the top most row. So when you unstack it the order should be F E C D B A.


If someone would so kindly nudge my brain in the right direction of how to solve this I'd appreciate it. Before completely reading the problem I just basically made it a stack, but that ends up coming back in order of F E D C B A. And I have to make sure it deals with any number of blocks. Any help would be appreciated.
Let me think..
get the triangular root of the number of letters
fill that many stacks with the last letter
skip a stack and continue
unstack

hmm then you would end up with the reversed order. Can you add something to the bottom of the stack or reverse each stack?

[edit]
Code:
[SPOILER]<?php
$input = str_split('abcdef');
$rows = (sqrt((count($input)*8)+1)-1)/2;

for ($i=0;$i<$rows;++$i) {
    for ($j=$i;$j<$rows;++$j) {
        $stack[$j][$j-$i] = array_pop($input);
    }
}
[/SPOILER]
 
Hoping someone can help me here. I have to build an ADT in c++ that basically stacks something, in the example it's A-F in a pyramid like structure. So for example when you send it A-F, the pyramid would end up with A B D in the bottom row, C E, in the middle row and F in the top most row. So when you unstack it the order should be F E C D B A.


If someone would so kindly nudge my brain in the right direction of how to solve this I'd appreciate it. Before completely reading the problem I just basically made it a stack, but that ends up coming back in order of F E D C B A. And I have to make sure it deals with any number of blocks. Any help would be appreciated.

Let me think..
get the triangular root of the number of letters

It sounds like you have to be able to add elements as needed and it should just stack them up, is that correct? In that case you can't know the number of elements ahead of time. Try to think of the base case, and then a simple recursive step you can apply. If you think of a pyramid as a stack of vectors, where each vector must have 1 less item than the one below it. On insertion, if none of the vectors violate this rule you know it's time for a new row. You can apply this idea in reverse for removal from the pyramid. Basically, think very carefully about the order of stacking when dealing with 1 individual element at a time.
 
So I finally started working with Bjarne Stroustrup's 'Programming - Principles and Practive Using C++' to gain knowledge of programming and C++. I worked through the first chapter and the first exercise is to write the simple Hello, World! program. I am a Mac user, so I thought using Textmate or xCode would be better suited than doing boot camp with Visual Studio.

So yeah, I did the simple code:
Code:
#include "std_lib_facilities.h"
int main(){
	cout<<"Hello, World!\n";
	keep_window_open();
	return 0;
}
I guess, that should be correct, shouldn't it?

But if I try to compile, it gives me this error message:
Code:
In file included from folders/hello_world.cpp:1:
std_lib_facilities.h:71:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
        using size_type = typename std::vector<T>::size_type;
                          ^
std_lib_facilities.h:102:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
        using size_type = std::string::size_type;
                          ^
std_lib_facilities.h:107:8: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
                if (i<0||size()<=i) throw Range_error(i);
                    ~^~
std_lib_facilities.h:113:8: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare]
                if (i<0||size()<=i) throw Range_error(i);
                    ~^~
std_lib_facilities.h:213:107: error: expected '(' for function-style cast or type construction
inline int randint(int min, int max) { static default_random_engine ran; return uniform_int_distribution<>{min, max}(ran); }
                                                                                ~~~~~~~~~~~~~~~~~~~~~~~~~~^
std_lib_facilities.h:222:20: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using Value_type = typename C::value_type;
                   ^
std_lib_facilities.h:225:18: warning: alias declarations are a C++11 extension [-Wc++11-extensions]
using Iterator = typename C::iterator;
                 ^
6 warnings and 1 error generated.

As a newbie, I have no clue what happened. But the first glimpse tells me, that something is wrong with the header file? The header is findable on this site.

I hope you guys can help.
 
So I finally started working with Bjarne Stroustrup's 'Programming - Principles and Practive Using C++' to gain knowledge of programming and C++. I worked through the first chapter and the first exercise is to write the simple Hello, World! program. I am a Mac user, so I thought using Textmate or xCode would be better suited than doing boot camp with Visual Studio.

So yeah, I did the simple code:
Code:
#include "std_lib_facilities.h"
int main(){
	cout<<"Hello, World!\n";
	keep_window_open();
	return 0;
}
I guess, that should be correct, shouldn't it?

But if I try to compile, it gives me this error message:
Code:
...

As a newbie, I have no clue what happened. But the first glimpse tells me, that something is wrong with the header file? The header is findable on this site.

I hope you guys can help.

What compiler and compiler options are you using? Using gcc 4.8.3 with the following console command, it works with that header.
Code:
g++ --std=c++11 -Wall -o main main.cpp
 
As a newbie, I have no clue what happened. But the first glimpse tells me, that something is wrong with the header file? The header is findable on this site.

I hope you guys can help.

Most of your errors are telling you you're using C++11 features which means you're trying to compile to the C++98 standard. Like closer to the edge said, use the 'std=c++11' flag when compiling with gcc as it defaults to 'std=c++98'.
 
Most of your errors are telling you you're using C++11 features which means you're trying to compile to the C++98 standard. Like closer to the edge said, use the 'std=c++11' flag when compiling with gcc as it defaults to 'std=c++98'.

The C++11 compiler messages are only warnings, which makes me think he has -Wextra on, but is still compiling with C++11 support. The only compiler error is in the randint function. The gcc version that ships with Mac OS is pretty ancient IIRC, so I'd guess that's why it's not compiling.
 

diaspora

Member
Android Studio has no business using 1GB+ of memory, god damn.

edit: 20 mins to start the emulator, lol. It'd be faster to buy a phone at the local mall.
 
The C++11 compiler messages are only warnings, which makes me think he has -Wextra on, but is still compiling with C++11 support. The only compiler error is in the randint function. The gcc version that ships with Mac OS is pretty ancient IIRC, so I'd guess that's why it's not compiling.

That's what I get for reading too fast. Well, still good info to know for a later time.
 

nOoblet16

Member
Ok this is a simple java code and I really should have no trouble with it but I don't know why the scanner is giving me a token mismatch error. Any takers? :p

Code:
public class Task3 {
	static Scanner console = new Scanner (System.in); 
        private static Scanner inFile;
	public static void main(String[] args) throws FileNotFoundException {
		
		inFile = new Scanner(new FileReader("info.txt"));
		
		PrintWriter outFile = new PrintWriter("wagedaily.txt"); 
		
		// Declares space in memory //
		String shipID;
		String journeyID;
		int l;
		int s;
		float rate;
		float totalwages;
		float RM;
		
		System.out.println("Enter maximum journey cost:");
		RM = console.nextFloat(); 
		
		while
			(inFile.hasNext()) { 
		
			shipID = inFile.next();
			journeyID = inFile.next();
			l = inFile.nextInt();
			s = inFile.nextInt();
			rate = inFile.nextFloat();
			totalwages = 0;
			
			for (int i = l; i <= s; i++); { 
				rate = inFile.nextFloat();
				totalwages = (totalwages + (rate * l));
			}
			
			if 	(totalwages == RM) { 
				System.out.println("Ship Name:" + shipID); 
				System.out.println("Journey ID:" + journeyID);
				System.out.println("Number of crew members:" + s); 
				System.out.println("Journey length in hours:" + l); 
				System.out.println("Pay rate per hour:" + rate); 
				outFile.write("Ship Name:" + shipID); 
				outFile.write("Journey ID:" + journeyID);
				outFile.write("Number of crew members:" + s);
				outFile.write("Journey length in hours:" + l);
				outFile.write("Pay rate per hour:" + rate);
			}
				
				else if (totalwages < RM) { 
					System.out.println("Ship Name:" + shipID); 
					System.out.println("Journey ID:" + journeyID);
					System.out.println("Number of crew members:" + s);
					System.out.println("Journey length in hours:" + l);
					System.out.println("Pay rate per hour:" + rate);
					outFile.write("Ship Name:" + shipID); 
					outFile.write("Journey ID:" + journeyID);
					outFile.write("Number of crew members:" + s);
					outFile.write("Journey length in hours:" + l);
					outFile.write("Pay rate per hour:" + rate);
				}
				
				else if (totalwages > RM) { 
					System.out.println("Ship Name:" + shipID);
					System.out.println("Journey ID:" + journeyID);
					System.out.println("Number of crew members:" + s);
					System.out.println("Journey length in hours:" + l);
					System.out.println("Pay rate per hour:" + rate);
				}
				
			
			outFile.close(); 
				
			} 
}
}
 

nOoblet16

Member
What does info.txt look like?
It's just bits of information that the program reads

Code:
Monarch
M141
16
6
10.5
10.5
20
20
20
30

Princess
P103
18
5
40
45
45
60
80

Empire
E77
24
7
20
20
20
20
20
20
50

Crown
C110
14
10
10
15
15
15
15
16.3
16.3
15
30
32

Bootle
B2618
4
1
9
 

cyborg009

Banned
So is dreamweaver the best tool to use while making a website? Also should I get android studio I've used IntelliJ last year and liked it. I want to finish some old projects this semester break.
 
Top Bottom