Java 8, 130 byte
v->{int d=(int)(Math.random()*6+1),i=10,p;String r=""+d;for(;i-->0;r+=d)for(p=d;p==d|p+d==7;d=(int)(Math.random()*6+1));return r;}
Hãy thử nó ở đây.
Là chương trình đầy đủ với phương thức chính dài dòng, thay vào đó sẽ là 178 byte :
interface M{static void main(String[]a){int d=(int)(Math.random()*6+1),i=10,p;String r=""+d;for(;i-->0;r+=d)for(p=d;p==d|p+d==7;d=(int)(Math.random()*6+1));System.out.print(r);}}
Hãy thử nó ở đây.
Semi-port của câu trả lời Bash của @AmanZeeKVerma .
Giải trình:
v->{ // Method with empty unused parameter and String return-type
int d=(int)(Math.random()*6+1),
// Random dice-roll 1-6
i=10, // Counter-integer, starting at 10
p; // Temp integer to store new side
String r=""+d; // Result-String, starting at the first dice-roll
for(;i-->0; // Loop (1) 10 times:
r+=d) // After every iteration, append the result with a random side
for(p=d; // Set the new side to the current side
p==d // Loop (2) as long as the new side and current side are the same
|p+d==7; // or as long as both combined are exactly 7:
d=(int)(Math.random()*6+1)
// Set the new side to a random side 1-6
); // End of loop (2)
// End of loop (1) (implicit / single-line body)
return r; // Return the result-String
} // End of method