i agree with bedwards. check the coils. get some good thick rubber cloves and pull a coil wire loose and see if ones not firing.
also if its not a coil. check the oil and see if u have water mixing in the oil. when i bought my car it had a p0300 code and water in the oil. the lower intake gasket was blown bad causing a coolant leak and missfire. also check the fuel filter.